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

Forumthread: Listbox aktualisieren

Listbox aktualisieren
Harry
Hallo Exelforum,
Ich brauche wieder einmal eure Hilfe.
Ich habe eine Userform mit einer Listbox. In dieser Userform schalte ich von Exelblatt 1 auf Blatt 2, Blatt 3 usw. Ich möchte das die Listbox bei Auswahl der Blätter auch ihren Inhalt anzeigt. Alle Blätter sind gleich und die Listbox greift immer auf den selben Bereich zu, bzw. sollte es machen.
Ich hoffe es gibt eine Möglichkeit
Harry
Anzeige

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Listbox aktualisieren
K.Rola
Hallo,
selektierst du die jeweiligen Blätter?
Gruß K.Rola
AW: Listbox aktualisieren
Harry
Hallo,
Ich wähle die Blätter über einen Commandbutton aus.
z.B

Private Sub CommandButton3_Click()
Sheets("3").Select
End Sub

Jetzt sollte die Listbox den Inhalt von Blatt 3 anzeigen.
Es geht wenn ich die Userform schließe und wieder öffne, aber das will ich vermeiden.(Flackert)
Harry
Anzeige
AW: Listbox aktualisieren
K.Rola
Hallo,
da du nicht beschrieben hast, wie die Listbox gefüllt wird, gehe ich mal
von RowSource aus:

Private Sub CommandButton1_Click()
Sheets(1).Select
ListBox1.RowSource = "Tabelle1!A1:b10"
End Sub


Private Sub CommandButton2_Click()
Sheets(2).Select
ListBox1.RowSource = "Tabelle2!A1:b10"
End Sub

Gruß K.Rola
Anzeige
AW: Listbox aktualisieren
17.04.2004 23:26:35
Harry
Hallo,
Vielen Dank, so funktioniert es. Ich hatte RowSource in den Eigenschaften der Listbox festgelegt.
Harry
OT @ K.Rola: Du hast Post.............oT
Boris
Grüße Boris
AW: OT 3: Mp3s....
K.Rola
Hallo mai Bruhda,
die Telefonmimik benutz mein Partner schon ca 6 Monate, ich selbst
aber nicht, da ich kaum telefoniere.
Dass Nepumuckel(hoffentlich dauerhaft)wieder da ist, freut sicher
nicht nur mich. Obwohl ichs vielleicht weniger nötig habe, als Andere,
weiß ichs vermutlich sogar besser zu schätzen.
Wenn ich das richtig sehe, hast du doch die Datei schon weitergegeben, wozu
dann noch die Frage? Du kannst sie aber ruhig weitergeben, war eh der erste
Versuch.
Gruß K.Rola
Anzeige
AW: Listbox aktualisieren
Oberschlumpf
Hi Harry
Welcher Bereich ist das denn, den Du meinst? Immer wieder schön zu lesen, wenn jemand eine Frage hat UND davon ausgeht, dass andere genau wissen, was gemeint ist, OHNE die entsprechenden Angaben zu machen....tzzz
Aber ich versuch es trotzdem.
Und...versuch Du es mal so:

Private Sub Worksheet_Activate()
UserForm1.ListBox1.Clear
UserForm1.ListBox1.AddItem Range("A1").Value
UserForm1.ListBox1.AddItem Range("A2").Value
UserForm1.ListBox1.AddItem Range("A3").Value
UserForm1.ListBox1.AddItem Range("A4").Value
End Sub

Dieser Code muss in JEDEM Arbeitsblatt im entsprechenden Modul stehen.
Dieser Code bewirkt, dass bei jedem Wechsel von einem ins andere Arbeitsblatt die Zellinhalte von A1:A4 in die Listbox gelesen werden.
Konnte ich helfen?
Ciao
Thorsten
Anzeige
AW: Listbox aktualisieren
Harry
Hallo,
Vielen Dank, ich werde es gleich mal versuchen.
Harry
und?...hattest du erfolg? :-)...o.T.
17.04.2004 23:30:02
Oberschlumpf
;
Anzeige
Anzeige

Infobox / Tutorial

Listbox Aktualisieren in Excel mit VBA


