Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1816to1820
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

Datenbereich kopieren und einfügen

Datenbereich kopieren und einfügen
09.03.2021 16:01:55
thipan
Hallo zusammen,
ich hab fisch angefangen mit Makros zuarbeiten und stehe vor einem Problem.
Ich versuche in einer Spalte nach "xy" und "yx" zu suchen. Anhand von den ermittelten Zeilen von "xy" und "yx" soll dann der ganze Datenbereich kopiert und in einem neune Tabellenblatt eingefügt werden. Ich vermute mal das ganze sollte dann auch in einer Schleife sein.
Zur Verdeutlichung ein Beispiel unten Verlinkt.
Ich bedanke mich schon mal im Voraus für die Unterstützung
Grüße Thipan
https://www.herber.de/bbs/user/144600.xlsm

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datenbereich kopieren und einfügen
09.03.2021 16:41:52
Hajo_Zi
Hallo Thipan,
Benutze Autofilter und Kopiere den sichtbaren Bereich, Start, Bearbeiten, Suchen..., Gehe zu, Inhalte, sichtbare Zellen.
Excel hat auch einen Makrorecorder.


AW: Datenbereich kopieren und einfügen
09.03.2021 16:51:32
Piet
Hallo
wenn du Fische faengst lass sie dir schmecken - fisch angefangen - (Spass muss sein..)
Du willst sicher einen funktionierenden Code, s. unten. Ich denke du kannst ihn verstehen. Mir fiel auf das du im Test Code Spalte L angibst, in der Datei "xy" aber in Spalte C steht. Als Zieltabelle habe ich "Tabelle2" verwendet. Sonst must du den Namen bei Set aendern! Der Code ist so simpeş das du ihn selbst anpassen kannst.
mfg Piet
Sub test()
Dim zelle As Range
Dim xy As Long, yx As Long  'NICHT Double = lange Kommazahlen
Dim Tb2 As Worksheet, z2 As Long
Set Tb2 = Worksheets("Tabelle2")
'Bildschirm abschalten
Application.ScreenUpdating = False
With Worksheets("Tabelle1")
z2 = 2   '1.Zeile im 2. Tabellenblatt
'Schjeife in Spalte C  (NICHT L !!)
For Each zell In .Range("C1:C" & .Cells(Rows.Count, 1).End(xlUp).Row)
If zell = "xy" Or zell = "yx" Then
'Spalte A bis D kopieren (Resize erweitert den Spalten Bereich!)
.Cells(zell.Row, "A").Resize(1, 4).Copy
'Daten mit z2 = Zeile in Tabelle2 einfügen
Tb2.Cells(z2, "A").PasteSpecial xlPasteValues
Application.CutCopyMode = False
z2 = z2 + 1  'Next Zeile
End If
Next zell
End With
End Sub


Anzeige
AW: Datenbereich kopieren und einfügen
09.03.2021 17:02:54
Piet
Nachtrag
ich vergass ins Makro vor For Next einen Löschbefehl für die Tabelle2 einzubauen.
Tb2.UsedRange.Offset(1, 0).ClearContents
mfg Piet

AW: Datenbereich kopieren und einfügen
09.03.2021 17:05:31
thipan
Hallo,
super Danke!
Ist es auch möglich die Daten die zwischen "xy" und "yx" liegen mit zu kopieren?
Grüße
Thipan

AW: Datenbereich kopieren und einfügen
09.03.2021 23:03:22
Piet
Hallo
Ja, das ist möglich, dazu brauchte ich aber konkrete Angaben was du damit genau meinst?
Im Beispiel sind Daten "xy" in Zeile 13, yx in Zeile 22, dann von Zeile 33 bis 37. Im ersten Fall stehen noch "o" und "p" dazwischen. Die andern haben Leerzeilen. Welchen Bereich meinst du jetzt konkret? Oder soll der Spaltenbereich erweitert werden? Das muss ja genau ausgewertet werden, sonst geht es schief!
mfg Piet

Anzeige
AW: Datenbereich kopieren und einfügen
10.03.2021 09:41:51
thipan
Hallo,
ja ich versuche von "xy" in Zeile 13 bis "yx" in Zeile 22 alle Werte von Zeile 13 bis 22 zu kopieren. Dabei soll alles ("o", "p", "Leerzeilen"), was zwischen "xy" und "yx" liegt kopiert werden (Tabellenbratt1) und in Tabellenblatt2 eingefügt werden.
Danach soll nach dem nächsten "xy" gesucht werden welches im Beispiel in Zeile 33 steht und nach dem nächsten "yx" welches in Zeile 37 steht. Dabei soll wieder alles kopiert werden und in die nächste Freie Zeile auf den Tabellenblatt2 eingefügt werden.

AW: Datenbereich kopieren und einfügen
10.03.2021 13:26:54
Piet
Hallo
ja, das muss anders programmiert werden. Wer es kennt weiss das es nicht viel Aufwand ist. S. unten
mfg Piet

Sub test()
Dim zelle As Range, Zeile1 As Long
Dim xy As Long, yx As Long  'NICHT Double = lange Kommazahlen
Dim Tb2 As Worksheet, z2 As Long
Set Tb2 = Worksheets("Tabelle2")
'Bildschirm abschalten
Application.ScreenUpdating = False
With Worksheets("Tabelle1")
z2 = 2   '1.Zeile im 2. Tabellenblatt
'Schjeife in Spalte C  (NICHT L !!)
For Each zell In .Range("C1:C" & .Cells(Rows.Count, 1).End(xlUp).Row)
'Variable Zeile1 setzen und "yx" abwarten
If zell = "xy" Then Zeile1 = zell.Row
If zell = "yx" And Zeile1 > 0 Then
'Spalte A bis D kopieren (Resize erweitert den Spalten Bereich!)
.Cells(Zeile1, "A").Resize(zell.Row - Zeile1 + 1, 4).Copy
'Daten mit z2 = Zeile in Tabelle2 einfügen
Tb2.Cells(z2, "A").PasteSpecial xlPasteValues
z2 = Tb2.Cells(Rows.Count, 1).End(xlUp).Row + 1
Application.CutCopyMode = False
Zeile1 = Empty
End If
Next zell
End With
End Sub

Anzeige

315 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige