Clever-Excel-Forum

Normale Version: Listbox mit Standardeintrag
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo zusammen,

habe wieder einmal eine Frage an Euch: wie kann ich bei Verwendung einer Listbox (Active X Steuerelement) beim öffnen der Arbeitsmappe einen der Einträge, in meinem Fall den ersten Eintrag, markieren lassen? In den Eigenschaften habe ich dazu nichts gefunden und bei eimem Code habe ich einiges ausprobiert, - ohne den gewünschten Erfolg.

Wer kann mir dazu einen Tipp geben?

Grüße

NobX
Hallo NobX,

vielleicht kannst Du damit etwas anfangen:
Code:
  With Me.ListBoxKlass
      If Marker1 > 0 Then
        .Selected(Marker1) = True
        If Marker1 > 2 Then
            .TopIndex = Marker1 - 3
        End If
    End If
  End With
Marker1 ist die Nummer des zu markierenden Eintrags.

Gruß,
Lutz
Hallo Lutz,

vielen Dank für Deinen Tipp und den Code.
Das Ergebnis ist, dass die Index Werte aus der Listbox gespeichert bleiben, wenn ich die Mappe wieder neu öffne. Die Checkbox ist jedoch nicht gefüllt bzw. die Position nicht markiert. Hast Du dafür vielleicht noch eine Idee? Huh 

Danke Dir und den anderen aktiven Forumsteilnehmern

Grüße
NobX
Hallo NobX,
ListBox1.Selected(0) = True
Gruß Uwe
Hallo Uwe,

meiinst Du es so?

Code:
With Me.ListBoxKlass
      If Marker1 > 0 Then
        ListBox1.Selected(0) = True
        If Marker1 > 2 Then
            .TopIndex = Marker1 - 3
        End If
    End If
  End With

Grüße
NobX
Hallo NobX,

wie ist denn dein Code drumrum?

Gruß,
Lutz
Hallo Lutz,

das ist der Code zur Listbox (dank Uwe):

Private Sub ListBox1_Change()
  Dim i As Long
  Dim s() As Long
  ReDim s(0 To ListBox1.ListCount - 1, 1 To 1) As Long
  With ListBox1
    For i = 0 To .ListCount - 1
      If .Selected(i) Then
        s(i, 1) = i + 1
    End If
    Next
    Range("D275:D296") = s
    End With
End Sub


Grüße
NobX
Hallo NobX,

im VBA-Modul DieseArbeitsmappe:
Private Sub Workbook_Open()
Sheets(1).ListBox1.Selected(0) = True
End Sub
Gruß Uwe
Hallo Uwe,

es klappt. Habe allerdings noch einen kleinen Umweg benötigt, da in diesem Modul schon ein Code mit ..... Private Sub Workbook_Open() steht. Habe Deinen erst darunter angeordnet, - das gefiel Ihm nicht (konntest Du aber auch nicht wissen, dass da schon einer steht). Jetzt habe ich es so gemacht:

Private Sub Workbook_Open()
With Sheets("Konditionen")
.Range("G3") = .Range("G3") + 1
ActiveWorkbook.Save
End With
Sheets(1).ListBox1.Selected(0) = True
End Sub


Das funktioniert so wie gewünscht. Danke an die Mitwirkenden. Einen schönen Nachmittag noch.

Grüße

NobX
Hallo NobX,

wenn es sich um dasselbe Sheet handelt, könnte man es so zusammenfassen:
Private Sub Workbook_Open()
With Sheets("Konditionen")
.Range("G3").Value = .Range("G3").Value + 1
.ListBox1.Selected(0) = True
End With
Me.Save
End Sub
Gruß Uwe
Seiten: 1 2