Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: EXCEL VBA eine Userform mit ListBox / Listenfeld

EXCEL VBA eine Userform mit ListBox / Listenfeld
23.09.2018 11:33:18
Titan
Hallo Excel Freunde,
ich bin neu hier und erhoffe mir Hilfe von Euch, da ich leider in Excel nicht so bewandert bin.
Nun zu meinem Vorhaben:
Ich suche jemanden der in EXCEL „VBA“ eine Userform mit ListBox & Listenfeld „Auswahl“ sowie Command Button „Zur Liste hinzufügen“ erstellt. Ähnlich wie in mein Screen 1 Beispiel! Mit einen Formula Starten Button im Hauptdokument. Ich möchte aus dem Untervorhaben einzeln die Textbausteine anklicken und Sie dann in Zeilen untereinander anzeigen (wie Screen 2 in A1,A2,A3 usw.)
Screen 1
Userbild
Screen 2
Userbild
Screen 3
Userbild
Bis jetzt habe ich nur über Datenüberprüfung - Listen- und =INDIREKT(…….) Bezug zu meinen Tabellen eine ähnliche möglichkeit gefunden. Aber leider ist mir diese Möglichkeit zu umständliche.
Kann mir jemand Helfen?
Die Excel Datei…
https://www.herber.de/bbs/user/124163.xlsx
Danke schon einmal.
MFG T
Anzeige

24
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: EXCEL VBA eine Userform mit ListBox / Listenfeld
23.09.2018 11:56:53
Hajo_Zi
das geht nicht, da eine XLSX Datei kein Makro enthalten kann.
Ich sehe keinen Grund eine Datei 2x zu speichern. Ich führe keine Liste unter welchem Dateinamen ich die Datei gespeichert habe.

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
Anzeige
AW: Will dein Werk dir nicht gelingen,..
23.09.2018 12:02:10
Gerd
Moin Hajo!
...dann grüß wie Götz von Berlichingen! :-)
Gerd
AW: EXCEL VBA eine Userform mit ListBox / Listenfe
23.09.2018 12:37:21
Titan
Ja sorry Man könnte es doch als XLSM speichern. Kann mir keiner helfen?
AW: Will dein Werk dir nicht gelingen,..
24.09.2018 08:25:12
Luschi
Hallo Gerd,
ausgezeichneter Reim: https://de.wikipedia.org/wiki/Schwäbischer_Gruß
Gruß von Luschi
aus klein-Paris
Anzeige
Crossposting
23.09.2018 21:59:25
Henner
https://www.clever-excel-forum.de/Thread-EXCEL-VBA-eine-Userform-mit-ListBox-Listenfeld
AW: EXCEL VBA eine Userform mit ListBox / Listenfeld
25.09.2018 07:45:53
fcs
Hallo Titan,
ich hab dir ein Userform in deine Datei eingefügt.
Die Tabelle8 hab ich zum besseren Verständnis in "Vorhaben" umbenannt.
Die Tabellen für die Untervorhaben hab ich ebenfalls im Namen ein wenig vereinfacht.
Der Name = Bezeichnung des Vorhabens & "_" & fortlaufende Nr. beginnend bei 1.
LG
Franz
https://www.herber.de/bbs/user/124196.xlsm
Anzeige
AW: EXCEL VBA eine Userform mit ListBox / Listenfeld
25.09.2018 16:17:13
Titan
@ Franz... Herzlichen Dank.
Genau so sucht ich es. Danke noch einmal.
:)
AW: EXCEL VBA eine Userform mit ListBox / Listenfeld
25.09.2018 16:17:15
Titan
@ Franz... Herzlichen Dank.
Genau so sucht ich es. Danke noch einmal.
:)
AW: EXCEL VBA eine Userform mit ListBox / Listenfeld
25.09.2018 16:42:37
Titan
Ich hab noch eine Frage. Wenn ich die Vorhaben (Planung, Auskundung usw) Namentlich veränder, habe ich ein Debuggen Fehler. ( arrListe = wksAuswahl.ListObjects(Me.cbxVorhaben.Value).DataBodyRange)
Private Sub cbxVorhaben_Change()
Me.lbxText.Clear
Me.cbxHauptvorhaben.Clear
If Me.cbxVorhaben.ListIndex = -1 Then Exit Sub
arrListe = wksAuswahl.ListObjects(Me.cbxVorhaben.Value).DataBodyRange
Me.cbxHauptvorhaben.List = arrListe
Me.Label_UVH.Caption = ""
End Sub
Ich würde es gern in (Projektierung, Montage, Montage oi, Rückbau) umbenennen.
Danke für die Hilfe.
Anzeige
AW: EXCEL VBA eine Userform mit ListBox / Listenfeld
26.09.2018 08:06:14
fcs
Hallo Titan,
wenn du die Texte in den Auswahllisten Variable machen willst, dann müssen die Namen der Tabellen mit den Auswahlwerten allgemein festgelegt werden (Identische Texte mit IndexNrn)
Vorhaben
VH_1
VH_1_Text_1
VH_1_Text_2
VH_1_Text_3
VH_2
usw.
So können die Makros im Userform den Namen der abhängigen Auswahlliste aus der gewählten Zeile des Listeneintrags generieren.
Gruß
Franz
https://www.herber.de/bbs/user/124223.xlsm
Anzeige
AW: EXCEL VBA eine Userform mit ListBox / Listenfeld
26.09.2018 16:52:56
Titan
Ich danke Dir.
Noch eine Frage: Wie bekomme ich den Text (cmbEintragen) in Spalte B Zeile 12 ?
Private Sub cmbEintragen_Click()
Dim iList As Integer, Zeile As Long
wksData.Range("B13:B38").ClearContents
Zeile = 0
With Me.lbxText
For iList = 0 To .ListCount - 1
If .Selected(iList) Then
Zeile = Zeile + 1
wksData.Cells(Zeile, 1).Value = .List(iList, 0)
End If
Next
End With
Me.Hide
End Sub

