Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Listbox ausblenden

Listbox ausblenden
walli
Hallo zusammen, habe noch einen Fehler endeckt.
Ich habe mehrer Listboxen und darüber die beiden Textboxen,
nun möchte ich bei der 3.Listbox die Daten in in der Listbox3
gelöscht haben wie bei dem Change Ereignis der Textbox1+2.
Habe das Makro auch über Google kopiert es klappt soweit sonst alles.
Mein Label1 anstelle der Textbox2,
WIE geht das ?
Private Sub TextBox2_Change()
Dim arr() As Variant
Dim index As Long, iCount As Long
X = IIf(IsEmpty(Range("K65536")), Range("K65536").End(xlUp).Row, 65536)
If TextBox2.Value = "" Then
ListBox2.RowSource = "K2:K" & X
Exit Sub
End If
ListBox2.RowSource = ""
ListBox2.Clear                  '!!! hiermit geleert
For index = 2 To X
If LCase(Left(Cells(index, 11), Len(TextBox2))) = LCase(TextBox2) Then
If Sheets("VK").Cells(index, 11)  "" Then
On Error Resume Next
ReDim Preserve arr(0, 0 To iCount)
arr(0, iCount) = Cells(index, 11)
iCount = iCount + 1
ListBox2.Column = arr
End If
End If
Next
End Sub

mfg walli
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
If Label1 = "" Then
04.10.2009 15:01:50
F1
...an den anderen Stellen textbox2 durch Label1 ersetzen
Aber es gibt doch kein..
04.10.2009 15:08:54
walli
Hallo F1,
es gibt doch kein:
Private Sub TextBox2_Change()
Ereignis, wenn der Name in die Textbox kopiert wird. Hierzu noch
der Auslöser:

Private Sub ListBox2_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Dim wbDatei, wb As Workbook
Dim wsData As Worksheet
Dim aVarData() As String
Dim lngY As Long
Dim strValue As String
Dim lngRow As Long
Dim Fill_Form
Set wsData = Sheets("VK")                  ' Datenblatt zuweisen
'  ListBox2.Width = 40
Application.ScreenUpdating = False
strValue = UFVKNamenSuchen.ListBox2.Value      ' ausgewählte Zeile in Dropdown
For lngY = 2 To 200                       ' Eintrag in Datenbank suchen 1000 Zeilen nach  _
unten
If wsData.Cells(lngY, 11) = "" Then       ' wenn leere Zelle gefunden
MsgBox strValue & " wurde nicht gefunden"
Exit For                             ' raus aus Schleife
ElseIf wsData.Cells(lngY, 11).Value = strValue Then
Exit For                                ' ebenso wenn Name gefunden
End If
Next
UFVKNamenSuchen.TextBox1.Value = wsData.Cells(lngY, 10).Value
UFVKNamenSuchen.Label1 = Format(wsData.Cells(lngY, 12).Value, "00")
'Wert an die globale Variable übergeben
lngRow = lngY
'Ausfüllen der UF mit dem externen Makro starten
' Fill_Form lngRow
TextBox2 = strValue
''    Exit For ' ebenso wenn Name gefunden
' End If
' Next
End Sub
mfg walli
Anzeige
Noch ein Hinweis
04.10.2009 15:20:03
walli
Hallo F1,
so habe ich das Makro erstellt:
Private Sub Label1_Click()
Dim wsData As Worksheet
Dim arr() As Variant
Dim lngY As Long
Dim index As Long, iCount As Long
Dim wbDatei, wb As Workbook
Set wsData = Sheets("VK")                  ' Datenblatt zuweisen
X = IIf(IsEmpty(Range("L65536")), Range("L65536").End(xlUp).Row, 65536)
If Label1 = "" Then
ListBox3.RowSource = "L2:L" & X
Exit Sub
End If
ListBox3.RowSource = ""
ListBox3.Clear
For index = 2 To X
If LCase(Left(Cells(index, 12), Len(Label1))) = LCase(Label1) Then
If Sheets("VK").Cells(index, 12)  "" Then
On Error Resume Next
ReDim Preserve arr(0, 0 To iCount)
arr(0, iCount) = Cells(index, 12)
iCount = iCount + 1
ListBox3.Column = arr
End If
End If
Next
End Sub
wenn ich jetzt auf das Label1 klicke , verschwindet die Listbox komplett
also es bleibt nicht die ausgewählte Nummer stehen.
Wenn es nicht gehen sollte nehme ich halt eine Textbox oder
mfg Walli
Anzeige
Hallo F1, habe ............. -)
04.10.2009 18:19:27
walli
Guten Abend F1,
habe jetzt eine Textbox eingesetzt, so klappt es.
Danke für die Hilfe,
schönen Abend noch
mfg walli
;
Anzeige

