Eintrag ListBox markieren und verwenden

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Bild

Betrifft: Eintrag ListBox markieren und verwenden
von: Sven
Geschrieben am: 10.09.2015 10:17:44

Hi zusammen,
folgendes Problem, ich fülle meine Listbox mit folgendem Code:

For Each rngCell In Bereich
        If rngCell.EntireRow.Hidden = False Then SSD_Suchen.ListBox1.AddItem rngCell.Value
        If rngCell.EntireRow.Hidden = False Then SSD_Suchen.ListBox1.List(ListBox1.ListCount -   _
_
1, 1) = rngCell.Offset(0, 1).Value
        If rngCell.EntireRow.Hidden = False Then SSD_Suchen.ListBox1.List(ListBox1.ListCount - 1, 2) = rngCell.Offset(0, 3).Value

Wenn nun eine Spalte markiert wird soll aus Spalte 1 der Wert an eine textbox übergeben werden. Doch ich komme nicht dahinter wie.
Versucht habe ich das hiermit, funktioniert aber nicht :(
Userfrom1.Suchfeld_1.Value = Userfrom1.ListBox1.Selected.Value 

Jemand eine Idee?
Danke und Gruß
Sven

Bild

Betrifft: AW: Eintrag ListBox markieren und verwenden
von: Rudi Maintaire
Geschrieben am: 10.09.2015 10:35:38
Hallo,
1. Einmal abfragen ob die Zeile sichtbar ist, reicht doch.

  For Each rngCell In Bereich
    If rngCell.EntireRow.Hidden = False Then
      With SSD_Suchen.ListBox1
        .AddItem rngCell.Value
        .List(.ListCount - 1, 1) = rngCell.Offset(0, 1).Value
        .List(.ListCount - 1, 2) = rngCell.Offset(0, 3).Value
      End With
    End If
  Next rngCell

2. Falls (wie normal) die Spalte 1 der Lbx die gebundene Spalte ist:
Userfrom1.Suchfeld_1.Value = Userfrom1.ListBox1
Gruß
Rudi

Bild

Betrifft: AW: Eintrag ListBox markieren und verwenden
von: Sven
Geschrieben am: 10.09.2015 11:28:43
Hallo Rudi,
vielen Dank für die schnelle Hilfe!
Und ja richtig, einmal abfragen reicht (wenn man weiß was man tut ;))
Leider bekomme ich nun eine Fehlermeldung.

Userfrom1.Suchfeld_1.Value = Userfrom1.ListBox1

Eigenschaft Value konnte nicht gesetzt werden. Typkonflikt
Habe bereits versucht das Problem selbst zu beheben komme aber nicht weiter.
Ich habe versucht eine Variable mit dem Listbox Eintrag zu füllen und zu übergeben, klappt auch nicht.
Eine Idee?
Danke und Gruß

Bild

Betrifft: AW: Eintrag ListBox markieren und verwenden
von: Rudi Maintaire
Geschrieben am: 10.09.2015 11:33:09
Hallo,
mal
SSD_Suchen.ListBox1
mal
Userfrom1.ListBox1
Wat denn nu?
Lad mal die Mappe hoch.
Gruß
Rudi

Bild

Betrifft: AW: Eintrag ListBox markieren und verwenden
von: Sven
Geschrieben am: 10.09.2015 11:51:23
Hallo Rudi,
es sollte alles SSD_Suchen sein, habe das in meiner Mappe auch so.
Hatte vorhin nur schnell das Problem tippen wollen und dabei Userform1 genommen.
Meine Mappe: https://www.herber.de/bbs/user/100112.xlsm
Die ist aber voll mit Fehlern und ein wenig peinlich.
Den Bereich den ich gerade bearbeite ist der Commandbutton: Private Sub Suche_2_Enter_Click()
Die Suche_1 funktioniert aus jetziger Sicht super, nur bei dieser Suche_2 mit den autofiltern komme ich nicht weiter.
Vielen Dank vorab!
ich hoffe es sieht nicht zu schlimm aus ...

Bild