Anzeige
AW: EXCEL VBA eine Userform mit ListBox / Listenfeld
26.09.2018 23:01:55
fcs
Hallo Titan,
mit den folgenden Anpassungen werden die gewählten Texte ab Zeile 13 in Spalte B eingetragen.
LG
Franz
Private Sub cmbEintragen_Click()
Dim iList As Integer, Zeile As Long
wksData.Range("B13:B38").ClearContents
Zeile = 12 'unterhalb dieser Zeile beginnt das Eintragen der gewählten Texte
With Me.lbxText
For iList = 0 To .ListCount - 1
If .Selected(iList) Then
Zeile = Zeile + 1
wksData.Cells(Zeile, 2).Value = .List(iList, 0) 'Wert in 2. Spalte (B)  _
eintragen
End If
Next
End With
Me.Hide
End Sub

Anzeige
AW: EXCEL VBA eine Userform mit ListBox / Listenfeld
27.09.2018 20:28:42
Titan
Wie kann ich aus der Userbox den Hauptvorbaben des Name der angewählte Bezeichnung zb. Planung in Zeile A 13 Anzeigen lassen? Und wenn ich auf den Hauptvorgang Montage wechsel, sollte das Wort Montage in der Zeile A13 angezeigt werden? Dann hätte ich alles.... Und vielen Dank für Deine Mühe und die brillante Lösung!!!
Es war doch gut die Hoffnung nicht aufzugeben, Sehr schön das es solche Leute wie Dich gibt, die andern mit Ihrem Wissen Helfen und nicht nur dumme Sprüche ablassen, 
Klasse ich bin Dir zu tausendmal Dankbar 
Anzeige
AW: EXCEL VBA eine Userform mit ListBox / Listenfeld
27.09.2018 21:40:33
Titan
Hätte doch noch was. :) vielleicht hast du eine Idee.
Extra Excel Makro:
Wenn 1. Datum aus dem Datum Bereich (A1- A500) überschritten wird, werden die überschrietenen Datume Rot und springt im nächsten 2. Datum Bereich (B1-B500). Wenn dieser überschritten wird, wird es auch Rot, wechselt dann zum 3. Datum Bereich (C1-C500) und gleicht dieses Datum ab und ist da ein Datum überschritten, wird es Rot und kommt eine Warnmeldung ZB. in einer Textbox.
Anzeige
AW: EXCEL VBA eine Userform mit ListBox / Listenfeld
27.09.2018 21:40:48
Titan
Hätte doch noch was. :) vielleicht hast du eine Idee.
Extra Excel Makro:
Wenn 1. Datum aus dem Datum Bereich (A1- A500) überschritten wird, werden die überschrietenen Datume Rot und springt im nächsten 2. Datum Bereich (B1-B500). Wenn dieser überschritten wird, wird es auch Rot, wechselt dann zum 3. Datum Bereich (C1-C500) und gleicht dieses Datum ab und ist da ein Datum überschritten, wird es Rot und kommt eine Warnmeldung ZB. in einer Textbox.
Anzeige
AW: EXCEL VBA eine Userform mit ListBox / Listenfeld
27.09.2018 21:41:34
Titan
Wie kann ich aus der Userbox den Hauptvorbaben des Name der angewählte Bezeichnung zb. Planung in Zeile A 13 Anzeigen lassen? Und wenn ich auf den Hauptvorgang Montage wechsel, sollte das Wort Montage in der Zeile A13 angezeigt werden? Dann hätte ich alles.... Und vielen Dank für Deine Mühe und die brillante Lösung!!!
Es war doch gut die Hoffnung nicht aufzugeben, Sehr schön das es solche Leute wie Dich gibt, die andern mit Ihrem Wissen Helfen und nicht nur dumme Sprüche ablassen, 
Klasse ich bin Dir zu tausendmal Dankbar.
Hätte doch noch was. :) vielleicht hast du eine Idee.
Extra Excel Makro:
Wenn 1. Datum aus dem Datum Bereich (A1- A500) überschritten wird, werden die überschrietenen Datume Rot und springt im nächsten 2. Datum Bereich (B1-B500). Wenn dieser überschritten wird, wird es auch Rot, wechselt dann zum 3. Datum Bereich (C1-C500) und gleicht dieses Datum ab und ist da ein Datum überschritten, wird es Rot und kommt eine Warnmeldung ZB. in einer Textbox.
Anzeige
AW: EXCEL VBA eine Userform mit ListBox / Listenfeld
27.09.2018 22:12:01
fcs
Hallo Titan,
mit der folgenden Anpassung wird die zusätzliche Information in Spalte A eingetragen