Schritt-für-Schritt-Anleitung

  1. Userform erstellen: Beginne mit der Erstellung einer Userform in Excel, die eine Listbox enthält.

  2. CommandButton hinzufügen: Füge einen CommandButton hinzu, um zwischen den Excel-Blättern zu wechseln.

  3. Blätter auswählen: Verwende den folgenden VBA-Code, um das entsprechende Blatt auszuwählen und die Listbox zu aktualisieren:

    Private Sub CommandButton3_Click()
       Sheets("3").Select
       Call UpdateListBox
    End Sub
  4. Listbox aktualisieren: Erstelle eine separate Subroutine, um die Listbox zu aktualisieren:

    Sub UpdateListBox()
       With UserForm1.ListBox1
           .Clear
           .AddItem Sheets("3").Range("A1").Value
           .AddItem Sheets("3").Range("A2").Value
           .AddItem Sheets("3").Range("A3").Value
           .AddItem Sheets("3").Range("A4").Value
       End With
    End Sub
  5. Code kopieren: Stelle sicher, dass der Code in jedes Arbeitsblattmodul eingefügt wird, um die Listbox bei jedem Aktivieren eines Blattes zu aktualisieren.


Häufige Fehler und Lösungen

  • Listbox bleibt leer: Stelle sicher, dass der Code zur Aktualisierung der Listbox tatsächlich aufgerufen wird, wenn der CommandButton betätigt wird. Füge Debugging-Statements hinzu, um sicherzustellen, dass die Subroutine UpdateListBox aufgerufen wird.

  • Falscher Bereich: Achte darauf, dass die Zellreferenzen in deinem VBA-Code mit den tatsächlichen Zellen übereinstimmen, die du anzeigen möchtest.

  • Flackern beim Aktualisieren: Wenn du die Userform schließen und wieder öffnen musst, um die Listbox zu aktualisieren, kannst du das Flackern reduzieren, indem du die Listbox im Worksheet_Activate-Ereignis aktualisierst.


Alternative Methoden

  • RowSource verwenden: Eine häufige Methode zur Aktualisierung einer Listbox ist die Verwendung der RowSource-Eigenschaft. Hier ein Beispiel:

    Private Sub CommandButton1_Click()
       Sheets(1).Select
       ListBox1.RowSource = "Tabelle1!A1:B10"
    End Sub
  • Dynamische Arrays: Eine weitere Möglichkeit ist die Verwendung eines Arrays, um die Daten in die Listbox zu laden:

    Sub LoadListBoxData()
       Dim dataArray() As Variant
       dataArray = Sheets("3").Range("A1:A4").Value
       UserForm1.ListBox1.List = dataArray
    End Sub

Praktische Beispiele

Hier sind einige Beispiele, wie du die Listbox aktualisieren kannst:

  1. Einfaches Beispiel: Aktualisiere die Listbox mit einer festen Zellreferenz.

    Private Sub CommandButton_Click()
       UserForm1.ListBox1.Clear
       UserForm1.ListBox1.AddItem Sheets("1").Range("A1").Value
    End Sub
  2. Dynamisches Beispiel: Lade mehrere Zellen in die Listbox, abhängig von der Auswahl des Benutzers.

    Private Sub CommandButton_Click()
       Dim i As Long
       UserForm1.ListBox1.Clear
       For i = 1 To 10
           UserForm1.ListBox1.AddItem Sheets("1").Cells(i, 1).Value
       Next i
    End Sub

Tipps für Profis

  • Fehlerbehandlung: Implementiere eine Fehlerbehandlung in deinem Code, um unerwartete Fehler beim Zugriff auf Blätter oder Bereiche zu vermeiden.

  • Optimierung: Verwende Application.ScreenUpdating = False am Anfang deiner Subroutine, um das Flackern zu reduzieren, und setze es am Ende wieder auf True.

  • Modularisierung: Teile deinen Code in kleinere, wiederverwendbare Subroutinen auf, um die Wartbarkeit zu verbessern.


FAQ: Häufige Fragen

1. Wie kann ich die Listbox automatisch aktualisieren, wenn ich das Blatt wechsle?
Verwende das Worksheet_Activate-Ereignis, um die Listbox bei einem Blattwechsel zu aktualisieren.

2. Welche Excel-Version benötige ich für diese Funktionalität?
Die beschriebenen Methoden funktionieren in Excel 2010 und neueren Versionen, die VBA unterstützen.

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