Betrifft: Sorry, aber das .....
von: Rudi Maintaire
Geschrieben am: 10.09.2015 13:06:40
.... ist mir jetzt zu viel, mich da durch zu wühlen.
Wie kann man den Fehler provozieren?

Bild

Betrifft: AW: Sorry, aber das .....
von: Sven
Geschrieben am: 10.09.2015 13:30:43
Hey Rudi,
nichts zu entschuldigen, das kann ich durchaus sehr gut verstehen.
Der Fehler lässt sich einfach reproduzieren, Userform Ausgführen . Häckchen bei Enterprise (zum Beispiel) setzen und den Commandbutton im selben frame der Userform betätigen.
Danach kommt die Fehlermeldung mit Verweis auf


SSD_Suchen.Suchfeld_1.Value = SSD_Suchen.ListBox1
Danke trotzdem!

Bild

Betrifft: AW: Sorry, aber das .....
von: Rudi Maintaire
Geschrieben am: 10.09.2015 13:49:34
Hallo,
in der Lbx ist ja nichts ausgewählt.

        ListBox1.ListIndex = 0
        SSD_Suchen.Suchfeld_1.Value = SSD_Suchen.ListBox1

Allerdings solltest du sicherstellen, dass was in der Listbox steht.
Gruß
Rudi

Bild

Betrifft: AW: Sorry, aber das .....
von: Sven
Geschrieben am: 10.09.2015 14:01:28
Danke Rudi!
Dann komme ich wieder zum Grundproblem, ich lasse ja die Lbx mit autogefilterten Daten füllen.
Nicht über den doppleklick sondern über ein einfach markieren (also einmal anklicken) soll aus der markierten Zeile ein Wert übergeben werden den ich in die textbox schreiben möchte.
Mit deinem Ansatz läuft zumindest das Makro durch. Wenn auch leider nicht wie gewünscht.
Der Gedanke war das ein bestimmter Wert übergeben wird sobald ich eine Zeile in der Listbox anklicke.
Ich bastel nochmal und werde sicher mit Teilfragen wieder kommen.
Vielen Dank das du dir trotzdem die Mühe gemacht hast reinzuschauen!
Gruß
Sven

Bild

Betrifft: Ich glaube ich weiß wo das Problem liegt
von: Sven
Geschrieben am: 10.09.2015 14:51:20
Hi Rudi,
sorry das ich schon wieder nerven muss.
Ich bin das komplette Makro mit F8 durchgegangen (per Zufall im Web gefunden, kannte die Funktion überhaupt nicht). Das Problem am dem ich stehe sieht wie folgt aus.

ListBox1.Selected(0) = True
SSD_Suchen.Suchfeld_1.Value = SSD_Suchen.ListBox1
Über ListBox1.Selected(0) = True wähle ich ja die erste Zeile in der Listbox aus
und mit SSD_Suchen.Suchfeld_1.Value = SSD_Suchen.ListBox1 übergebe ich den Wert.
Eigentlich müsste an diese Stelle das Makro angehalten werden bzw. das Makro soll warten bis ich mit der Maus einen Eintrag der Listbox anwähle.
Wie kann ich dem Makro sagen das es warten soll bis ein Eintrag angelickt wurde?
Danke vorab.
Gruß
Sven

Bild

Betrifft: Makro anhalten
von: Rudi Maintaire
Geschrieben am: 10.09.2015 16:00:16
Hallo,
Wie kann ich dem Makro sagen das es warten soll bis ein Eintrag angeklickt wurde?
Gar nicht.
Beende den Code nach dem Befüllen der LBx und schreib den Rest ins Click-Event.
Achtung!!! Das Click-Event wird auch durch Setzen des Listindex per Code (z.B. Listbox1.Listindex = 0)ausgelöst.
Gruß
Rudi

Bild

Betrifft: AW: Makro anhalten
von: Sven
Geschrieben am: 11.09.2015 08:24:26
Guten Morgen Rudi,
vielen Dank für die Info. Dann werde ich mal weiterbasteln.
Danke!
Gruß und TGIF
Sven

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Eintrag ListBox markieren und verwenden"