Registriert seit: 20.06.2021
Version(en): 2019
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!
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
Hallo,
was hat Dein geposteter Code mit Deiner Frage zu tun?
Bei mir bleiben übrigens die Selekts erhalten.
Gruß Uwe
Registriert seit: 20.06.2021
Version(en): 2019
Ja mir ist grad aufgefallen dass ich meine Userformen mit
Unload verlasse dann ist das schon klar.......
Danke
Trotzdem wie kann ich die Markierte Zeile in meiner Listbox abwählen?
Registriert seit: 16.08.2020
Version(en): 2019 64bit
29.07.2022, 20:21
(Dieser Beitrag wurde zuletzt bearbeitet: 29.07.2022, 20:21 von Egon12.)
Hallo tomcat,
ich schicke dir mal ne pn zum verherigen Thread.
Gruß Uwe
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen,
nimm
ListBox1.Value = ""
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 20.06.2021
Version(en): 2019
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
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
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)
Registriert seit: 20.06.2021
Version(en): 2019
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.
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
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)
Registriert seit: 20.06.2021
Version(en): 2019
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?