ListBox.Selected(x) Markierten Wert auf neues Userform übergeben
#1
Servus,

hier mal mein Makro:

Private Sub ListBox1_Click()

Dim x As Integer
Dim rng1 As Range
Dim a1 As Variant

Set rng1 = Tabelle2.Range("T_LBI")

For x = 0 To ListBox1.ListCount - 1
    If ListBox1.Selected(x) = True Then
        Kundendaten.TB_Firma = Tabelle3.Cells(x + 2, 1)
        Kundendaten.TB_Standort = Tabelle3.Cells(x + 2, 2)
        Kundendaten.TB_Release = Tabelle3.Cells(x + 2, 3)
        Kundendaten.TB_Ablaufdatum = Tabelle3.Cells(x + 2, 4)
    End If
Next x


Das ganze klappt auch wunderbar.

Die Listbox befindet sich im Userform "Inhaltsverzeichnis"

Durch Klicken auf einen Button zb "Kundendaten" gelange ich auch in die Userform "Kundendaten" und meine Textboxen sind wie gewünscht befüllt.

Ich habe jetzt einen "Zurück" Button in der Userform "Kundendaten" sobald ich diesen Drücke ist in meiner Listbox1 im Userform "Inhaltsverzeichnis" kein Item aus der Listbox1 ausgewählt.

Was ich gern hätte:

Ich hätte gern wenn ich auf zurück drücke dass das letzte gewählte Item in Listbox1 automatisch ausgewählt wird.

zudem hätte ich gerne wenn ich aus der Listbox rausklicke das nichts mehr ausgewählt ist.


Vielen Dank!
Antworten Top
#2
Hallo,

was hat Dein geposteter Code mit Deiner Frage zu tun?
Bei mir bleiben übrigens die Selekts erhalten.

Gruß Uwe
Antworten Top
#3
Ja mir ist grad aufgefallen dass ich meine Userformen mit 

Unload verlasse dann ist das schon klar.......

Danke  Blush


Trotzdem wie kann ich die Markierte Zeile in meiner Listbox abwählen?
Antworten Top
#4
Hallo tomcat,

ich schicke dir mal ne pn zum verherigen Thread.

Gruß Uwe
Antworten Top
#5
Hallöchen,

nimm

ListBox1.Value = ""
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#6
Jetzt hätte ich noch eine Frage und zwar soll im Range geprüft werden welcher Wert in Spalte A steht und dieser soll auf andere Userformen und Makros verteilt werden als variable

Quasi wähle ich jetzt in Userform1.Listbox1 eine Zeile aus mit der ID 1 jetzt soll in Userform2.Listbox2 alles eingetragen werden was die ID 1 bei sich trägt.

das wäre mein Makro:

Befüllen der Listbox:

Private Sub UserForm_Initialize()

ListBox1.ColumnCount = 4
ListBox1.ColumnWidths = "200;80;97;66"

Dim Rng1 As Range
Dim a1 As Variant
Dim LR As Long
Dim LC As Long

LR = Tabelle2.Cells(Rows.Count, 1).End(xlUp).Row
LC = Tabelle2.Cells(1, Columns.Count).End(xlToLeft).Column

Set Rng1 = Cells(2, 1).Resize(LR, LC)
a1 = Rng1
ListBox1.List = a1

End Sub


und das die Funktion in der Listbox:

Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Dim x As Integer
Dim Rng1 As Range
Dim a1 As Variant

Dim LR As Long
Dim LC As Long

LR = Tabelle2.Cells(Rows.Count, 1).End(xlUp).Row
LC = Tabelle2.Cells(1, Columns.Count).End(xlToLeft).Column

  Set Rng1 = Cells(2, 1).Resize(LR, LC)

For x = 0 To ListBox1.ListCount - 1
    If ListBox1.Selected(x) = True Then
        Kundendaten.TB_Firma = Tabelle2.Cells(x + 2, 1)
        Kundendaten.TB_Standort = Tabelle2.Cells(x + 2, 2)
        Kundendaten.TB_Release = Tabelle2.Cells(x + 2, 5)
        Kundendaten.TB_Ablaufdatum = Tabelle2.Cells(x + 2, 6)
    End If
Next x

Me.Controls("Label27").Caption = Kundendaten.TB_Firma

End Sub
Antworten Top
#7
Hallöchen,

wenn ich nix übersehen musst Du doch nur die selektierte Zeile der Listbox1 übernehmen? Oder gibt es Deine ID's mehrfach?
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#8
Hallo schauen

Ja die wird es geben deshalb brauche ich diesen „Filter“ (ich nenne es jetzt mal plump so)

Weil ein Kunde mehrere Kontakte besitzt und jeder Kontakt wird in eine Zeile geschrieben (Name Nummer email etc)

Zb.

Firma 1 bekommt die ID 1001
Jetzt jetzt bekommt jeder Datensatz wenn die Firma 1 ausgewählt ist die ID 1001

Usw.
Antworten Top
#9
Hallöchen,

dann gehe in einer Schleife alle Einträge durch und prüfe die ID.
Du könntest damit dann z.B. die zweite Listbox schrittweise mit ...add füllen. Der Ansatz dafür wäre

Code:
For iCnt1 = 0 To Listbox1.ListCount -1
  If Listbox1.List(iCnt1,0) = ID Then  
    With Listbox2
      .AddItem
      .List(i, 0) = ...
      .List(i, 1) = ...
...

ID wäre dann eine Variable für die gewählte ID -> ,0 falls die zuvorderst in der ersten "Spalte" steht, ansonsten die entsprechende "Spalten-" Zahl einsetzen (bea. Zählung beginnt bei 0).
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#10
ode:

Code:
For iCnt1 = 0 To Listbox1.ListCount -1
  If Listbox1.List(iCnt1,0) = ID Then  
    With Listbox2
      .AddItem
      .List(i, 0) = ...
      .List(i, 1) = ...

was wird den mit der variable „i“ angesprochen?

wie ich verstanden habe ersetzte ich meine „For x“ Schleife mit der „For iCnt1“ richtig?
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste