Registriert seit: 11.08.2014
Version(en): 2013
Hallo liebe Leute,
wie schaffe ich es bei einer ListBox, dass ich den ersten Eintrag, hier also nur den Eintrag Überschrift nicht auswählen kann. Wähle ich die Option Locked = True ist immer gleich das ganze Listenfeld gesperrt.
Code:
With Me.ListBox1
.AddItem "Überschrift"
.AddItem "Eintrag 1"
.AddItem "Eintrag 2"
.AddItem "Eintrag 3"
.AddItem "Eintrag 4"
.Locked = True
End With
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
27.08.2014, 20:17
(Dieser Beitrag wurde zuletzt bearbeitet: 27.08.2014, 20:19 von schauan.)
Hallo sotaros,
eine Listbox hat in Excel die "clevere" Eigenschaft ColumnHeads. die wirkt aber glaube nur beim Füllen mit RowSource
- also doch nicht so clever.
Jetzt ist die Frage, was Du mit der Nichtauswahl bezwecken willst. Soll dabei nur ein Ereignis nicht wirken, soll "nur" die Markierung wieder weg... ?
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 11.08.2014
Version(en): 2013
Hallo Andre,
der Eintrag "Überschrift" soll nicht markiert werden, können bzw. wähle ich diesen
Eintrag aus soll alles so bleiben wie es ist. Also auch keine Änderung der vorherigen
Marikierung.
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
Hallo sotaros,
schreibe in ein allgemeines Modul dieses Makro:
Code:
Sub KeineAuswahl()
With UserForm1.ListBox1 'UserForm-Name entsprechend anpassen!
.Visible = False
.ListIndex = -1
.Visible = True
End With
End Sub
In die Userform kommt dann das:
Code:
Private Sub ListBox1_Click()
If ListBox1.ListIndex = 0 Then Application.OnTime Now, "KeineAuswahl"
End Sub
Gruß Uwe
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
Hallo sotaros,
verbesserte Variante:
Code:
Sub KeineAuswahl()
With UserForm1.ListBox1
If .ListIndex = 0 Then
.Visible = False
.ListIndex = -1
.Visible = True
Else
.ListIndex = .Tag
End If
End With
End Sub
Code:
Private Sub ListBox1_Click()
If ListBox1.ListIndex = 0 Then
Application.OnTime Now, "KeineAuswahl"
Else
ListBox1.Tag = ListBox1.ListIndex
End If
End Sub
Gruß Uwe
Registriert seit: 11.08.2014
Version(en): 2013
Hallo Leute,
ich bedanke mich und probiere den Code morgen aus.
See you
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
Hallo sotarus,
Korrektur, da ich vorhin den falschen Code postete.
Code:
'allgemeines Modul
Sub KeineAuswahl()
With UserForm1.ListBox1
If .Tag = "" Then
.ListIndex = -1
Else
.ListIndex = .Tag
End If
End With
End Sub
Code:
'Modul der UserForm
Private Sub ListBox1_Click()
If ListBox1.ListIndex = 0 Then
Application.OnTime Now, "KeineAuswahl"
Else
ListBox1.Tag = ListBox1.ListIndex
End If
End Sub
Gruß Uwe
Registriert seit: 11.08.2014
Version(en): 2013
Hallo Uwe,
funktioniert super. Wäre wohl nie drauf gekommen.
Danke