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

Forumthread: For Next Schleife Kopieren und Einfügen

For Next Schleife Kopieren und Einfügen
Sascha
Hallo liebes Forum,
Ich habe mal wieder ein Problem bei dem ich anstehe...
Ich habe eine for next Schleife gebastelt, die mir Zellen in einer Bestimmten Zeile Kopieren und dann in einem anderen Blatt in einem bestimmten Bereich einfügen soll.
Das kopieren der Zellen klappt schon mal, nun möchte ich aber im Blatt "Hilf" diese Zellen ab Zelle R1 einfügen.
Das Problem ist, dass es nun die erste Zelle kopiert, dann aber zur nächsten hüpft bis zum Schluss. (Also habe ich eigentlich nur die letzte Zelle Kopiert).
Wie schaffe ich es dass es nach jeder kopierten Zelle zuerst im Blatt Hilf (bei R1 angefangen) einfügt, dann kopiert, einfügt , kopiert usw... ?
hier der code:
Private Sub Überstellen()
Dim n As Integer, zei As Long, i As Integer
Sheets("LW11").Activate
Application.EnableEvents = False
Application.ScreenUpdating = False
Call SchutzAus
zei = 0
For i = 1 To 31                         'Schlaufe für heutigen Tag/Zeile bestimmen
Cells(i + 2, 1) = i
If Sheets("Hilf").Cells(i + 2, 6) = Date Then
zei = i + 2
Exit For
End If
Next i
For n = 29 To 46
Cells(zei, n).Copy
Sheets("Hilf").Range("R2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Next n
End Sub
Liebe Grüsse
Sascha
Anzeige
lad doch bitte mal ein Bsp hoch ...
15.01.2012 18:31:56
Matthias
Hallo Sascha
In der Zieltabelle schreibst Du bitte die Daten so rein wie Du sie erwartest.
Zum Nachbauen hab ich grad keine Lust.
Gruß Matthias
AW: lad doch bitte mal ein Bsp hoch ...
15.01.2012 18:44:31
Sascha
Hallo Matthias,
Hier die Mappe:
https://www.herber.de/bbs/user/78457.xls
Anzeige
Ich kann es nicht testen ...
15.01.2012 19:59:06
Matthias
Hallo
Es gibt (für mich) nicht erkennbare Bezüge. Ich könnte also nur eine vermutete Lösung posten.
Sorry, da muß ich eben passen ...
Aber Du solltest schon eine Fehlerroutine einpflegen, denn sonst bleibt
EnableEvents = False - Das wäre dann nicht so gut!
Gruß Matthias
Anzeige
AW: Ich kann es nicht testen ...
15.01.2012 20:03:21
Sascha
Hallo Matthias,
Sorry, habe scheinbar was falsch gemacht bei der Testmappe... :-(
Stimmt, die Bezüge hab ich vergessen zu löschen. Sorry!
Mittlerweile hat mir Franz die Lösung geschrieben.
Trotzdem vielen Dank für Deine Mühe! Ich schätze das sehr!
Super Forum & Super Experten hier...
Gruss Sascha
Anzeige
AW: For Next Schleife Kopieren und Einfügen
15.01.2012 18:35:47
fcs
Hallo Sascha,
wenn ich deine Frage richtig verstanden habe, dann kannst du die 2. For-Next-Schleife ersetzen durch:
  Range(Cells(zei, 29).Cells(zei, 46)).Copy
Sheets("Hilf").Range("R1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

Gruß
Franz
Anzeige
AW: For Next Schleife Kopieren und Einfügen
15.01.2012 18:47:44
Sascha
Hallo Franz,
Ich bekomme einen Laufzeitfehler 1004
Die Methode Range für das objekt _global ist fehlgeschlagen.
lg sascha
AW: For Next Schleife Kopieren und Einfügen
15.01.2012 19:43:15
fcs
Hallo Sascha,
da hatte ich einen Punkt statt Komma zwischen den 2 Zellen die den Range begrenzen.
Damit in die richtige Datumszeile im Blatt "Hilf" kopiert wird muss da auch noch angepasst werden.
Die If-Prüfung verhindert einen Makrofehler, wenn kein Datum gefunden wird.
Gruß
Franz
Private Sub Überstellen()
Dim zei As Long, i As Long
Sheets("LW11").Activate
Application.EnableEvents = False
Application.ScreenUpdating = False
zei = 0
For i = 1 To 31                         'Schlaufe für heutigen Tag/Zeile bestimmen
Cells(i + 2, 1) = i
If Sheets("Hilf").Cells(i + 2, 6) = Date Then
zei = i + 2
Exit For
End If
Next i
If zei > 0 Then
Range(Cells(zei, 29), Cells(zei, 46)).Copy
Sheets("Hilf").Range("R1").Offset(i + 1, 0).PasteSpecial Paste:=xlPasteValues, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Else
MsgBox "Heutiges Datum im Blatt ""Hilf"" nicht gefunden"
End If
End Sub

Anzeige
AW: For Next Schleife Kopieren und Einfügen
15.01.2012 19:57:11
Sascha
Hey Franz, Super... Es funktioniert genau so wie es soll!!! :-) *freu*
Vielen lieben Dank und liebe Grüsse
Sascha
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

For Next Schleife: Kopieren und Einfügen in Excel


Schritt-für-Schritt-Anleitung

Um eine For Next Schleife in Excel zu erstellen, die Zellen kopiert und in einem anderen Blatt einfügt, befolge die folgenden Schritte:

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Erstelle ein neues Modul: Klicke mit der rechten Maustaste auf VBAProject (DeineArbeitsmappe), wähle Einfügen und dann Modul.

  3. Füge den folgenden Code ein:

    Private Sub Überstellen()
        Dim zei As Long, i As Long
        Sheets("LW11").Activate
        Application.EnableEvents = False
        Application.ScreenUpdating = False
        zei = 0
        For i = 1 To 31
            Cells(i + 2, 1) = i
            If Sheets("Hilf").Cells(i + 2, 6) = Date Then
                zei = i + 2
                Exit For
            End If
        Next i
        If zei > 0 Then
            Range(Cells(zei, 29), Cells(zei, 46)).Copy
            Sheets("Hilf").Range("R1").Offset(i + 1, 0).PasteSpecial Paste:=xlPasteValues, _
            Operation:=xlNone, SkipBlanks:=False, Transpose:=False
            Application.CutCopyMode = False
        Else
            MsgBox "Heutiges Datum im Blatt ""Hilf"" nicht gefunden"
        End If
    End Sub
  4. Anpassen der Zellen: Stelle sicher, dass die Quellzellen in LW11 korrekt sind und die Zieltabelle Hilf existiert.

  5. Führe das Makro aus: Drücke F5, um das Makro zu starten.


Häufige Fehler und Lösungen

  • Laufzeitfehler 1004: Dieser Fehler tritt auf, wenn der Range nicht korrekt definiert ist. Achte darauf, dass du einen Punkt statt eines Kommas verwendest, um die Zellen zu trennen.

  • EnableEvents bleibt auf False: Stelle sicher, dass du nach dem Ausführen des Makros Application.EnableEvents = True setzt, um zukünftige Ereignisse zu aktivieren.

  • Keine Daten gefunden: Wenn das Datum nicht im Blatt "Hilf" gefunden wird, wird eine Fehlermeldung angezeigt. Überprüfe, ob das Datum korrekt eingetragen ist.


Alternative Methoden

Eine andere Möglichkeit, die Schleife zu implementieren, ist die Verwendung der loop copy paste-Technik:

For n = 29 To 46
    Sheets("LW11").Cells(zei, n).Copy
    Sheets("Hilf").Range("R" & i + 1).PasteSpecial Paste:=xlPasteValues
Next n

Diese Methode ermöglicht es, die Zellen einzeln zu kopieren und direkt einzufügen, ohne den gesamten Bereich auf einmal zu kopieren.


Praktische Beispiele

Angenommen, du hast eine Liste von Verkaufszahlen in "LW11" und möchtest diese in "Hilf" einfügen:

  1. Vorbereitung der Daten: Stelle sicher, dass die Verkaufszahlen in den Zellen B2 bis B10 stehen.
  2. Anpassung des Codes: Ändere den Range im Code, um die entsprechenden Zellen zu berücksichtigen.

Beispiel:

Range(Cells(2, 2), Cells(10, 2)).Copy
Sheets("Hilf").Range("R1").PasteSpecial Paste:=xlPasteValues

Tipps für Profis

  • Verwendung von With: Um den Code zu optimieren, kannst du With-Anweisungen verwenden, um wiederholte Objektreferenzen zu vermeiden.

    With Sheets("Hilf")
        .Range("R1").Offset(i + 1, 0).PasteSpecial Paste:=xlPasteValues
    End With
  • Fehlerroutinen einfügen: Implementiere On Error Resume Next und On Error GoTo 0, um Laufzeitfehler besser zu handhaben.


FAQ: Häufige Fragen

1. Wie kann ich die Schleife anpassen, um nur bestimmte Zellen zu kopieren?
Du kannst die Range-Definition im Code anpassen, um nur die gewünschten Zellen zu kopieren.

2. Kann ich die Schleife so ändern, dass sie Daten aus mehreren Blättern kopiert?
Ja, du kannst mehrere Schleifen erstellen, um durch verschiedene Blätter zu iterieren und die Daten zu kopieren.

3. Was mache ich, wenn ich nur bestimmte Daten basierend auf Bedingungen kopieren möchte?
Verwende If-Bedingungen innerhalb der Schleife, um spezifische Kriterien für das Kopieren zu definieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige