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

Leere Zeilen überspringen

Forumthread: Leere Zeilen überspringen

Leere Zeilen überspringen
25.11.2002 14:10:08
Karin
Hallo zusammen!
Ich habe mal wieder eine Frage, zwei sogar ;o)

Wie kann ich leere Zeilen überspringen. Ich habe in einer Userform eine Combobox1, welche Daten aus einer Tabelle in verschiedenen Textboxen auf dieser Userform anzeigt. Bis dahin funktioniert alles bestens. Nun ist es so, dass nicht jede Zelle auf der Tabelle mit Daten gefüllt ist. Wie kann ich diese überspringen? Sonst habe ich in der Combobox1 sehr viele leere Zeilen. Mein Code bis dahin:

Dim arrA() As String
Dim arrB() As String
Dim arrC() As String
Dim arrD() As String
---------------------------------------
Private Sub ComboBox1_Click()

TextBox6 = arrA(ComboBox1.ListIndex)
Label1 = arrB(ComboBox1.ListIndex)
Label2 = arrC(ComboBox1.ListIndex)
Label18 = arrD(ComboBox1.ListIndex)
----------------------------------------------

Private Sub UserForm_Initialize()
ReDim Preserve arrA(0)
ReDim Preserve arrB(0)
ReDim Preserve arrC(0)
ReDim Preserve arrD(0)

arrA(0) = Cells(1, 1)
arrB(0) = Cells(1, 2)
arrC(0) = Cells(1, 3)
arrD(0) = Cells(1, 4)


i = 1
Do Until Cells(i, 1) = ""
ReDim Preserve arrA(UBound(arrA) + 1)
ReDim Preserve arrB(UBound(arrB) + 1)
ReDim Preserve arrC(UBound(arrC) + 1)
ReDim Preserve arrD(UBound(arrD) + 1)


i = i + 1
arrA(UBound(arrA())) = Cells(i, 1)
arrB(UBound(arrB())) = Cells(i, 2)
arrC(UBound(arrC())) = Cells(i, 3)
arrD(UBound(arrD())) = Cells(i, 4)


Loop

ReDim Preserve arrA(UBound(arrA) - 1)
ReDim Preserve arrB(UBound(arrB) - 1)
ReDim Preserve arrC(UBound(arrC) - 1)
ReDim Preserve arrD(UBound(arrD) - 1)

ComboBox1.List = arrB

Meine 2. Frage ist: kann man mit einer Multipage z.Beispiel Multipage.Page5 eine direkte Aktion ausführen? Bei Click soll es eine andere Userform anzeigen.

Ich wäre riesig dankbar für eure Hilfe!

Gruss
Karin

Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Leere Zeilen überspringen
25.11.2002 14:47:35
Frank R

Versuch es mal innerhalb einer IF-Anweisung
zb:
If z.value = " " Or z.value >= "1" Then


'(Dein Quelltext)

End if
Alles was leer ist wird jetzt übersprungen.

Re: Leere Zeilen überspringen
25.11.2002 14:53:12
Karin
verstehe ich nicht so ganz. Was steht denn für z.?

Re: Leere Zeilen überspringen
25.11.2002 14:53:52
Andreas Schindler
Hi Karin,

kannst Du die Texte vorher nicht z.B. Alphabetisch sortieren, dann fliegen die Leerzeilen automatisch raus.

Andreas

Anzeige
Re: Leere Zeilen überspringen
25.11.2002 14:56:29
Karin
das könnte ich evtl. vorher per VBA filtern. Danke für die Idee!!!
Gruss

Karin

Re: Leere Zeilen überspringen
27.11.2002 11:01:49
Frank R
Z.value ist der Suchbereich zb:

For Each z in Worksheets(1).range("A1:E12")
' und jetzt die IF Anweisung


next z

Vielen Dank!!!
27.11.2002 11:04:07
Karin
Gruss
Karin
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Leere Zeilen in Excel überspringen


Schritt-für-Schritt-Anleitung

