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

Forumthread: Mit For-Schleife bis letzte leere Zeile und Spalte

Mit For-Schleife bis letzte leere Zeile und Spalte
08.11.2017 11:43:31
Lukas
Hallo Zusammen,
ich habe folgendes Problem, bzw. folgende Frage:
Ich habe eine ganz einfach for-Schleife bei der ab einer gewissen Zeile bis zum Ende gezählt wird. Also bis dahin, wo kein Eintrag mehr ist.
Hier mal mein Makro für die normale for-Schleife:
Dim LetzteZeile As Long
Dim i As Integer
LetzteZeile = Cells(Rows.Count, 2).End(xlUp).Row
For i = 13 To LetzteZeile
If Tabelle1.Cells(i, 2).Value = "Hallo" And Tabelle1.Cells(i, 1).Value "" Then
Tabelle1.Cells(i, 42).FormulaLocal = "=" & Tabelle1.Cells(i, 1) & "*" & Tabelle1.Cells(10, 42)
Tabelle1.Cells(i, 43).FormulaLocal = "=" & Tabelle1.Cells(i, 1) & "*" & Tabelle1.Cells(10, 43)
End If
Next i
End Sub
Jetzt würde ich gerne zudem ab einer gewissen Spalte ebenfalls bis zur letzten gefüllten Spalte in jeder Zeile zählen und dann in meiner Then Bedingung die Spaltenzahl 42 und 43 in den einzelnen Anweisungen gegen eine Variable "j" austauschen.
Ich hoffe ihr versteht, was ich meine und könnt mir aushelfen.
Besten Dank und beste Grüße
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Columns.count
08.11.2017 11:50:30
Fennek
Hallo,
für Spalten gibt es eine analoge Formel: (aus dem Gedächtnis)

letzteSpalte = cells(1, columns.count).end(xltoleft).column
mfg
AW: Columns.count
08.11.2017 13:02:15
Lukas
ok, das ist schon einmal sehr gut.
Und wie würde man das dann in die For-Schleife einbauen?
Also einmal die variable "letztespalte" und dann ein "j"?
Anzeige
AW: Columns.count in Schleife
08.11.2017 13:21:07
Fennek

ls = cells(1, columns.count).end(xltoleft).column
for j = 5 to ls
cells(1,j ) = "Spaltenkopf"
next j

;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Mit der For-Schleife bis zur letzten leeren Zeile und Spalte in Excel VBA


Schritt-für-Schritt-Anleitung

Um eine VBA Schleife bis zur letzten Zeile und Spalte in Excel zu erstellen, kannst du die folgenden Schritte befolgen:

  1. Öffne das VBA-Editor:

    • Drücke ALT + F11, um den VBA-Editor in Excel zu öffnen.
  2. Füge ein neues Modul hinzu:

    • Klicke mit der rechten Maustaste auf "VBAProject (deine Arbeitsmappe)", wähle "Einfügen" und dann "Modul".
  3. Schreibe das Makro:

    • Nutze den folgenden Code, um die Schleife zu erstellen:
Sub SchleifeBisLetzteZeileUndSpalte()
    Dim LetzteZeile As Long
    Dim LetzteSpalte As Long
    Dim i As Long
    Dim j As Long

    ' Bestimme die letzte Zeile in Spalte B
    LetzteZeile = Cells(Rows.Count, 2).End(xlUp).Row
    ' Bestimme die letzte Spalte in Zeile 1
    LetzteSpalte = Cells(1, Columns.Count).End(xlToLeft).Column

    ' Schleife über die Zeilen
    For i = 13 To LetzteZeile
        ' Schleife über die Spalten
        For j = 1 To LetzteSpalte
            If Cells(i, 2).Value = "Hallo" And Cells(i, j).Value <> "" Then
                Cells(i, 42).FormulaLocal = "=" & Cells(i, j) & "*" & Cells(10, 42)
                Cells(i, 43).FormulaLocal = "=" & Cells(i, j) & "*" & Cells(10, 43)
            End If
        Next j
    Next i
End Sub
  1. Führe das Makro aus:
    • Drücke F5, um das Makro auszuführen.

Häufige Fehler und Lösungen

  • Fehler: "Typenübereinstimmung"

    • Lösung: Stelle sicher, dass die Daten in den Zellen, die du verwendest, den richtigen Datentyp haben. Verwende CStr() oder CInt(), um die Werte zu konvertieren.
  • Fehler: "Index außerhalb des Bereichs"

    • Lösung: Überprüfe, ob die Schleifenindizes (i und j) innerhalb der Grenzen deiner Daten liegen.

Alternative Methoden

Falls du keine VBA-Programmierung verwenden möchtest, kannst du auch die Excel Loop Formel nutzen. Über die INDEX und MATCH Funktionen kannst du ähnliche Ergebnisse erzielen, allerdings ist die Flexibilität von VBA oft überlegen.


Praktische Beispiele

Hier ist ein einfaches Beispiel, wie du die Excel VBA For-Schleife bis zur letzten Zeile nutzen kannst:

Sub Beispiel()
    Dim LetzteZeile As Long
    LetzteZeile = Cells(Rows.Count, 1).End(xlUp).Row

    For i = 1 To LetzteZeile
        If Cells(i, 1).Value = "Test" Then
            Cells(i, 2).Value = "Gefunden"
        End If
    Next i
End Sub

In diesem Beispiel wird in Spalte A nach dem Wort "Test" gesucht und in Spalte B "Gefunden" eingetragen, wenn es gefunden wurde.


Tipps für Profis

  • Nutze Application.ScreenUpdating = False, um die Bildschirmaktualisierung während der Schleife zu deaktivieren und die Ausführung zu beschleunigen.
  • Verwende Option Explicit am Anfang deines Moduls, um sicherzustellen, dass alle Variablen deklariert sind.
  • Teste deine Schleifen mit einer kleinen Datenmenge, bevor du sie auf große Datenmengen anwendest.

FAQ: Häufige Fragen

1. Wie finde ich die letzte Zeile in einer anderen Spalte?
Du kannst die folgende Zeile verwenden:

LetzteZeile = Cells(Rows.Count, Spalte).End(xlUp).Row

Ersetze Spalte durch die entsprechende Spaltennummer.

2. Kann ich die Schleife anpassen, um nur bestimmte Zeilen zu durchlaufen?
Ja, du kannst die Schleifenindizes anpassen, um nur einen bestimmten Bereich von Zeilen zu durchlaufen, z.B. von Zeile 10 bis 20.

3. Wie kann ich mehrere Bedingungen in meiner Schleife verwenden?
Du kannst die Bedingungen mit And oder Or kombinieren, um komplexere Logik zu implementieren.

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