Private Sub cmbEintragen_Click()
Dim iList As Integer, Zeile As Long
wksData.Range("B13:B31").ClearContents
Zeile = 12
wksData.Cells(Zeile + 1, 1).Value = Me.cbxVorhaben.Value
With Me.lbxText
For iList = 0 To .ListCount - 1
If .Selected(iList) Then
Zeile = Zeile + 1
wksData.Cells(Zeile, 2).Value = .List(iList, 0)
End If
Next
End With
Me.Hide
End Sub
Deine Zusätzliche Fragen zum Spaltenwechsel bei Datumsüberschreitung verstehe ich nicht.
Da brauche ich mehr Input.
LG
Franz
Anzeige
AW: EXCEL VBA eine Userform mit ListBox / Listenfeld
28.09.2018 13:43:48
Titan
Danke: Ja das mit dem Datum hab ich hin bekommen.
Aber ich habe noch ein klein Fehler oder Prob. in der UserForm.
und zwar wenn ich im erste Untervorhaben Texte auswähle und Sie Eintrage. Und dann im zweiten Untervorhaben Texte auswähle und Eintrage werden die schon ausgewählte7hinzugefügten Texte aus dem erste untervorhaben gelöscht/überschrieben.In der Zeile B13.
Es müsste prüfen ob ab Zeile B13,B14,B15 usw was befühlt ist.
Private Sub cmbEintragen_Click()
Dim iList As Integer, Zeile As Long
wksData.Range("B13:B31").ClearContents
Zeile = 12
wksData.Cells(Zeile + 1, 1).Value = Me.cbxVorhaben.Value
With Me.lbxText
For iList = 0 To .ListCount - 1
If .Selected(iList) Then
Zeile = Zeile + 1
wksData.Cells(Zeile, 2).Value = .List(iList, 0)
End If
Next
End With
Me.Hide
End Sub

