online 1
gast (50)

/ Forum / Tabellenkalkulation

TabellenkalkulationTabellenkalkulation

Fragevon mikaf vom 07.01.2020, 19:15 Options

Nur spezielle Daten (mit Wert in Spalte A) aus anderer Tabelle kopieren - Excel 2003

Hallo allerseits,

mein Problem ist folgendes:
ich habe Tabellen mit Überschriften (die über die ersten 4 Spalten A-Dgehen, Gliederung 1. 2. usw und Text), und in den Zeilen darunter noch weitere Daten. Ich möchte diese Zeilen mit Überschriften in eine andere Tabelle kopieren, am Besten mit jeweils einer Leerzeile dazwischen.
Die Zeilen, die nicht kopiert werden sollen, enthalten in Spalte A-C keine Daten.

In der Zieltabelle sollen die Daten wieder in den Spalten A-D auftauchen, ungefähr ab Zeile 20. Davor ist Text vorhanden, danach auch wieder (als Vorlage). Die Anzahl der kopierten Zellen ist je nach Ausgangstabelle jedoch unterschiedlich.

Ist dies möglich? Vielleicht auch in Einzelschritten.

Vielen Dank für Eure Hilfe -
Grüße mika


Antwort schreiben

Antwort 1 von coros vom 08.01.2020, 05:43 Options

Hallo mika,

ich hoffe, ich habe das richtig verstanden. Nachfolgendes Makro durchsucht jede Zeile die Spalten A:D. Wenn in der Zeile in Spalte A, B und C etwas steht, werden die Wert aus A:D der Zeile kopiert und in Tabellenblatt "Tabelle2" in die erste freie Zeile eingefügt. Der erste kopierte Wert wird in Zeile 20, alle weiteren darunter eingefügt.

Kopiere das Makro in ein StandardModul und starte es z.B. über eine Befehlsschaltfläche
Teste das Makro aber bitte in einer Testdatei und nicht gleich in Deiner Originaldatei.

[b]Option Explicit

Sub Kopieren()
Dim iRow As Long
Dim iRowTab2 As Long
Application.ScreenUpdating = False
iRowTab2 = 20
For iRow = 1 To Range("A:D").Find("*", searchorder:=xlByRows, searchdirection:=xlPrevious).Row
If Cells(iRow, 1) <> "" And Cells(iRow, 2) <> "" And Cells(iRow, 3) <> "" Then
Range(Cells(iRow, 1), Cells(iRow, 4)).Copy
Sheets("Tabelle2").Cells(iRowTab2, 1).PasteSpecial
iRowTab2 = iRowTab2 + 1
End If
Next
End Sub[/b]


Ich hoffe, Du kommst klar.

Solltest Du nicht wissen, wie Du den Code in Deine Datei bekommst, dann schau mal auf meiner HP in der Rubrik Anleitungen und dort dann in der Anleitungsnummer 3 nach. Dort stelle ich dazu eine bebilderte Anleitung zur Verfügung, die Dir sicherlich helfen wird.

Bei Fragen melde Dich.

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 2 von mikaf vom 08.01.2020, 20:31 Options

Danke, das ging ja superschnell-
ich werde es morgen gleich mal testen,
und meld mich dann nochmal.

Bis dahin ciao
mikaf

Antwort 3 von mikaf vom 09.01.2020, 11:57 Options

So, jetzt hab ich es getestet,
Du hast mich richtig verstanden...
Super!
Vielen Dank schon mal!


Jetzt gehts weiter,
ich habe versucht, die Inhalte nicht nur einzufügen, sondern (analog rechter Mausklick "kopierte Zeilen einfügen") Zeilen einzufügen.
Das hat auch funktioniert - siehe unten - aber es werden nur von Spalte A-D Zeilen eingefügt, aber in Spalten E-...(am Anfang nur mit Rahmen formatiert ohne Inhalte) nicht.
Ich könnte die Formatierung weglassen, müßte sie dann aber jedesmal neu erstellen, außerdem werden vielleicht noch Inhalte dort eingefügt (zum Beispiel Summe in der Zelle F20 o.ä.)

Wie zähle ich die kopierten Zeilen damit ich vor "PasteSpecial in Tabelle2 - ich hab sie Auswertung genannt - die entsprechende Zeilenanzahl einfügen kann?
Oder gibt es einen anderen Weg?


Option Explicit

Sub Kopieren()
Dim iRow As Long
Dim iRowTab2 As Long
Application.ScreenUpdating = False
iRowTab2 = 20
For iRow = 1 To Range("A:D").Find("*", searchorder:=xlByRows, searchdirection:=xlPrevious).Row
If Cells(iRow, 1) <> "" And Cells(iRow, 2) <> "" And Cells(iRow, 3) <> "" Then
Range(Cells(iRow, 1), Cells(iRow, 4)).Copy
Sheets("Auswertung").Cells(iRowTab2, 1).Insert Shift:=xlDown
iRowTab2 = iRowTab2 + 1
End If
Next
End Sub


Das war mein bescheidener Versuch, nach vielen Tests und Makroaufzeichnungen ;-)

Antwort 4 von coros vom 09.01.2020, 12:06 Options

Hallo Mika,

wenn Du mehr als nur Spalte A bis D kopieren möchtest, musst Du in dem Makro in der Zeile

[b]Range(Cells(iRow, 1), Cells(iRow, 4)).Copy[/b]

die Zahl 4 ändern. Diese steht für die Spaltenindexzahl. Die Spaltenindexzahl fängt mit 1 für Spalte A an und hört bei 256 für Spalte IV auf. Das bedeutet, wenn Du auch noch Spalte E mitkopieren möchtest, musst Du die Zahl 4 in 5 für Spalte E ändern. Soll bis Spalte F kopiert werden, wäre es die Zahl 6, bis Spalte G wäre es die Zahl 7 usw.

Ich hoffe, Du hast das Prinzip verstanden. Wenn nicht, melde Dich.

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Ähnliche Themen

verweis, sverweis, wverweis für mein Problem geeignet ?
zapuni  01.03.2007 - 145 Hits - 5 Antworten

Tabelleninhalte einer excel-Tabelle kopieren und in eine neue Tabelle einfügen
Sternschnuppe  10.03.2007 - 482 Hits - 2 Antworten

Daten aus zwei Tabellen über einen gemeinsamen Wert zusammenfassen
grün  24.04.2007 - 195 Hits - 2 Antworten

Makro: Zellen mit Inhalt erkennen und kopieren
CBundy  07.05.2007 - 127 Hits - 4 Antworten

Excel Datum HEUTE Zeilen übernehmen
heimlichen  03.11.2007 - 106 Hits - 6 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Thu Jan 8 21:07:44 2026