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

Letzte Zeile finden und in neues Blatt schreiben

Forumthread: Letzte Zeile finden und in neues Blatt schreiben

Letzte Zeile finden und in neues Blatt schreiben
06.04.2009 14:17:04
Claudia
Hallo zusammen,
wie ich die erste frei Zeile finde, weiß ich. :-)

Sub erste_leere_zelle_finden()
Range("a65536").End(xlUp).Offset(1, 0).Select
End Sub


Jetzt brauche ich aber Eure Hilfe!
Ich bräuchte ein Makro, was über sämtliche Tabellen einer Datei die letzte belegte Zeile in Spalte A findet. Und dabei soll nur die Zeilen-Nr. als Ergebnis rauskommen (z.B. 55).
Was prima wäre, wenn das Makro ein Blatt zum Anfang einfügt und alle anderen Tabellen durcharbeitet und in das neue Blatt reinschreibt, so etwa:
Spalte A Spalte B
Tabellenname letzte Zeille z.B. 55
usw.
Kann mir da jemand helfen?
Vielen Dank!
Liebe Grüße
Claudia

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Letzte Zeile finden und in neues Blatt schreiben
06.04.2009 15:41:30
D.Saster
Hallo,

Sub tt()
Dim wks As Worksheet, i As Integer
Worksheets.Add before:=Sheets(1)
For i = 2 To Worksheets.Count
With Sheets(1).Cells(Rows.Count, 1).End(xlUp)
.Offset(1) = Worksheets(i).Name
.Offset(1, 1) = Worksheets(i).Cells(Rows.Count, 1).End(xlUp).Row
End With
Next
End Sub


Gruß
Dierk

Anzeige
AW: Letzte Zeile finden und in neues Blatt schreiben
06.04.2009 15:47:05
ede
Hallo Claudia,
versuchs mal so:

Sub test()
' neues Sheet voranstellen
Sheets(1).Select
Set NewSheet = Sheets.Add(Type:=xlWorksheet)
'alle Sheets durchlaufen
For i = 1 To Sheets.Count
NewSheet.Cells(i, 1).Value = Sheets(i).Name
NewSheet.Cells(i, 2).Value = Sheets(i).Cells(Rows.Count, 1).End(xlUp).Row
Next i
End Sub


Gruss

Anzeige
und noch eine Version.
06.04.2009 17:23:11
Tino
Hallo,
hier noch eine Version.
Option Explicit

Sub LetzteZeileAllerTabellen()
Dim varRow
Dim myTab As Worksheet, myTabUebersicht As Worksheet
Dim i As Integer

i = 2

For Each myTab In ThisWorkbook.Worksheets
 If myTab.Name = "Übersicht" Then
  Set myTabUebersicht = myTab
  Exit For
 End If
Next myTab

If myTabUebersicht Is Nothing Then
    Set myTabUebersicht = Worksheets.Add(ThisWorkbook.Sheets(1))
    myTabUebersicht.Name = "Übersicht"
End If

myTabUebersicht.UsedRange.Value = ""
myTabUebersicht.Cells(1, 1) = "Tabellenname"
myTabUebersicht.Cells(1, 2) = "Letzte Zeile"
myTabUebersicht.Range("A1:B1").Font.Bold = True

For Each myTab In ThisWorkbook.Worksheets
  If myTab.Name <> "Übersicht" Then
      On Error Resume Next
       varRow = myTab.Columns(1).Find("*", , xlValues, 2, 1, 2, False, False, False).Row
       varRow = Application.Max(varRow, myTab.Columns(1).Find("*", , xlFormulas, 2, 1, 2, False, False, False).Row)
      On Error GoTo 0
        myTabUebersicht.Cells(i, 1) = myTab.Name
        
        If Not IsEmpty(varRow) Then
           myTabUebersicht.Cells(i, 2) = varRow
        Else
           myTabUebersicht.Cells(i, 2) = "Spalte A ist leer"
        End If
        varRow = Empty
        i = i + 1
  End If
Next myTab

myTabUebersicht.UsedRange.EntireColumn.AutoFit
End Sub


Gruß Tino

Anzeige
Perfekt
06.04.2009 20:10:53
Claudia
Hallo Jungs,
vielen Dank, alle Makros führen zum gewünschten Ergebnis (Ede: den Zähler habe ich etwas angepaßt).
Super, ich bin Euch sehr dankbar. Damit habt Ihr mir sehr viel Arbeit abgenommen.
Liebe Grüße
Claudia

Forumthreads zu verwandten Themen

Anzeige
Anzeige