Supportnet / Forum / Tabellenkalkulation
letzte zeile ansteuern mit VBA
Frage
Hallo liebe Excel-Gemeinde,
ich möchte mit einem Makro verschiedene Daten aus einzelnen Arbeitsmappen in eine andere Arbeitsmappe kopieren.
Es soll dabei dann immer die erste freie Zeile angesprungen werden, da die bereits eingefügten Daten nicht überschrieben werden sollen.
Die Forumsbeiträge hier dazu haben mir leider nicht wirklich weiter geholfen. Hier mal mein Makro:
Sub Eintragen()
Dim sTxt As String
Dim rng As Range, rngCell As Range
Dim i As Variant
Application.ScreenUpdating = False
i = 1
Set rng = Worksheets("Tabelle1").Range(Range("j1").Value)
For i = 1 To Sheets("Tabelle2").UsedRange.Rows.Count
sTxt = "´" & Sheets("Tabelle2").Range("B1").Value
´sTxt = sTxt & "[" & Range("b11").Value & "]"
sTxt = sTxt & "[" & Sheets("Tabelle2").Cells(i, 1).Value & "]"
sTxt = sTxt & Sheets("Tabelle2").Range("B3").Value & "´!"
sTxt = sTxt & Sheets("Tabelle2").Range("c1").Value
[b] rng.Cells(1).Formula = "=if(" & sTxt & "="""",""""," & sTxt & ")"
rng.Cells(1).Copy rng
rng.Value = rng.Value[/b]
Next i
Range("a1").Select
Application.ScreenUpdating = True
End Sub
Die Daten werden soweit alle rüberkopiert (in Spalte A). Aber sie werden eben überschrieben. Ich denke, dass man an dem fett markierten Absatz was ändern muss (irgendwas mit end(xlup), schätz ich). Aber ich weiß nicht WIE.
(Durch sTxt wird der Pfad definiert, wo die Arbeitsmappen zu finden sind, aus denen Daten herauskopiert werden.)
Weiß jemand Rat? Merci;-)
sassy
Antwort 1 von schnallgonz
Hi sassy,
ich verfüge leider nur über VBA- Halbwissen, Werte schrittweise untereinander einfügen habe ich aber schon in einigen Makros gebastelt.
Bei Deinem Set mg kommt bei mir schon ein Fehlerhinweis.
Mit
findet man jedenfalls die letzte aktive Zelle.
Zum Thema letzte Zelle findest Du auch hier einiges:
https://supportnet.de/threads/203267
Den Auswahlbereich zeilenweise verschieben klappt mit
ActiveCell.Offset(Zeile, Spalte),
bei Dir hilft vielleicht auch Cells(i;0) also mit den ausgelesenen Zeilen auch im Zielbereich hochzählen, oder?
Vielleicht kannst Du mir Deinen fett markierten Absatz erläutern, vielleicht kommst Du auch jetzt schon weiter.
MfG
schnallgonz
ich verfüge leider nur über VBA- Halbwissen, Werte schrittweise untereinander einfügen habe ich aber schon in einigen Makros gebastelt.
Bei Deinem Set mg kommt bei mir schon ein Fehlerhinweis.
Mit
ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Activatefindet man jedenfalls die letzte aktive Zelle.
Zum Thema letzte Zelle findest Du auch hier einiges:
https://supportnet.de/threads/203267
Den Auswahlbereich zeilenweise verschieben klappt mit
ActiveCell.Offset(Zeile, Spalte),
bei Dir hilft vielleicht auch Cells(i;0) also mit den ausgelesenen Zeilen auch im Zielbereich hochzählen, oder?
Vielleicht kannst Du mir Deinen fett markierten Absatz erläutern, vielleicht kommst Du auch jetzt schon weiter.
MfG
schnallgonz

