Supportnet / Forum / Tabellenkalkulation
Sprung zur nächsten freien Spaltenzeile
Frage
Ich möchte ein Makro schreiben, das u.a. eine Zeile aus dem Tabellenblatt A in das Tabellenblatt B kopiert. Im Tabellenblatt B soll in der Spalte A die nächste freie Zeile gefunden werden bzw. dort die Zeile aus dem Tabellenblatt A kopiert werden. Das Problem, das ich habe, ist die Tatsache, dass die Zeile aus dem Tabellenblatt A immer nur in die letzte Zeile der Spalte A von Tabellenblatt B kopiert wird und eben nicht eine Zeile darunter. Ich verwende folgende Skript-Befehle:
Application.Goto Reference:="TabellenblattBA1"
Selection.End(xlDown).Select
Wie lautet die Skript-Programmierung, damit die nächste freie Zeile angesprungen werden kann (und dort die jeweilige Zeile kopiert werden kann).
Vielen Dank im Voraus.
Antwort 1 von nighty
hi all :)
findet die erste LEERE zelle in spalte a
gruss nighty
Worksheets(1).Range("A1:A65535").Find("", LookIn:=xlValues).Select
findet die erste LEERE zelle in spalte a
gruss nighty
Worksheets(1).Range("A1:A65535").Find("", LookIn:=xlValues).Select
Antwort 2 von Jochen
Vielen Dank für die Information !
Antwort 3 von nighty
hi jochen :)
hier noch ein beispiel mit kopieren der zeile der fundstelle.
gruss nighty
hier noch ein beispiel mit kopieren der zeile der fundstelle.
gruss nighty
Option Explicit
Dim suche1 As Range
Dim summe As Long
Dim zeile As Long
Dim letzte As Long
Dim firstAddress As Variant
Sub makro01()
summe = 11
Application.EnableEvents = False
With Worksheets("Tabelle2")
Set suche1 = Worksheets(1).Range("a1:a65535").Find(summe, LookIn:=xlValues)
If Not suche1 Is Nothing Then
firstAddress = suche1.Address
Do
zeile = suche1.Row
Rows(zeile).Copy
letzte = .UsedRange.SpecialCells(xlCellTypeLastCell).Row + 1
.Rows(letzte & ":" & letzte).Insert Shift:=xlDown
Set suche1 = Worksheets(1).Range("a1:a65535").FindNext(suche1)
Loop While Not suche1 Is Nothing And suche1.Address <> firstAddress
End If
End With
Application.CutCopyMode = False
Application.EnableEvents = True
End SubAntwort 4 von nighty
hi jochen :)
ups war noch datenmuell da,nun korrigiert :)
gruss nighty
suche den ersten suchbegriff hier SUMME und kopiert diese nach tabelle2 mit automatischer ermittlung der anschlusszeile(bzw. letzte zeile).
gruss nighty
Option Explicit
Dim suche1 As Range
Dim summe As Long
Dim zeile As Long
Dim letzte As Long
Dim firstAddress As Variant
Sub makro01()
summe = 11
Application.EnableEvents = False
With Worksheets("Tabelle2")
Set suche1 = Worksheets(1).Range("a1:a65535").Find(summe, LookIn:=xlValues)
If Not suche1 Is Nothing Then
firstAddress = suche1.Address
zeile = suche1.Row
Rows(zeile).Copy
letzte = .UsedRange.SpecialCells(xlCellTypeLastCell).Row + 1
.Rows(letzte & ":" & letzte).Insert Shift:=xlDown
End If
End With
Application.CutCopyMode = False
Application.EnableEvents = True
End Sub
ups war noch datenmuell da,nun korrigiert :)
gruss nighty
suche den ersten suchbegriff hier SUMME und kopiert diese nach tabelle2 mit automatischer ermittlung der anschlusszeile(bzw. letzte zeile).
gruss nighty
Option Explicit
Dim suche1 As Range
Dim summe As Long
Dim zeile As Long
Dim letzte As Long
Dim firstAddress As Variant
Sub makro01()
summe = 11
Application.EnableEvents = False
With Worksheets("Tabelle2")
Set suche1 = Worksheets(1).Range("a1:a65535").Find(summe, LookIn:=xlValues)
If Not suche1 Is Nothing Then
firstAddress = suche1.Address
zeile = suche1.Row
Rows(zeile).Copy
letzte = .UsedRange.SpecialCells(xlCellTypeLastCell).Row + 1
.Rows(letzte & ":" & letzte).Insert Shift:=xlDown
End If
End With
Application.CutCopyMode = False
Application.EnableEvents = True
End Sub

