Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Listbox RowSource setzen

Listbox RowSource setzen
17.03.2007 21:22:05
Jonathan
Hey,
ich muss Euch nochmal stören!
Ich komme mit dem Setzen der RowSource nicht weiter.
Das setzen von z.B. A1 bis letzte Zeile ist kein Problem.
Nun möchte speichere ich die erste und letzte Zeile in einer Variablen.
RowSource soll jetzt auf Das Tabellenblatt Zutat (A,ersteZeile):(C, letzteZeile) verweisen. Wie funktioniert das?
Danke Euch!
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Listbox RowSource setzen
17.03.2007 21:35:00
Josef
Hallo Jonathan,
das geht so.
With Sheets("Zutat")
    ListBox1.RowSource = "Zutat!A1:C" & .Cells(Rows.Count, 3).End(xlUp).Row
End With

Gruß Sepp
Anzeige
AW: Listbox RowSource setzen
17.03.2007 21:56:00
Jonathan
Hi!
Genau das hatte ich bisher auch! ;-)
Allerdings muss auch die erste Zeile variabel sein.
Danke für deine Hilfe!
AW: Listbox RowSource setzen
17.03.2007 22:00:00
Ramses
Hallo
Und wo ist nun das problem
With Sheets("Zutat")
ListBox1.RowSource = "Zutat!A" & Deine_Variable &":C" & .Cells(Rows.Count, 3).End(xlUp).Row
End With
Gruss Rainer
Anzeige
AW: Listbox RowSource setzen
17.03.2007 22:08:00
Jonathan
Oh!
Hatte das ! vergessen - vielen Dank! (hätte ich mal direkt den Code gepostet)
;
Anzeige
Anzeige

Infobox / Tutorial

Listbox RowSource in Excel VBA richtig setzen


Schritt-für-Schritt-Anleitung

Um die RowSource einer Listbox in Excel VBA zu setzen, befolge diese Schritte:

  1. Öffne den VBA-Editor: Drücke ALT + F11 in Excel.

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

  3. Schreibe den Code: Verwende den folgenden Code, um die RowSource der Listbox zu setzen, wobei du die ersten und letzten Zeilen variabel speicherst:

    Sub SetListBoxRowSource()
       Dim ersteZeile As Long
       Dim letzteZeile As Long
    
       ' Hier die Werte für die erste und letzte Zeile festlegen
       ersteZeile = 1 ' Beispielwert, anpassen wie benötigt
       letzteZeile = Sheets("Zutat").Cells(Rows.Count, 3).End(xlUp).Row
    
       With Sheets("Zutat")
           ListBox1.RowSource = "Zutat!A" & ersteZeile & ":C" & letzteZeile
       End With
    End Sub
  4. Schließe den VBA-Editor: Speichere deine Änderungen und gehe zurück zu Excel.

  5. Führe das Makro aus: Du kannst das Makro über die Entwicklertools oder das Menü "Makros" ausführen.


Häufige Fehler und Lösungen

  • Problem: Die RowSource wird nicht gesetzt.

    • Lösung: Stelle sicher, dass der Name der Listbox korrekt ist (z.B. ListBox1) und dass das Arbeitsblatt "Zutat" existiert. Achte auch darauf, dass die Variablen ersteZeile und letzteZeile korrekt definiert sind.
  • Problem: Fehler beim Verweis auf die Zellen.

    • Lösung: Überprüfe, ob die Zellen tatsächlich Daten enthalten und dass der Bereich korrekt definiert ist.

Alternative Methoden

Anstelle der RowSource-Methode kannst du auch die Listbox manuell befüllen:

Sub FillListBox()
    Dim ws As Worksheet
    Set ws = Sheets("Zutat")

    Dim i As Long
    For i = 1 To ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
        ListBox1.AddItem ws.Cells(i, 1).Value
    Next i
End Sub

Diese Methode kann nützlich sein, wenn du mehr Kontrolle über die Listeneinträge benötigst.


Praktische Beispiele

Angenommen, du hast eine Excel-Tabelle mit Zutaten in den Spalten A bis C. Du willst die Listbox mit diesen Zutaten befüllen, wobei die erste Zeile variabel ist:

Sub BeispielRowSource()
    Dim ersteZeile As Long
    ersteZeile = InputBox("Gib die erste Zeile an:")

    Dim letzteZeile As Long
    letzteZeile = Sheets("Zutat").Cells(Rows.Count, 1).End(xlUp).Row

    With Sheets("Zutat")
        .ListBox1.RowSource = "Zutat!A" & ersteZeile & ":C" & letzteZeile
    End With
End Sub

Tipps für Profis

  • Nutze Option Explicit am Anfang deines Moduls, um sicherzustellen, dass alle Variablen deklariert werden. Dies hilft, Fehler zu vermeiden.
  • Wenn du mit größeren Datenmengen arbeitest, erwäge die Verwendung von Datenbankabfragen oder PivotTables, um die Daten effizienter zu verwalten.
  • Experimentiere mit verschiedenen Eigenschaften der Listbox, wie ListCount, um die Anzahl der Elemente zu überprüfen.

FAQ: Häufige Fragen

1. Wie kann ich die RowSource einer Listbox dynamisch ändern? Du kannst die RowSource jederzeit im Code anpassen, indem du die Variablen entsprechend aktualisierst und den Code erneut ausführst.

2. Was ist der Unterschied zwischen RowSource und dem manuellen Hinzufügen von Elementen? Die Verwendung von RowSource ist effizienter, wenn du eine große Anzahl von Daten hast, während das manuelle Hinzufügen mehr Flexibilität bietet, wenn du die Listeneinträge individuell steuern möchtest.

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