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

Forumthread: Ende der Tabelle mit Makro finden

Ende der Tabelle mit Makro finden
Jan
Hallo zusammen,
komme mit einer Funktion in meinem Makro nicht weiter und bräuchte eure Hilfe.
Ich habe eine Täglich zu bearbeitende Produktliste. Diese weist Täglich eine veränderte Anzahl von Zeilen auf. Was immer gleichbleibend ist, ist die Zeile 1. Sie beinhaltet die Attribute für jede Spalte.
In Spalte M Zeile 1 (bislang ist Spalte M komplett leer) füge ich nun das Attribut "Zustand" ein.
Bis zu diesem Punkt habe ich keine Probleme.
Nun möchte ich ab Zelle M2 bis an das Ende der Tabelle, sprich bis zur letzten ausgefüllten Zeile das Wort "neu" einfügen.
Bei der Aufzeichnung des Makros hatte ich eine Tabelle mit 15500 Zeilen. Dies hat sich Excel gemerkt und füllt nun alle folgenden Tabellen bis Zeile 15500 aus.
Mein Problem ist eben das die Tabelle mal mehr und mal weniger Zeilen aufweist.
In der Manuellen Bearbeitung ist dies ja kein Problem. Doch habe ich leider keine Ahnung wie man dies in ein Makro einbinden kann.
Würde mich sehr über eure Hilfe freuen.
Range("M1").Select
Selection.NumberFormat = "@"
ActiveCell.FormulaR1C1 = "Zustand"
Range("M2").Select
Selection.NumberFormat = "@"
ActiveCell.FormulaR1C1 = "neu"
Range("M2").Select
Selection.AutoFill Destination:=Range("M2:M15500")
Range("M2:M15500").Select
Range("M2").Select
Anzeige
AW: Ende der Tabelle mit Makro finden
10.04.2011 20:59:40
Hajo_Zi
Halo Jan,
Letzte Zelladresse mit VBA
(unabhängig von der Spalte) Zeilennummer ermitteln
Die allerletzte benutzte Zeile, unabhängig von der Spalte liefert:
MsgBox Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Row

Anzeige
AW: Ende der Tabelle mit Makro finden
10.04.2011 21:18:38
Jan
Hallo Hajo,
danke für die schnelle Antwort.
Ich habe das eben mal versucht. Hat aber noch nicht richtig geklappt.
Bin mir allerdings nicht sicher ob ich es richtig eingebunden habe.
Auf diese weise habe ich lediglich in Zelle M2 den eintrag "neu".
Selection.NumberFormat = "@"
ActiveCell.FormulaR1C1 = "Zustand"
Range("M2").Select
Selection.NumberFormat = "@"
ActiveCell.FormulaR1C1 = "neu"
Range("M2").Select
MsgBox Sheets(2).UsedRange.SpecialCells(xlCellTypeLastCell).Row
Range("M2").Select
Anzeige
AW: Ende der Tabelle mit Makro finden
10.04.2011 21:28:32
Hajo_Zi
Hallo Jan,
das ist doch nur die häjfte des Codes.
Selection.AutoFill Destination:=Range("M2:M" & ActiveSheet .UsedRange.SpecialCells(xlCellTypeLastCell).Row)
Gruß Hajo
AW: Ende der Tabelle mit Makro finden
10.04.2011 21:09:39
Gerd
Hallo Jan,
so wird die letzte Zeile anhand des letzten Wertes in Spalte A ( , 1) ermittelt.
Range("M2:M" & cells(rows.count, 1).End(xlup).Row).Value= "neu"
Gruß Gerd
Anzeige
AW: Ende der Tabelle mit Makro finden
10.04.2011 21:33:10
Jan
Hallo Gerd,
auch deine Version fuktioniert bestens!
Vielen Dank
Jan
AW: Ende der Tabelle mit Makro finden
10.04.2011 21:13:38
Reinhard
Hallo Jan,
Sub Makro1()
Dim Zei As Long
With Worksheets("Tabelle1")
Zei = .Cells(.Rows.Count, 1).End(xlUp).Row
.Columns(13).NumberFormat = "@"
.Cells(1, 13).Value = "Zustand"
.Range(.Cells(2, 13), .Cells(Zei, 13)).Value = "neu"
End With
End Sub

