Hallo zusammen,
ich habe ein Problem mit meiner Listbox. Ich habe eine Excel-Datei ("Ziel.xlsm") mit der eine andere Excel-Datei ausgewertet wird. Meine Datei ("Ziel.xlsm") mit Makro bleibt immer die gleiche. Jedoch kann die Datei, auf die sie sich bezieht variieren. Es funktioniert soweit alles, wie geplant. Die andere Datei heißt immer "Basis.xlsx" und ist vom Aufbau immer gleich. Lediglich die Daten sind unterschiedlich (Also die Zahlenwerte, da sie zu unterschiedlichen Projekten gehören).
Das Problem ist, wenn kein Eintrag aus der Listbox 1 ausgewählt wurde, dann ist beim Öffnen der 1. Datei "Basis" der Listindex = -1, wenn kein Eintrag ausgewählt wurde.
Daraufhin erscheint eine Msgbox.
Wenn ich nun aber die "Basis"-Datei eines anderen Projektes öffne, ist hier standardmäßig der Listindex = 0, wenn kein Eintrag ausgewählt wurde.
Momentan passe ich jedes mal den Code an. Ich setzte also meine If-Bedingungen jedes mal neu (entweder If Listbox1.Listindex = 0 oder eben = -1).
Ich kann leider nicht mit Kann ich den Listindex irgendwie festsetzen (evtl. bevor sie überhaupt gefüllt wird?), sodass eine universale Lösung erschafft wird? Jedes mal den Code individualisieren ist nicht gerade die beste Lösung.
Ich hoffe, jemand versteht, was ich meine und kann mir helfen.
Viele Grüße
Jessi
PS: Ich arbeite mit Excel 2016, gibt's leider im Eingabeformular noch nicht zur Auswahl.
(Falls jemand den Code braucht:)
Public Sub UserForm_Initialize() Liste gefüllt, Basis Tabelle muss vorhanden und geöffnet sein
With Workbooks("Basis.xlsx").Worksheets("Tabelle1")
For I = 2 To .Cells(Rows.Count, 1).End(xlUp).Row
Listbox1.AddItem .Cells(I, 4)
Next
End With
End Sub
Public Sub Button_OK_Click()
If Listbox1.ListIndex = -1 Then 'Or Listbox1.ListIndex = 0 Then
MsgBox "Bitte einen Eintrag auswählen."
Exit Sub
Else
With Workbooks("Ziel.xlsm").Worksheets("Kosten")
LZZiel = .Cells(Rows.Count, 3).End(xlUp).Row
Windows("Ziel.xlsm").Activate
For J = 0 To UserForm1.Listbox1.ListCount - 1
If UserForm1.Listbox1.Selected(J) Then _
_
Ab hier wird bei der zweiten "Basis"-Datei nichts mehr erkannt. Erst wenn man
If Listbox1.Listindex = 0 then
Else ...
setzt läuft der Code. Wenn man mit dem Cursor über die letzte (fette) Zeile fährt, erscheint "Eigenschaft Selected konnte nicht abgerufen werden"