Anzeige
AW: EXCEL VBA eine Userform mit ListBox / Listenfeld
28.09.2018 13:55:08
Titan
Danke: Ja das mit dem Datum hab ich hin bekommen.
Aber ich habe noch ein klein Fehler oder Prob. in der UserForm.
und zwar wenn ich im erste Untervorhaben Texte auswähle und Sie Eintrage. Und dann im zweiten Untervorhaben Texte auswähle und Eintrage werden die schon ausgewählte7hinzugefügten Texte aus dem erste untervorhaben gelöscht/überschrieben.In der Zeile B13.
Es müsste prüfen ob ab Zeile B13,B14,B15 usw was befühlt ist.
Private Sub cmbEintragen_Click()
Dim iList As Integer, Zeile As Long
wksData.Range("B13:B31").ClearContents
Zeile = 12
wksData.Cells(Zeile + 1, 1).Value = Me.cbxVorhaben.Value
With Me.lbxText
For iList = 0 To .ListCount - 1
If .Selected(iList) Then
Zeile = Zeile + 1
wksData.Cells(Zeile, 2).Value = .List(iList, 0)
End If
Next
End With
Me.Hide
End Sub

Anzeige
AW: EXCEL VBA eine Userform mit ListBox / Listenfeld
29.09.2018 09:46:58
fcs
Hallo Titan,
ich hab das Eintragen-Makro angepasst.
Das Userform wird auch nicht mehr nach jedem Eintragen ausgeblendet.
Damit man die eingetragenen Werte im Tabellenblatt sieht wird das Userform jetzt rechts/mittig angezeigt.
Nach dem Eintragen wird auch immer gescrollt, so das die Einträge zum letzten gewählten Vorhaben oben angezeigt werden.
Das Kopiern-Makro hab ich angepasst, so dass Spalte A und B mit ihren Werten in die Zwischenablage kopiert werden.
Zum Löschen der Alteinträge hab ich ein zusätzliche Schaltfläche mit Makro eingefügt.
Gruß
Franz
https://www.herber.de/bbs/user/124298.xlsm
Anzeige
AW: EXCEL VBA eine Userform mit ListBox / Listenfeld
29.09.2018 11:21:07
Titan
Danke! Nur ich benötige Zeile 1-12 für andere Daten die dann mit auf dem Blatt gedruckt werden!
Die Button schiebe ich zu I1 oder J1.
Können Sie wieder Zeile 1-12 freigeben? Oder wo kann ich das verändern?
AW: EXCEL VBA eine Userform mit ListBox / Listenfeld
29.09.2018 11:48:57
Titan
Schau mal meine Datei kannst du die Anpassung in dieser machen?
B13-43 ist der Textbereich.
Und A 13 soll der Hauptvorgang stehen.
Dein Kopie und Löschen Buttons bitte auch einbringen
Alle andere Bereiche benötige ich für weitere Info und Automatische Bezüge.
https://www.herber.de/bbs/user/124303.xlsm
Anzeige
AW: EXCEL VBA eine Userform mit ListBox / Listenfeld
29.09.2018 13:16:33
fcs
Hallo Titan,
ich hab deine Datei angepasst.
https://www.herber.de/bbs/user/124306.xlsm
Der Kopierbutten kopiert momentan die Zellen mit den per Userform eingetragenen Werten. ggf. musst du hier den Zellbereich anpassen, der kopiert werden soll.
LG
Franz
Anzeige
AW: EXCEL VBA eine Userform mit ListBox / Listenfeld
30.09.2018 09:06:38
Titan
Ich Danke Dir ganz Herzlich.
Hast du eine Mail Adresse für mich?
;
Anzeige
Anzeige

Infobox / Tutorial

Userform mit ListBox und Listenfeld in Excel VBA erstellen


