Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1880to1884
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Letzte Zeile wird überschrieben

Letzte Zeile wird überschrieben
25.04.2022 20:44:44
Norist
Hallo!
Ich habe ein kleines Problem, bei dem ich die Ursache nicht ganz verstehe. Nachfolgend ist ein kleiner Code, der Daten von einer Tabelle in Schleife zur anderen Tabelle kopieren soll - ans Ende Tabelle angefügt.

lastrow1 = Worksheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row
For i = 10 To lastrow1
lastrow2 = Worksheets("Sheet2").Cells(Rows.Count, "A").End(xlUp).Row
If Worksheets("Sheet1").Cells(i, 18).Value = "Ja" Then
Worksheets("Sheet1").Cells(i, 1).Copy _
Destination:=Worksheets("Sheet2").Range("A" & lastrow2)
End If
Next i

Ich bekomme hier das Problem, dass er mir in Sheet2 einfach den Wert in A2 immer wieder überschreibt, anstatt neu anzufügen.
Gebe ich lastrow2 eine +1, kopiert er untereinander, jedoch außerhalb der Tabelle. Wie kriege ich ihn hier dazu, die Tabelle zu erweitern, angefangen mit A2?
Danke für Antworten!

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Letzte Zeile wird überschrieben
25.04.2022 20:47:17
Norist
Entschuldigt bitte, irgendwas ist in meiner Eintragsnachricht schiefgegangen...
AW: Letzte Zeile wird überschrieben
25.04.2022 22:34:52
onur
Du willst ja nicht in die letzte besetzte Zelle schreiben, sondern in die erste freie Zelle - oder ?

Destination:=Worksheets("Sheet2").Range("A" & lastrow2) + 1

AW: Letzte Zeile wird überschrieben
25.04.2022 22:35:28
onur
Sorry:
Destination:=Worksheets("Sheet2").Range("A" & lastrow2 + 1)
AW: Letzte Zeile wird überschrieben
25.04.2022 22:39:48
Norist
Ja, so habe ich das auch versucht.
Ich habe auf dem Tabellenblatt eine Tabelle mit Tabellenkopf. Der Kopf steht in der 1. Zeile. Das heißt, er müsste eigentlich in Zeile 2 schreiben.
Wenn ich das so einfüge, wie du das geschrieben hast, fängt er aber in der 3. Zeile an...irgendwas ist doch das vermurkst.
Grüße!
Anzeige
AW: Letzte Zeile wird überschrieben
25.04.2022 22:57:25
onur
poste doch mal die Datei.
AW: Letzte Zeile wird überschrieben
25.04.2022 23:32:45
onur
Das Problem ist die "intelligente" Tabelle. Die funkt überall dazwischen. Mache sie weg und es läuft.
AW: Letzte Zeile wird überschrieben
25.04.2022 23:36:54
Norist
Gibt es eine Möglichkeit, die intelligente Tabelle zu erhalten? Denn die Informationen, die automatisch ausgefüllt werden, müssen tatsächlich auch in jeder Zeile so rein. Wie würde ich das ohne intelligente Tabelle umsetzen?
AW: Letzte Zeile wird überschrieben
26.04.2022 00:11:15
Norist
Ich habe tatsächlich ein kleines Workaround gefunden, welches funkioniert.
Ich baue folgendes mit in meinen Code ein:

Set tbl = Worksheets("BA Tabelle").ListObjects("arbeitstabelle")
tbl.Resize tbl.Range.Resize(lastrow2)
Dadurch wird alles letztlich in die Tabelle geschrieben. Die erste leere Zeile wird zwar immer noch übersprungen, aber die lass ich per Makro einfach am Ende entfernen.
Anzeige
AW: Letzte Zeile wird überschrieben
26.04.2022 01:15:40
ralf_b
Hier etwas Lektüre
https://www.thespreadsheetguru.com/blog/2014/6/20/the-vba-guide-to-listobject-excel-tables
Deine Herangehensweise mit lastrow und Rows.count usw. passt nicht wirklich zu Listobjects.
Zu deiner Datei. Diese Schleife ist naja. Lastrow2 mußt du nicht bei jedem Schleifendurchlauf ermitteln. den Startpunkt einmal außerhalb der Schleife ermitteln und innerhalb der Schleife nur noch hochzählen. Schließlich gehst du durch die Tabelle ja auch nur zeilenweise. Das Copy paste ist bei eine Zelle ein bissel too much. Eine einfache Wertezuweisung Worksheets("BA Tabelle").Range("A" & lastrow2 + 1).value = Worksheets("GSV").Cells(i, 1).Value reicht.

For i = 10 To lastrow1
lastrow2 = Worksheets("BA Tabelle").Cells(Rows.Count, "A").End(xlUp).Row
Worksheets("GSV").Cells(i, 1).Copy
Worksheets("BA Tabelle").Range("A" & lastrow2 + 1).PasteSpecial xlPasteValues
Next i
Eine leere intelligente Tabelle hat trotzdem eine sichtbare erste Zeile. Die zählt aber nicht.
Die Anzahl der Zeilen in der Tabelle wird z.b. mit Listrows.count ermittelt.
eine neue Zeile z.b. mit Listrows.add
usw.....
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige