Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema CheckBox
BildScreenshot zu CheckBox CheckBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema CommandButton
BildScreenshot zu CommandButton CommandButton-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Userform
BildScreenshot zu Userform Userform-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Label
BildScreenshot zu Label Label-Seite mit Beispielarbeitsmappe aufrufen

VBA Userform Checkbox

Betrifft: VBA Userform Checkbox von: Herr Vorragend
Geschrieben am: 21.09.2020 15:50:16

Hello,


ich habe eine kurze Frage, wo die Antwort mir eine Menge Arbeit ersparen würde.


Ich habe eine Reihe von Datennamen in einem Excel-Tabellenblatt. Jtzt möchte ich über eine Userform jeden einzelnen Name als Checkbox-Abfrage. Gibt es einen schnelleren und smarteren Weg als als die Checkboxen einzeln nach den Datennamen zu benennen? Also dass ich bspw. den Range der Reihe angebe und es wird automatisch eine Anzahl X an Checkboxen mit den Namen in den Zellen erstellt?


Danke und Gruß David

Betrifft: AW: VBA Userform Checkbox
von: Daniel
Geschrieben am: 21.09.2020 15:57:27

Hi
ja, verwende eine Listbox vom Typ Multiselect.
über die Einstellungen in den Eigenschaften kann man die auch aussehen lassen wie eine Gruppe von Checkboxen.

Gruß Daniel

Betrifft: AW: VBA Userform Checkbox
von: Herr Vorragend
Geschrieben am: 23.09.2020 09:40:50

Super, das hat funktioniert!

Jetzt habe ich allerdings noch eine Frage. Wenn ein Kontrollkästchen in der Liste angeklickt ist, wie weise ich ihm den Wert "True" zu?

mit
Private Sub CommandButton1_Click()

'.....

If Userform1.Auswahliste.List(0) = True Then
Sheets("Grunddaten").Range("Technischer_Support") = 1
Else
Sheets("Grunddaten").Range("Technischer_Support") = 0
End If

'....
End Sub
komme ich nicht weiter bzw. der Wert "1" wird nicht übernommen.

Danke und Gruß :)

Betrifft: AW: VBA Userform Checkbox
von: Daniel
Geschrieben am: 23.09.2020 10:28:17

Hi

über die .Selected()-Eigenschaft der Listbox kannst du die Checkboxzustände der einzelnen Einträge abfragen. Da dieser Zustand TRUE oder FALSE sein kann, kann man den Vergleich mit =True auch weglassen, weil man den Wahrheitswert ja schon direkt hat:
if Userform1.AuswahlListe.Selected(0) Then
du kannst deinen kleinen IF-Block auch als Einzeiler schreiben, das IIF entspricht dem WENN in einer Exccelformel:
...Range("TechnischerSupport") = IIF(Auswahlliste.Selected(0), 1, 0)
oder ganz kompakt mit dem Wissen dass ein TRUE in Berechnungen als -1 und ein FALSE als 0 gewertet wird:
...Range("TechnischerSupport") = -Auswahlliste.Selected(0)
Gruß Daniel


Betrifft: AW: VBA Userform Checkbox
von: Herr Vorragend
Geschrieben am: 23.09.2020 13:56:38

Perfekt! Es hat geklappt!

Vielen Dank für deine Hilfe!

Gruß David

Beiträge aus dem Excel-Forum zum Thema "VBA Userform Checkbox"