Um leere Zeilen in einer Userform zu überspringen, kannst Du den folgenden VBA-Code verwenden. Dieser Code zeigt, wie Du leere Zellen beim Befüllen einer ComboBox ignorieren kannst:

Dim arrA() As String
Dim arrB() As String
Dim arrC() As String
Dim arrD() As String

Private Sub ComboBox1_Click()
    TextBox6 = arrA(ComboBox1.ListIndex)
    Label1 = arrB(ComboBox1.ListIndex)
    Label2 = arrC(ComboBox1.ListIndex)
    Label18 = arrD(ComboBox1.ListIndex)
End Sub

Private Sub UserForm_Initialize()
    ReDim Preserve arrA(0)
    ReDim Preserve arrB(0)
    ReDim Preserve arrC(0)
    ReDim Preserve arrD(0)

    i = 1
    Do Until Cells(i, 1) = ""
        If Cells(i, 1) <> "" Then
            ReDim Preserve arrA(UBound(arrA) + 1)
            ReDim Preserve arrB(UBound(arrB) + 1)
            ReDim Preserve arrC(UBound(arrC) + 1)
            ReDim Preserve arrD(UBound(arrD) + 1)

            arrA(UBound(arrA)) = Cells(i, 1)
            arrB(UBound(arrB)) = Cells(i, 2)
            arrC(UBound(arrC)) = Cells(i, 3)
            arrD(UBound(arrD)) = Cells(i, 4)
        End If
        i = i + 1
    Loop
    ReDim Preserve arrA(UBound(arrA) - 1)
    ReDim Preserve arrB(UBound(arrB) - 1)
    ReDim Preserve arrC(UBound(arrC) - 1)
    ReDim Preserve arrD(UBound(arrD) - 1)

    ComboBox1.List = arrB
End Sub

Dieser Code stellt sicher, dass nur die nicht leeren Zellen in die ComboBox geladen werden.


Häufige Fehler und Lösungen

  1. Leere Zeilen erscheinen in der ComboBox
    Lösung: Stelle sicher, dass die IF-Anweisung korrekt implementiert ist, um leere Zellen zu ignorieren.

  2. Array-Indizes sind nicht korrekt
    Lösung: Überprüfe, ob Du die Indizes der Arrays nach dem Redimensionieren richtig verwaltest. Achte darauf, dass Du die letzten Elemente nicht überschreibst.


Alternative Methoden

Eine andere Möglichkeit, leere Zeilen zu überspringen, ist die Verwendung von Filter oder Sort in VBA, um die Daten vor dem Befüllen der ComboBox zu bereinigen. Du kannst auch den AutoFilter verwenden, um die Daten zu filtern:

Worksheets("DeinSheet").Range("A1:E12").AutoFilter Field:=1, Criteria1:="<>"

Praktische Beispiele

Wenn Du beispielsweise eine Liste von Produkten hast, bei der einige Artikel keinen Namen haben, kannst Du den oben genannten Code verwenden, um nur die Produkte anzuzeigen, die tatsächlich Namen haben.

Hier ist ein einfaches Beispiel:

  • Tabelle: A B
    Produkt1 Preis1
    Preis2
    Produkt3 Preis3

Mit dem Code oben wird nur "Produkt1" und "Produkt3" in der ComboBox angezeigt.


Tipps für Profis

  • Nutze Debug.Print um die Werte der Arrays während der Programmierung zu überprüfen, damit Du sicherstellen kannst, dass die richtigen Daten geladen werden.
  • Experimentiere mit den ReDim-Befehlen, um die Effizienz Deines Codes zu verbessern, indem Du nicht ständig die Arrays neu dimensionierst.

FAQ: Häufige Fragen

1. Wie kann ich die Daten vor dem Laden in die ComboBox sortieren?
Du kannst die Daten vor dem Laden in die ComboBox mit der Sort-Methode sortieren, sodass leere Zeilen automatisch herausfallen.

2. Gibt es eine einfache Möglichkeit, leere Zeilen in einer Excel-Tabelle zu entfernen?
Ja, Du kannst die Daten in Excel filtern und die leeren Zeilen löschen, bevor Du sie in Deine Userform lädst.

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