Ich habe ein userForm in Form einer Checkliste mit zu überprüfenden Kontrollkästchen erstellt, ich möchte es obligatorisch machen, eines der Kontrollkästchen jeder Zeile zu aktivieren, bevor ich Zugriff auf ein Kombinationsfeld habe, das die verschiedenen Module des Makros gruppiert (jedes Modul hat einen VBA-Code), dann möchte ich eine CommandButton hinzufügen, die das ausgewählte Modul startet.
Ich weiß, es muss ein Chaos für die VBA-Götter sein, ich bin kein Programmierer und ich weiß nicht, ob es möglich ist?
PS: Das Makro wird von einer Zeichensoftware (Solidworks) gestartet, deshalb befindet sich die Checkliste im Benutzerformular und nicht in einer Excel-Tabelle.
Vielen Dank für Ihre Hilfe, ich habe mein userForm mit Ihrem Code für die Checkliste geändert, das ist gut, auf der anderen Seite in der Dropdown-Liste hätte ich mir die Liste der 4 Module unten gewünscht (siehe Bild test.jpg) und je nach gewähltem Modul das Modulmakro starten.
Da sich die Namen Ihrer 4 Module nie ändern, sollten Sie in der Lage sein, sie auszufüllen, sobald Sie das Makro starten und etwas wie dieses eingeben:
Private Sub UserForm_Activate()
MonCombobox.AddItem ("Mon module 1")
MonCombobox.AddItem ("Mon module 2")
MonCombobox.AddItem ("Mon module 3")
MonCombobox.AddItem ("Mon module 4")
End Sub
Natürlich ersetzen Sie "MyCombobox" durch den Namen Ihres Steuerelements und das "Mein Modul ... " durch den Namen Ihrer Module.
Und wenn Sie Ihre Module wirklich nach Code auflisten möchten, müssen Sie in der Lage sein, etwas zu tun wie:
Private Sub UserForm_Activate()
Dim vbProj As VBProject
Dim vbComp As VBComponent
Dim i As Integer
Dim maMacro As String
maMacro = "MacroUserForm" 'à remplacer par le nom de la macro
For Each vbProj In Application.VBE.VBProjects
i = 1
If vbProj.Name = maMacro Then
For Each vbComp In vbProj.VBComponents
If vbProj.VBComponents.Item(i).Type = 1 Then
ComboBox1.AddItem vbProj.VBComponents.Item(i).Name
End If
i = i + 1
Next
End If
Next
End Sub
Seien Sie vorsichtig, vergessen Sie nicht, "Microsoft Visual Basic for Applications Extensibility" in Tools/Referenzen einzufügen.
Nach ein paar Änderungen funktioniert das Benutzerformular , es zeigt mir alle Module in der Dropdown-Liste.
Kleines Problem siehe angehängte Datei:
1- Von Anfang an ist meine Dropdown-Liste mit der Auswahl der Module zugänglich, es wäre besser, wenn sie ausgegraut ist, solange die Kästchen nicht aktiviert sind
2- Die Schaltfläche startet das aus der Dropdown-Liste ausgewählte Modul nicht