Infobox / Tutorial

Listbox in Excel ausblenden und steuern


Schritt-für-Schritt-Anleitung

Um eine Listbox in Excel auszublenden oder deren Inhalt zu steuern, kannst Du VBA (Visual Basic for Applications) verwenden. Hier ist eine Schritt-für-Schritt-Anleitung, wie Du dies umsetzen kannst:

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf "VBAProject (dein Arbeitsmappename)" und wähle Einfügen > Modul.

  3. Erstelle das Makro: Füge den folgenden Code in das Modul ein, um die Listbox zu steuern:

    Private Sub Label1_Click()
       Dim wsData As Worksheet
       Dim arr() As Variant
       Dim index As Long, iCount As Long
       Set wsData = Sheets("VK")                  ' Datenblatt zuweisen
       X = IIf(IsEmpty(Range("L65536")), Range("L65536").End(xlUp).Row, 65536)
    
       If Label1 = "" Then
           ListBox3.RowSource = "L2:L" & X
           Exit Sub
       End If
    
       ListBox3.RowSource = ""
       ListBox3.Clear
    
       For index = 2 To X
           If LCase(Left(Cells(index, 12), Len(Label1))) = LCase(Label1) Then
               If Sheets("VK").Cells(index, 12) <> "" Then
                   On Error Resume Next
                   ReDim Preserve arr(0, 0 To iCount)
                   arr(0, iCount) = Cells(index, 12)
                   iCount = iCount + 1
                   ListBox3.Column = arr
               End If
           End If
       Next
    End Sub
  4. Testen: Klicke auf Label1, um zu sehen, wie die Listbox reagiert. Wenn alles korrekt eingerichtet ist, wird die Listbox entsprechend der Eingabe in Label1 aktualisiert.


Häufige Fehler und Lösungen

  • Listbox verschwindet komplett: Wenn die Listbox nicht mehr angezeigt wird, überprüfe, ob der RowSource der Listbox korrekt gesetzt ist. Wenn Label1 leer ist, wird die RowSource auf einen leeren Bereich gesetzt, was die Listbox leer macht. Stelle sicher, dass Du die Logik entsprechend anpasst.

  • Kein Inhalt in der Listbox: Achte darauf, dass die Daten in der angegebenen Spalte tatsächlich vorhanden sind. Wenn die Zellen leer sind, wird die Listbox auch leer bleiben.


Alternative Methoden

Falls Du keine VBA-Lösungen verwenden möchtest, kannst Du auch:

  • Datenüberprüfung (Data Validation): Eine Dropdown-Liste über die Datenüberprüfung erstellen, um eine Auswahl zu treffen. Dies ist jedoch weniger flexibel als eine Listbox.
  • Formularsteuerelemente: Verwende ein Kombinationsfeld, das eine ähnliche Funktionalität bietet, jedoch einfacher zu konfigurieren ist.

Praktische Beispiele

Hier sind einige praktische Anwendungsszenarien für das Steuern von Listboxen in Excel:

  1. Dynamische Filterung: Verwende die Listbox, um eine dynamische Filterung von Daten in einer Tabelle zu ermöglichen. Bei Eingabe in eine Textbox wird die Listbox aktualisiert.
  2. Auswahl von Werten: Eine Listbox kann verwendet werden, um aus einer Liste von Produkten oder Dienstleistungen auszuwählen, die dann in eine Bestellung übernommen werden.

Tipps für Profis

  • Verwende Error Handling: Implementiere Error Handling in Deinem VBA-Code, um Abstürze zu vermeiden, wenn unerwartete Eingaben gemacht werden.

    On Error GoTo ErrorHandler
    ' Ihr Code hier
    Exit Sub
    
    ErrorHandler:
      MsgBox "Ein Fehler ist aufgetreten: " & Err.Description
  • Optimierung der Performance: Schalte Application.ScreenUpdating = False zu Beginn deines Makros ein, um die Performance zu verbessern, insbesondere bei umfangreichen Daten.


FAQ: Häufige Fragen

1. Wie kann ich eine Listbox ganz ausblenden?
Du kannst die Sichtbarkeit der Listbox über die Eigenschaft Visible steuern: ListBox3.Visible = False.

2. Was kann ich tun, wenn die Listbox nicht reagiert?
Überprüfe, ob das entsprechende Ereignis korrekt verknüpft ist (z. B. Click oder Change) und dass der Code ohne Fehler durchläuft.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige