Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Listbox mit Standardeintrag
#1
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
Antwortento top
#2
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
Antwortento top
#3
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
Antwortento top
#4
Hallo NobX,
ListBox1.Selected(0) = True
Gruß Uwe
Antwortento top
#5
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
Antwortento top
#6
Hallo NobX,

wie ist denn dein Code drumrum?

Gruß,
Lutz
Antwortento top
#7
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
Antwortento top
#8
Hallo NobX,

im VBA-Modul DieseArbeitsmappe:
Private Sub Workbook_Open()
Sheets(1).ListBox1.Selected(0) = True
End Sub
Gruß Uwe
Antwortento top
#9
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
Antwortento top
#10
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
Antwortento top


Gehe zu:


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