Bonjour,
Le projet qui m'amène ici est un modèle .dotm qui sera chargé par l'utilisateur en tant que modèle global
C'est un customUI contenant :
- 10 boutons de macros
- 1 bouton, ouvrant "MonFormulaire" (défini par onAction dans le xml), qui déclecnche "Sub Code1_OuvreFormulaire(control As IRibbonControl)"
Le formulaire contient :
- 10 CheckBox (1 à 10), chacun devant permettre à l'utilisateur de choisir les boutons de macros qu'il souhaite afficher (un souci ultérieur sera de mémoriser ses choix, mais je n'en suis pas là...)
- 1 bouton OKButton_Click pour valider les choix, et fermer le formulaire.
Comme je ne suis pas développeur, j'ai fait appel à... j'ai un peu honte de le dire... ChatGPT version gratuite.
Voici les derniers codes, si ça intéresse quelqu'un :
' MonFormulaire Public Sub OKButton_Click() Dim i As Integer For i = 1 To 10 Module1.buttonVisibility(i) = Me.Controls("CheckBox" & Format(i, "00")).Value Next i Module1.Code3_UpdateButtonVisibility Me.Hide End SubVoilà !' Module1 du TemplateProject Option Explicit Public myForm As Object ' Vous pouvez déclarer le formulaire en tant qu'objet générique ' mon "conseiller" a voulu déclarer le formulaire en Objet, après les échecs d'autres méthodes Public buttonVisibility(1 To 10) As Boolean Public myRibbonUI As IRibbonUI Sub Code1_OuvreFormulaire(control As IRibbonControl) ' Vérifier si le formulaire n'est pas déjà ouvert If myForm Is Nothing Then ' Créer une nouvelle instance du formulaire Set myForm = New MonFormulaire ' Afficher le formulaire myForm.Show Else ' Le formulaire est déjà ouvert, le mettre au premier plan myForm.Show End If End Sub Sub Code3_UpdateButtonVisibility() Dim i As Integer ' Mettez à jour les états de visibilité des boutons en fonction des valeurs dans le tableau buttonVisibility On Error Resume Next For i = 1 To 10 myRibbonUI.InvalidateControl "button" & Format(i, "00") Next i On Error GoTo 0 End Sub Sub ToggleButtonVisibility(control As Office.IRibbonControl) Dim buttonIndex As Integer buttonIndex = CInt(Right(control.ID, 2)) If buttonIndex >= 1 And buttonIndex <= 10 Then buttonVisibility(buttonIndex) = Not buttonVisibility(buttonIndex) Code3_UpdateButtonVisibility End If End Sub Sub MacroButton(control As Office.IRibbonControl) Select Case control.ID Case "button01" Call Message01 Case "button02" Call Message02 Case "button03" Call Message03 'ETC. EndSub
Si ça fait Tilt à une âme charitable, ce sera avec joie que je suivrai ses instructions ; sinon je posterai dans le forum English, la semaine prochaine.
Merci !