Schritt-für-Schritt-Anleitung

  1. Excel-Datei vorbereiten: Stelle sicher, dass du eine Excel-Datei im XLSM-Format verwendest, da Makros nur in dieser Dateiart gespeichert werden können.

  2. UserForm erstellen:

    • Öffne den VBA-Editor (Alt + F11).
    • Klicke mit der rechten Maustaste auf „VBAProject (DeineDatei.xlsm)“ und wähle „Einfügen“ > „UserForm“.
    • Füge ein ListBox-Steuerelement und einen Command Button hinzu.
  3. ListBox mit Daten füllen:

    • Um die ListBox zu befüllen, verwende den folgenden Code in der UserForm:
    Private Sub UserForm_Initialize()
       Me.ListBox1.AddItem "Textbaustein 1"
       Me.ListBox1.AddItem "Textbaustein 2"
       Me.ListBox1.AddItem "Textbaustein 3"
    End Sub
  4. Daten in das Tabellenblatt eintragen:

    • Verwende den folgenden Code für den Command Button, um die ausgewählten Elemente in die Tabelle zu übertragen:
    Private Sub CommandButton1_Click()
       Dim i As Integer, Zeile As Long
       Zeile = 13
       For i = 0 To Me.ListBox1.ListCount - 1
           If Me.ListBox1.Selected(i) Then
               Sheets("Daten").Cells(Zeile, 2).Value = Me.ListBox1.List(i)
               Zeile = Zeile + 1
           End If
       Next i
       Me.Hide
    End Sub
  5. UserForm anzeigen: Füge im Hauptmodul einen Button oder eine Funktion hinzu, die die UserForm öffnet:

    Sub UserFormAnzeigen()
       UserForm1.Show
    End Sub

Häufige Fehler und Lösungen

  • Fehler: UserForm öffnet nicht: Stelle sicher, dass du die UserForm korrekt im Hauptmodul aufrufst.
  • Problem: Ausgewählte Items werden nicht gespeichert: Vergewissere dich, dass du die richtigen Zellreferenzen verwendest, und achte darauf, dass die Zeilen nicht überschrieben werden. Der Code sollte anpassen, um die nächste leere Zeile zu finden.
  • Debugging-Fehler bei der Auswahl: Wenn du die Namen der Vorhaben änderst, stelle sicher, dass der Code die neuen Namen korrekt referenziert.

Alternative Methoden

  • Anstelle einer UserForm kannst du auch Datenüberprüfung in Excel verwenden, um ein Dropdown-Feld zu erstellen, jedoch bietet ein VBA Listenfeld mehr Flexibilität.
  • Verwende auch die Funktion INDIREKT() für dynamische Datenquellen, wenn du keine UserForm verwenden möchtest.

Praktische Beispiele

  • Beispiel 1: Erstelle eine UserForm, in der der Benutzer mehrere Auswahlmöglichkeiten hat und die Auswahl in einem Excel-Dokument gespeichert wird. Dies kann für Projekte oder Aufgabenlisten nützlich sein.

  • Beispiel 2: Verwende ein Listenfeld, um die Auswahl von Elementen zu ermöglichen, die in einer bestimmten Reihenfolge angezeigt werden. Dies kann helfen, die Übersichtlichkeit in Excel zu verbessern.


Tipps für Profis

  • Nutze Datenvalidierung in Excel zusammen mit VBA, um die Benutzerfreundlichkeit zu erhöhen.
  • Implementiere Fehlerbehandlungsroutinen in deinem VBA-Code, um unerwartete Fehler während der Ausführung zu vermeiden.
  • Experimentiere mit verschiedenen Listenfeld-Eigenschaften, um das Erscheinungsbild und Verhalten deiner UserForm zu optimieren.

FAQ: Häufige Fragen

1. Frage: Wie kann ich die UserForm anpassen?
Du kannst die UserForm im VBA-Editor gestalten, indem du Steuerelemente hinzufügst oder deren Eigenschaften änderst.

2. Frage: Welche Excel-Version benötige ich?
Das Tutorial basiert auf Excel 2010 und höher, um sicherzustellen, dass alle Funktionen unterstützt werden.

3. Frage: Was tun, wenn das Listenfeld nicht funktioniert?
Überprüfe, ob das Listenfeld richtig benannt ist und ob die Datenbank, aus der es gespeist wird, korrekt referenziert wird.

4. Frage: Kann ich mehrere Listenfelder verwenden?
Ja, du kannst mehrere Listenfelder in einer UserForm hinzufügen und mit unterschiedlichen Datenquellen verknüpfen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige