Office: (Office 2016) Userform mit mehreren Listboxen

Helfe beim Thema Userform mit mehreren Listboxen in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo zusammen, ich bastel mir gerade ein Userform mit zwei Listboxen zusammen. Ich komme mit den Werten KlassAkt.Caption = "Test8"... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Lutz Fricke, 9. März 2017.

  1. Lutz Fricke Erfahrener User

    Userform mit mehreren Listboxen


    Hallo zusammen,

    ich bastel mir gerade ein Userform mit zwei Listboxen zusammen.

    Ich komme mit den Werten
    KlassAkt.Caption = "Test8"
    SVAkt.Caption = 5
    in das UserForm_Initialize()

    Jetzt fülle ich beide Listboxen mit Daten aus einer Liste (ist nur ein Auszug der Liste, daher etwas wirr, aber nicht zu Diskussion stehend). Die erste Listbox wird mit den Werten aus Spalte 1 gefüllt (jeder nur einmal) und "Test8" vorausgewählt, die zweite mit den passenden Werten zur "Test8".

    Jetzt möchte ich in der ersten Listbox eine Auswahl treffen und in Listbox zwei die passenden Werte aktualisiert bekommen.
    Zu Beginn ist "Test8" ausgewählt und die zweite Listbox zeigt die Werte "30,31,32,33". Wähle ich "Test5" soll in der zweiten Listbox nur der Wert "61" erscheinen.

    Schon mal vielen Dank für Eure Hilfe,
    Lutz

    P.S.: noch ne kleine Frage, wie bekomme ich beide Listboxen immer gleich hoch (Listbox1 steht IntegralHeight auf true) und bei der zweiten Box die untere Scrollbar weg?
     
    Lutz Fricke, 9. März 2017
    #1
  2. Exl121150 Erfahrener User
    Hallo Lutz,

    Eine Listbox hat 2 Breitenangaben:
    1) Eigenschaft "Width": die äußere Breite der Listbox
    2) Eigenschaft "ColumnWidths": die strichpunktgetrennte Liste der Breiten der einzelnen Spalten der Listbox.
    Sobald die Gesamtbreite der Listboxspalten+Breite eines linken Randbereichs größer als die Listboxbreite ist, wird natürlich eine horizontale Scrollbar angezeigt.
    Ich habe die Listboxbreite mittels der Listboxspaltenbreite berechnen lassen.

    Die Befüllung der ListBoxKlass und der ListboxSV mit passenden Werten habe ich in eine FUNCTION verlagert.

    Edit: 11.03.2017 20:59 !!
     
    Zuletzt bearbeitet: 11. März 2017
    Exl121150, 9. März 2017
    #2
  3. Lutz Fricke Erfahrener User
    Hallo Anton,

    ich komme rst heute wieder im Laufe meines Projekts auf die Listboxen zurück.
    Es funktioniert perfekt. Vielen Dank für Deine Hilfe.

    Ich habe nur eine Frage:
    Warum verwendest Du
    Code:
    Marker1 = ListBox_Füllen(Me[B]![/B]ListBoxKlass, "", 2)
    und nicht
    Code:
    Marker1 = ListBox_Füllen(Me[B].[/B]ListBoxKlass, "", 2)
    ?
    Auch in
    Code:
      With Me.ListBoxKlass
          .Width = 120!
    
    setzt Du ein "!".
    Was hat es mit dem "!" auf sich?

    Warum schreibst Du beim ersten Füllen der Box
    Code:
      Marker1 = ListBox_Füllen(Me.ListBoxKlass, "", 2)
    
    und beim zweiten
    Code:
      With Me
        ListBox_Füllen Ctrl:=!ListBoxSV, Filter:=.ListBoxKlass.Text, Spalte:=1
      End With
    
    ?
    Ginge da nicht auch
    Code:
    Marker1 = ListBox_Füllen(Me.ListBoxSV, .ListBoxKlass.Text, 1)
    ?

    Gruß,
    Lutz
     
    Lutz Fricke, 30. März 2017
    #3
  4. Lutz Fricke Erfahrener User

    Userform mit mehreren Listboxen

    Hallo Anton,

    ich dreh gleich am Rad...

    Dein Code funktioniert perfekt. Jetzt habe ich ihn an meine Bedürfnisse angepasst. Zuerst lief jeder 2. (!) Durchgang korrekt. Nach einer Pause, in der ich Excel geschlossen habe, habe ich ständig falsche Ergebnisse.

    Folgende Änderungen habe ich gemacht:
    Code:
      Mat_Nr.Caption = "08/15"
      Mat_Bez.Caption = "Versuch"
      KlassAkt.Caption = "Test8"
      SVAkt.Caption = 5
    ersetzt durch
    Code:
     Mat_Nr.Caption = ProcessOrders(2)(Zeile, 1)
     Mat_Bez.Caption = ProcessOrders(3)(Zeile, 1)
     KlassAkt.Caption = Liste(Daten, 3)
     SVAkt.Caption = ProcessOrders(1)(Zeile, 1)
    Das sind die Originaldatzen aus den Datenfeldern.
    Entsprechend habe ich auch
    Code:
     If Standard(StdZeile, 2) = "Test8" Then
    durch
    Code:
     If Standard(StdZeile, 2) = Liste(Daten, 3) Then
    ersetzt.

    Ich bekomme jetzt ein Userform mit passender erster Listbox. Der passende Eintrag ist markiert und an der richtigen Position.
    Nur in der zweiten Listbox ist nicht nach .ListBoxKlass.Text gefiltert. Sondern es wird die gesamte Liste inkl. Doppelungen ausgegeben.
    Sobald ich einmal einen Wert in der ersten Listbox anklicke passt wieder alles.

    Wo ist der Fehler?

    Vielen Dank für Deine Hilfe,
    Lutz
     
    Zuletzt bearbeitet: 31. März 2017
    Lutz Fricke, 30. März 2017
    #4
  5. Lutz Fricke Erfahrener User
    Hallo Anton,

    ich habe jetzt den ganzen Morgen probiert und gebastelt. Ohne Erfolg und mit vielen Fragezeichen.

    Ich habe Deinen Code und das Beispielblatt in meine Originaldatei kopiert. Den Originalcode habe ich an zwei Stellen minimal angepasst, damit Dein Code läuft.
    Das Ergebnis ist ein nicht reproduzierbares Fehlerbild:
    Mal funktioniert der Code, dann passe ich ihn schrittweise an meinen Bedürfnisse an. Ich verlinke auf meine Originaldaten und wähle statt "Text8" einen meiner Texte aus. Es funktioniert. Jetzt speichere ich und schließe die Datei. Anschließend läuft der vorher einwandfrei Code nicht mehr.
    Mal funktioniert nach dem Kopieren des Codes und des Blattes und dem minimalen Anpassen der Code von Anfang an nicht.

    Ich finde letzlich zwei Probleme:
    - Der Code übernimmt den .ListBoxKlass.Text nicht, obwohl er in der fertigen Listbox markiert ist. Damit hat die zweite Listbox auch keinen Filter.
    - Der Vergleich If .List(LstZeile) = Standard(StdZeile, Spalte) Then schlägt fehl. Ursache könnte sein, dass Standard(StdZeile, Spalte) eine Zahl (4) und .List(LstZeile) ein String ("4") ist. Das ist jedoch in deinem laufenden Code auch so. Letztlich schreibe ich doch über .AddItem Standard(StdZeile, Spalte) Zahlen in die Listbox, dann müssten doch auch Zahlen wieder rauskommen. Und warum läuft's in Deinem Code, in meiner Kopie aber nicht?

    Ich hoffe, die Information hilft weiter. Ich bin völlig ratlos, was da passiert. Zumal der Fehler nicht reproduzierbar ist.

    Vielen Dank für Deine Hilfe,
    Lutz
     
    Lutz Fricke, 31. März 2017
    #5
  6. Lutz Fricke Erfahrener User
    Hallo Anton,

    ich habe jetzt nochmal probiert und folgendes festgestellt:
    - Ich kopiere das Formular SV_Klass inkl. Code in meinen Code. Es funktioniert.
    - Ich verändere die einzulesende Standard-Liste auf meine Original-Datei und den zu markierenden Text in "Grinding White SB AM". Es funktioniert.
    - Ich speichere die Datei. Und es funktioniert nicht mehr.

    -Selbes Vorgehen wie oben, nur das ich die Datei unter neuem Namen abspeichere. Und es funktioniert.

    Gibt es dafür irgendeine Erklärung?

    Ich hoffe mal, dass ich jetzt mit meinem Code vorankomme, bin aber ziemlich verunsichert, da ich nicht weiß, worauf die Probleme zurückzuführen sind.
    Vielleicht hat ja jemand eine Idee.

    Gruß,
    Lutz
     
    Lutz Fricke, 3. April 2017
    #6