Gruß
Reinhard
Anzeige
AW: Ende der Tabelle mit Makro finden
10.04.2011 21:31:59
Jan
Hallo Hajo,
das funktioniert bestens!
Vielen Dank
Jan
AW: Ende der Tabelle mit Makro finden
10.04.2011 21:36:14
Jan
Hallo Reinhard,
Danke für den kompletten Code.
hat mir sehr geholfen
Gruß
Jan
;

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

Ende der Tabelle mit Makro finden


Schritt-für-Schritt-Anleitung

Um das Ende einer Excel-Tabelle mit einem Makro zu finden und den gewünschten Inhalt einzufügen, folge diesen Schritten:

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.

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

  3. Füge den folgenden Code ein:

    Sub Makro1()
       Dim Zei As Long
       With Worksheets("Tabelle1") ' Passe den Tabellennamen an
           Zei = .Cells(.Rows.Count, 1).End(xlUp).Row ' Finde die letzte Zeile in Spalte A
           .Columns(13).NumberFormat = "@" ' Formatiere die Spalte M
           .Cells(1, 13).Value = "Zustand" ' Setze den Spaltenheader
           .Range(.Cells(2, 13), .Cells(Zei, 13)).Value = "neu" ' Fülle die Zellen
       End With
    End Sub
  4. Starte das Makro: Schließe den VBA-Editor und drücke ALT + F8, wähle "Makro1" und klicke auf "Ausführen".

Mit diesem Makro wird das Ende der Tabelle festgelegt und das Wort "neu" in der Spalte M bis zur letzten ausgefüllten Zeile eingefügt.


Häufige Fehler und Lösungen

  • Problem: Das Makro füllt die Zellen bis zur Zeile 15500, auch wenn die Tabelle weniger Zeilen hat.

    • Lösung: Stelle sicher, dass du die letzte Zeile korrekt ermittelst, indem du UsedRange.SpecialCells(xlCellTypeLastCell).Row anwendest.
  • Problem: Der Inhalt wird nur in Zelle M2 eingefügt.

    • Lösung: Überprüfe, dass du den Range korrekt angibst, um alle Zellen bis zur letzten Zeile zu füllen.

Alternative Methoden

Falls du kein Makro verwenden möchtest, kannst du auch die Funktion INDEX in Excel nutzen, um das Ende der Tabelle zu ermitteln und dann manuell die Zellen auszufüllen. Eine einfache Formel könnte so aussehen:

=INDEX(A:A,MAX((A:A<>"")*(ROW(A:A)))

Diese Formel gibt die letzte Zeile mit einem Wert in Spalte A zurück. Du kannst sie an deine Bedürfnisse anpassen.


Praktische Beispiele

Hier ist ein Beispiel, wie du das Makro anpassen kannst, um das Ende einer Tabelle in Excel zu finden und das Wort "neu" in einer anderen Spalte (z. B. O) einzufügen:

Sub Makro2()
    Dim Zei As Long
    With Worksheets("Tabelle1")
        Zei = .Cells(.Rows.Count, 1).End(xlUp).Row
        .Columns(15).NumberFormat = "@"
        .Cells(1, 15).Value = "Status"
        .Range(.Cells(2, 15), .Cells(Zei, 15)).Value = "neu"
    End With
End Sub

Tipps für Profis

  • Verwende Option Explicit: Dies zwingt dich dazu, alle Variablen zu deklarieren, was hilft, Fehler zu vermeiden.
  • Kommentiere deinen Code: Füge Kommentare ein, um den Überblick zu behalten, insbesondere bei komplexeren Makros.
  • Teste dein Makro in einer Kopie der Datei: Vermeide Datenverlust, indem du immer mit einer Sicherung arbeitest.

FAQ: Häufige Fragen

1. Wie kann ich das Ende der Tabelle in einer anderen Spalte festlegen? Du musst die Spaltennummer in der .Cells-Methode anpassen. Zum Beispiel für Spalte O: .Cells(.Rows.Count, 15).End(xlUp).Row.

2. Funktioniert das Makro auch in älteren Excel-Versionen? Ja, das Makro sollte in den meisten Excel-Versionen, die VBA unterstützen, funktionieren. Achte jedoch darauf, dass alle verwendeten Funktionen verfügbar sind.

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