Das Clever-Excel-Forum.de - Treffen
findet vom 15. - 17. September 2017 in Thüringen / Region Großer Inselsberg statt. Hotelbuchung ab sofort möglich.


Einzelne Einträge einer Listbox für Auswahl sperren
#1
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
to top
#2
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-2016)
to top
#3
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.
to top
#4
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
to top
#5
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
to top
#6
Hallo Leute,

ich bedanke mich und probiere den Code morgen aus.

See you
to top
#7
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
to top
#8
Hallo Uwe,

funktioniert super. Wäre wohl nie drauf gekommen.

Danke
to top


Möglicherweise verwandte Themen...
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Listbox erste Zeile michel34497 2 46 24.02.2017, 07:52
Letzter Beitrag: schauan
  Zellen Sperren, Gruppierung weiterhin erlauben BraucheHilfe:) 12 143 23.02.2017, 10:16
Letzter Beitrag: BraucheHilfe:)
  Volumenstromberechnung und die Auswahl der richtigen Rohrdimensionen Betageuze 8 84 19.02.2017, 13:10
Letzter Beitrag: Ego
  Zellen je nach Farbe sperren Ralf1 1 62 17.02.2017, 20:05
Letzter Beitrag: schauan
  2 Spalten nach Doubletten untersuchen und markieren oder eintrage ändern purestyles 31 372 16.02.2017, 21:44
Letzter Beitrag: atilla
  "Intelligente Tabelle" automatisch um Einträge erweitern Excel_Dummy_66 4 144 13.02.2017, 09:18
Letzter Beitrag: Excel_Dummy_66
  einzelne Formeln ausschalten? T081A5 4 117 10.02.2017, 22:41
Letzter Beitrag: schauan
  Zellen sperren bei bestimmten Bedingungen (ja/nein) PhiLa303 7 122 03.02.2017, 18:19
Letzter Beitrag: schauan
  Excel Abfrage - Wie können einzelne Spalten auf einem Blatt dargestellt werden?? excelblower 5 167 30.01.2017, 17:29
Letzter Beitrag: schauan
  listbox dynamisch erweitern Windlaeufer 7 142 29.01.2017, 11:54
Letzter Beitrag: snb

Gehe zu:


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