Thema:

Userform mit mehreren Listboxen

Die Seite wird geladen...
  1. Userform mit mehreren Listboxen - Similar Threads - Userform mehreren Listboxen

  2. Zentrales Modul zum Befüllen mehrerer Userforms

    in Microsoft Excel Hilfe
    Zentrales Modul zum Befüllen mehrerer Userforms: Hallo zusammen, ich habe folgendes Problem: Ich habe eine Excel Datei mit mehreren UserForms. In diesen möchte ich einige Felder vorbelegen. Derzeit mache ich das im Code jeder UserForm immer...
  3. Eingabe über Userform und mehrere Tabellenblätter

    in Microsoft Excel Hilfe
    Eingabe über Userform und mehrere Tabellenblätter: Hallo , ich hoffe das ich bei dieser Tabelle Hilfe von Euch bekomme. Ich habe eine Tabelle mit mehreren Blättern und eine Eingabemaske. Die Seiten werden von der Startseite ausgewählt ( Command...
  4. Mehrere Checkboxen einer Userform abfragen

    in Microsoft Excel Hilfe
    Mehrere Checkboxen einer Userform abfragen: Hallo alle zusammen. Ich bin ein Anfänger in VBA und brauche deswegen Eure Hilfe (Excel 99-2003) bei folgendem Problem: Ausgangssituation: Ich arbeite mit einer riesengroßer Datenbank und muss...
  5. Textbox Inhalt von einer Userorm in mehrere Userform kopieren

    in Microsoft Excel Hilfe
    Textbox Inhalt von einer Userorm in mehrere Userform kopieren: HI @ all Ich habe ein Problem ich habe 4 Userform in der 1 Form ermittle ich mittels Combobox einen Wert den ich mir in der Userform 2 mittels Textbox anzeigen lasse. Nun soll aber der Wert, der...
  6. Userform Suchmaske mit mehreren Suchwerten

    in Microsoft Excel Hilfe
    Userform Suchmaske mit mehreren Suchwerten: Hallo, ich hoffe, dass mir jemand helfen kann... Ich habe eine Tabelle mit Kundendaten, die durchsucht werden soll. Dazu habe ich eine Userform mit mehreren Comboxen. Jede soll ich bestimmte...
  7. Mehrere Userforms gleichzeitig

    in Microsoft Excel Hilfe
    Mehrere Userforms gleichzeitig: Hallo zusammen, ist es irgends möglich VBA zu erklären das es alle Userforms gleichtzeitig aufrufbar macht und ich nicht immer eins schließen muss um wieder ein neues zu öffnen? ExcelVersion ist...
  8. Mehrere Werte getrennt (,) in eine Zelle eintragen

    in Microsoft Excel Hilfe
    Mehrere Werte getrennt (,) in eine Zelle eintragen: Hallo zusammen Habe in Excel eine UserForm mit Textfelder und mehrere Checkboxen erstellt. Mit einem klick auf den Button sollen die Werte der Textfelder in die Tabelle auf eine Zeile...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden