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

Listbox ZeilenAnzahl

Forumthread: Listbox ZeilenAnzahl

Listbox ZeilenAnzahl
20.03.2003 16:03:30
Jens
Hallo zusammmen
in der Listbox1 werden beim Afruf der UF bereits Werte eingelesen. Nun möchte ich die Möglichkeit haben weitere Werte in die listbox zu kopieren. Dazu verwende ich folgenden Code:

'Public Zeile As Integer

With ListBox1
.ColumnWidths = "5,5cm;1cm;0,75cm"
.AddItem TextBox9.Value
.List(Zeile, 1) = ComboBox3.Value
.List(Zeile, 2) = TextBox11.Value
'.List(Zeile, 3) = TextBox2.Value
Zeile = Zeile + 1
End With

Nur bei dem Code wird Zeile beim erste neuen Eintrag auf 1 gesetzt und damit die Werte der Spalten 2 und 3 in der 1.Zeile der Listbox überschrieben. Wie kann ich den Befehl Zeile=Zeile+1
ersetzen das immer unterhalb der letzten Eintragung eingefügt wird? Ist Listindex ?

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Listbox ZeilenAnzahl
20.03.2003 16:23:41
Andi_H

hi,

zeile = cells(65000,1).end(xlup).offset(1,0).row

spalte 1 wird von zeile 65000 nach oben durchlaufen bis zum letzten eintrag, geht dann eine zeile nach unten und weist "zeile" den wert den aktuellen zeile zu

gruß

andi

Re: Listbox ZeilenAnzahl
20.03.2003 16:29:06
L.Vira

Zeile = listbox1.listcount+1

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Listbox in Excel: Zeilenanzahl korrekt einstellen


Schritt-für-Schritt-Anleitung

Um die Zeilenanzahl in einer Listbox in Excel korrekt zu verwalten und sicherzustellen, dass neue Einträge unterhalb der letzten Zeile hinzugefügt werden, kannst du die folgenden Schritte befolgen:

  1. Öffne die VBA-Entwicklungsumgebung:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge den folgenden Code hinzu:

    Public Zeile As Integer
    
    Private Sub UserForm_Initialize()
       Zeile = 0 ' Initialisiere die Zeile
       With ListBox1
           .ColumnWidths = "5cm;1cm;0,75cm" ' Spaltenbreiten festlegen
       End With
    End Sub
    
    Private Sub ButtonHinzufügen_Click()
       Zeile = ListBox1.ListCount ' Setze die Zeile auf die aktuelle Anzahl der Listeneinträge
       With ListBox1
           .AddItem TextBox9.Value ' Füge den Wert aus TextBox9 hinzu
           .List(Zeile, 1) = ComboBox3.Value ' Füge den Wert aus ComboBox3 hinzu
           .List(Zeile, 2) = TextBox11.Value ' Füge den Wert aus TextBox11 hinzu
           ' .List(Zeile, 3) = TextBox2.Value ' Optional: Füge weiteren Wert hinzu
       End With
    End Sub
  3. Prüfe die Funktionsweise:

    • Starte das UserForm und teste die Eingaben in der Listbox. Jeder neue Eintrag sollte jetzt unter dem vorhergehenden erscheinen.

Häufige Fehler und Lösungen

  • Problem: Die Zeile wird immer auf 1 gesetzt.

    • Lösung: Stelle sicher, dass Zeile mit ListBox1.ListCount initialisiert wird, bevor du neue Einträge hinzufügst.
  • Problem: Die Listbox zeigt nicht alle Einträge an.

    • Lösung: Überprüfe die Eigenschaften der Listbox in den Formulareinstellungen, um sicherzustellen, dass genug Platz für die Einträge vorhanden ist.

Alternative Methoden

Anstelle von VBA kannst du auch Excel-Formeln oder Pivot-Tabellen nutzen, um Daten dynamisch zu verwalten. Diese Methoden bieten jedoch nicht die gleiche Flexibilität wie die Verwendung einer Listbox in einem UserForm.


Praktische Beispiele

Hier ein einfaches Beispiel, um Werte aus Textfeldern in eine Listbox zu übertragen:

  1. Nehme an, du hast folgende Textfelder:

    • TextBox9: für den ersten Wert
    • ComboBox3: für den zweiten Wert
    • TextBox11: für den dritten Wert
  2. Verwende den oben genannten Code, um diese Werte in die Listbox einzufügen.

Mit ListBox1.ListCount kannst du die Anzahl der Einträge in der Listbox abfragen und sicherstellen, dass neue Werte korrekt hinzugefügt werden.


Tipps für Profis

  • Verwende Fehlerbehandlung: Implementiere On Error Resume Next, um Laufzeitfehler zu verhindern, falls ein Benutzer ungültige Eingaben macht.

  • Datenvalidierung: Stelle sicher, dass die Eingabefelder validiert werden, bevor du sie in die Listbox überträgst, um unerwartete Ergebnisse zu vermeiden.

  • Dynamische Anpassung: Nutze die ListIndex-Eigenschaft, um gezielt auf bestimmte Einträge zuzugreifen und diese zu ändern oder zu löschen.


FAQ: Häufige Fragen

1. Wie kann ich die Listbox leeren? Um die Listbox zu leeren, kannst du folgendes verwenden:

ListBox1.Clear

2. Ist es möglich, die Listbox mehrdimensional zu gestalten? Ja, du kannst mehrere Spalten in einer Listbox erstellen, indem du die ColumnCount-Eigenschaft auf die gewünschte Anzahl von Spalten setzt.

3. Was ist der Unterschied zwischen ListCount und ListIndex? ListCount gibt die Anzahl der Einträge in der Listbox zurück, während ListIndex den Index des aktuell ausgewählten Eintrags angibt.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige