Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Copy und Paste als Schleife

Copy und Paste als Schleife
17.03.2022 10:33:47
Lexi_P
Hallo Community,
ich habe vor kurzen gelernt, wie man in Excel ein wenig VBA programmiert, aber bin halt noch blutiger Anfänger. Beim googlen komme ich auch nicht wirklich weiter, deswegen frage ich euch jetzt um eure Hilfe.
Folgendes Problem. Bei uns gibt es einen Fragenbogen, der über Dropdwons in Excel ausgefüllt wird. Auf einem zweiten Tabellenblatt wird dann ein Datensatz generiert. Ich bekomme sehr viele Fragebögen zurück, und wollte diese so halbautomatisch verarbeiten. Dazu muss ich den Schutz in der Datei aufheben, das versteckte Datenblatt sichtbar machen und den Bereich dann in eine neue Tabelle kopieren. Ich habe fast alles so weit hinbekommen, aber was ich nicht schaffe ist, dass er die Zeile mit den Daten kopiert und in der anderen Arbeitsmappe einfügt. Da ist die Schwierigkeit für mich, dass er ja immer in die nächste freie Zeile springen soll. Hier mal mein Code
With Sheets("Datensatz")
Set Datenquelle = .Range(A3, AN3)
End With
Zielspalte = 1
Zielzeile = 2
Datenquelle.Select
Selection.Copy
Workbooks("Datenimport.xlsm").Activate
Do
If Cells(Zielzeile, Zielspalte) = "" Then Exit Do
Zielzeile = Zeilzeile + 1
Loop
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Wichtig zu wissen. Das Tabellenblatt Datensatz ist das aus dem ich kopieren möchte, das ist auch schon das aktive Datenblatt aus dem Makro vorher. Die Daten wären in der formatierten Tabelle, welche Tabelle15 heißt. Aber man könnte auch sagen, dass sich diese im Bereich A3:AN3 befinden. Die Kopie der Daten soll dann in die Mappe Datenimport, Tabellenblatt Statistikdaten. Dort halt die Zeile 1 Überschriften und ab Zeile 2 soll er einfügen. Dann Zeile 3, Zeile 4 usw. Quasi immer wenn die letzte Zeile voll ist, dann in die nächste drauf kopieren.
Ich hoffe ich könnt mir helfen! Schon mal vielen Dank!
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Copy und Paste als Schleife
17.03.2022 10:47:28
Rudi
Hallo,

Dazu muss ich den Schutz in der Datei aufheben, das versteckte Datenblatt sichtbar machen
und den Bereich dann in eine neue Tabelle kopieren. 
Musst du nicht. Man kann auch aus ausgeblendeten Sheets die Daten kopieren. Select/ Activate sind unnötig.

Sheets("Datensatz").Range("A3:AN3").Copy
Workbooks("Datenimport.xlsm").Sheets(1).Cells(Rows.Count,1).End(xlUp).Offset(1).PasteSpecial xlPasteValues
Gruß
Rudi
Anzeige
AW: Copy und Paste als Schleife
18.03.2022 10:09:16
Lexi_P
Lieber Rudi,
du weißt ja gar nicht, wie dankbar ich dir um deine Hilfe bin! Habe ganz herzlichen Dank, du hast mir sehr geholfen!
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Copy und Paste als Schleife in Excel


Schritt-für-Schritt-Anleitung

Um eine Schleife zum Kopieren von Daten in Excel zu erstellen, benötigst du ein wenig VBA-Kenntnisse. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul hinzu: Rechtsklick auf "VBAProject (deineDatei.xlsm)" > Einfügen > Modul.

  3. Kopiere und füge den folgenden Code ein:

    Sub SchleifeCopyPaste()
       Dim Zielspalte As Long
       Dim Zielzeile As Long
       Dim Datenquelle As Range
    
       With Sheets("Datensatz")
           Set Datenquelle = .Range("A3:AN3")
       End With
    
       Zielspalte = 1
       Zielzeile = 2
    
       Datenquelle.Copy
    
       ' Schleife zum Kopieren in die nächste freie Zeile
       Do
           If Sheets("Statistikdaten").Cells(Zielzeile, Zielspalte) = "" Then Exit Do
           Zielzeile = Zielzeile + 1
       Loop
    
       Sheets("Statistikdaten").Cells(Zielzeile, Zielspalte).PasteSpecial Paste:=xlPasteValues
    End Sub
  4. Schließe den VBA-Editor und kehre zu deinem Excel-Dokument zurück.

  5. Führe das Makro aus, indem du ALT + F8 drückst, das Makro auswählst und auf "Ausführen" klickst.

Diese Schleife copy paste wird nun die Daten von deinem "Datensatz"-Tabellenblatt in das "Statistikdaten"-Tabellenblatt kopieren.


Häufige Fehler und Lösungen

  • Fehler: "Laufzeitfehler 1004: Methode 'Copy' des Bereichs-Objekts ist fehlgeschlagen."

    • Lösung: Überprüfe, ob das Tabellenblatt "Datensatz" existiert und die Range korrekt definiert ist.
  • Fehler: "Laufzeitfehler 9: Index außerhalb des gültigen Bereichs."

    • Lösung: Stelle sicher, dass die Arbeitsmappe "Datenimport.xlsm" geöffnet ist und das Ziel-Tabellenblatt "Statistikdaten" existiert.

Alternative Methoden

Falls du keine VBA-Programmierung verwenden möchtest, kannst du auch die Tabelle Copy Paste manuell durchführen. Hier sind einige Schritte:

  1. Markiere den Bereich A3:AN3 im "Datensatz".
  2. Drücke CTRL + C, um zu kopieren.
  3. Wechsle zu "Statistikdaten" und klicke auf die erste freie Zeile in der ersten Spalte.
  4. Drücke CTRL + V, um die Daten einzufügen.

Diese Methode ist allerdings nicht automatisiert und kann zeitaufwändig sein, wenn du viele Daten hast.


Praktische Beispiele

Angenommen, du hast mehrere Fragebögen, deren Daten in der Tabelle "Datensatz" stehen. Mit dem oben genannten VBA-Skript kannst du die Daten für jeden Fragebogen einfach mit einer Schleife zum Kopieren verarbeiten. Bei jedem Durchlauf wird der nächste Datensatz in die nächste verfügbare Zeile im "Statistikdaten"-Tabellenblatt eingefügt.


Tipps für Profis

  • Verwende die Application.ScreenUpdating = False und Application.ScreenUpdating = True, um die Leistung während der Ausführung deines Makros zu optimieren.

    Application.ScreenUpdating = False
    ' Dein Code hier
    Application.ScreenUpdating = True
  • Teste dein Makro mit einer kleinen Datenmenge, bevor du es auf große Datensätze anwendest, um sicherzustellen, dass alles korrekt funktioniert.


FAQ: Häufige Fragen

1. Kann ich die Schleife für mehrere Zeilen gleichzeitig verwenden?
Ja, du kannst die Schleife anpassen, um mehrere Zeilen zu kopieren, indem du die Range entsprechend veränderst.

2. Welche Excel-Version wird benötigt?
Das VBA-Skript sollte in Excel 2010 und neueren Versionen funktionieren. Achte darauf, dass deine Datei im .xlsm-Format gespeichert wird, um Makros zu unterstützen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige