Office: Bereiche kopieren/einfügen und mittels Loop "automatisieren"

Helfe beim Thema Bereiche kopieren/einfügen und mittels Loop "automatisieren" in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo liebes MS Office Forum, da ich noch ein VBA Anfänger bin bräuchte ich bitte eure Hilfe *Smilie Zu meinem Problem: Ich möchte im Arbeitsblatt 1... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von wuli, 17. Dezember 2017.

  1. Bereiche kopieren/einfügen und mittels Loop "automatisieren"


    Hallo liebes MS Office Forum,

    da ich noch ein VBA Anfänger bin bräuchte ich bitte eure Hilfe *Smilie

    Zu meinem Problem:

    Ich möchte im Arbeitsblatt 1 einen definierten Bereich kopieren und in Arbeitsblatt 2 einfügen. Das ganze soll sich anschließend wiederholen bis eine leere Zeile (in Arbeitsblatt 1) ist.

    Momentan verwende ich folgenden Code:

    Sub Kopieren()
    'Bereich kopieren
    Sheets("Arbeitsblatt1").Range("A10:B20").Copy
    'einfügen in erste freie Zeile in ausgabe
    Sheets("Arbeitsblatt2").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
    'Kopiermodus beenden
    Application.CutCopyMode = False
    End Sub

    Nun möchte ich gerne das ganze "automatisieren" mittels Loop.

    Es sollen solange die Werte aus Arbeitsblatt1 kopiert und in Arbeitsblatt2 eingefügt werden bis eine Leere Zeile in Arbeitsblatt1 vorkommt.

    Das ganze sollte flexibel sein da die Anzahl der Werte unterschiedlich ist in Arbeitsblatt1. Ich möchte immer A10:B20, A30:B40, A50:B60, usw. (bis Leerzeile)... kopieren und anschließend in Arbeitsblatt2 einfügen *wink.gif*

    Kann mir bitte jemand weiter helfen?

    Lieben Dank im Voraus,

    Lg Flo

    :)
     
  2. Hallo Flo,

    was genau meinst Du mit "bis Leerzeile"? Was steht denn z.B. in A21:B29?

    Könntest Du Dein Vorhaben mal anhand einer Beispieldatei erläutern? Bitte lade die Datei als *.xlsx, ohne Makros hoch. Es gibt da wesentlich performantere Wege. als das einzelne Kopieren.
     
    Jonas0806, 18. Dezember 2017
    #2
  3. Hallo Jonas,

    danke für die schnelle Antwort *Smilie
    Im Anhang eine Beispieldatei.

    Lg Flo
     
  4. Bereiche kopieren/einfügen und mittels Loop "automatisieren"

    Hallo Flo,
    mein Vorschlag:
    Code:
     
  5. Hallo Flo,

    mein Vorschlag, der bei größeren Datenmengen etwas robuster ist. Habe den jetzt allerdings nicht durchgetestet

    Code:
     
    Jonas0806, 19. Dezember 2017
    #5
  6. Hallo Uwe und Jonas,

    vielen Dank euch beiden.

    Beide Varianten funktionieren einwandfrei!

    Danke für die schnellen Antworten

    Beste Grüße
    Flo
     
  7. Hallo,

    ich hätte noch eine Frage bezüglich dem Code:

    Ich verwende momentan diesen (Abwandlung des Codes von Uwe):


    Code:
    Damit auch leere Zeilen (welche in Kurvenauswertung vorhanden sind) auf die Tabelle1 bekomme habe ich bei
    Code:
    eine Null eingefügt.

    Nun mein Problem: Es werden alle Werte ausgegeben aber es kommt zum Schluss immer diese Fehlermeldung: Laufzeitfehler `1004' Anwendungs- oder objektdefinierter Fehler.

    Da die Rechendauer dieses Makros relativ lang ist vermute ich dass bis "unendlich" gerechnet wird und der Fehler dadurch auftritt.

    Hat jemand eine Idee?

    Vielen Dank im Voraus,

    beste Grüße Flo
     
  8. Bereiche kopieren/einfügen und mittels Loop "automatisieren"

    Hallo Flo,

    zunächst empfehle ich Dir, den Code mal im Einzelschritt ablaufen zu lassen und dann zu beobachten an welcher Stelle im Code dein Fehler erscheint.
    Dazu im Codebereich mit der Taste F8 durch dein Makro bewegen.
    Zeitgleich kann man dann einen Blick auf die Blätter werfen um zu sehen was passiert.
    Allerdings ist dann darauf zu achten was im Code wie aufgerufen wird:
    z.B. würde Cells.Clear alle Zellwerte deines aktiven Blatts löschen, was möglicherweise fatal wäre, wenn das Blatt aus dem Du lesen möchtest, gerade aktiv wäre...
    Besser wäre auf jeden Fall hier dem Befehl, das Blatt, welches Du löschen möchtest, voranzustellen, nämlich z.B. so:
    Sheets("Tabelle1").Cells.Clear

    Do While rng "" heißt soviel wie :
    Tu was, solange rng ungleich Leer ist
    ' kann man also nicht trennen, oder eine Null dazwischen schreiben!
    Wenn Du mehrere Abfragen hitereinander machen möchtest, musst Du sie verbinden, z.B. so:
    If rng "" And rng < 0
    was in diesem Fall aber auch keinen Sin machen würde, weil, wenn der Zellwert kleiner Null ist, dann ist er auch nicht Leer, also brauch ich das nicht abfragen.

    Vielleicht solltest Du auch nochmal eine Beispieldatei hochladen, die Dein Wunschergebnis beschreibt, momentan kann ich nicht nachvollziehen, was Leerzeilen betrifft, einerseits soll es nur solange laufen bis eine Leerzeile auftritt, andererseits ???
     
  9. Hallo Uwe,

    vielen Dank für deine Antwort.

    Im Anhang ein Beispiel mit Erklärung.

    (Danke auch für deine Tipps, ich bin noch ein richtiger VBA-Anfänger *upps *biggrin.gif* )

    Lg Flo
     
  10. Hallo Flo,
    das würd ich dann z.B. so machen:
    Code:
     
  11. Hallo Uwe,

    funktioniert einwandfrei.

    Wie auch schon letztes Mal hast du mir enorm geholfen *Smilie

    Danke dafür *Smilie

    Beste Grüße,
    Flo
     
Thema:

Bereiche kopieren/einfügen und mittels Loop "automatisieren"

Die Seite wird geladen...
  1. Bereiche kopieren/einfügen und mittels Loop "automatisieren" - Similar Threads - Bereiche kopieren einfügen

  2. Bereich kopieren und einfügen

    in Microsoft Excel Hilfe
    Bereich kopieren und einfügen: Hallo zusammen, Ich würde gerne, nachdem ich eine Pos. eingetragen habe (tabelle1) zeile 15 bis 46 mittels VPA den Bereich kopieren und in ein neues Blatt kopieren , danach löschen und dasselbe...
  3. VBA verschiedene definierte "nicht leere" Bereiche aus Datei kopieren in neue Datei

    in Microsoft Excel Hilfe
    VBA verschiedene definierte "nicht leere" Bereiche aus Datei kopieren in neue Datei: Hallo zusammen, nachdem ich jetzt vieles hin- und her versucht habe komme ich nicht wirklich zu einem Ergebnis das ich gerne hätte. Ich habe einen Ordner in dem mehrere Excel Dateien...
  4. Zelle aus Bereich auslesen, Wert aus nebenstehender Zelle in andere Zelle kopieren.

    in Microsoft Excel Hilfe
    Zelle aus Bereich auslesen, Wert aus nebenstehender Zelle in andere Zelle kopieren.: Moin Ihr Spezialisten. Ich habe mit eine Exceltabelle gebaut in der ich jedes Jahr für ein großes Schützenfest den Sitzplan für die Vereine eintrage. Nun möchte ich den Plan automatisieren, was in...
  5. Suche Datei, öffne Datei, kopiere Bereich, einfügen

    in Microsoft Excel Hilfe
    Suche Datei, öffne Datei, kopiere Bereich, einfügen: Hallo zusammen, ich stehe kurz vor der Verzweiflung! Bitte helft mir. Im Internet habe ich schon nach einigem gesucht, bin aber nur bedingt fündig geworden. Da ich ziemlich unerfahren auf dem...
  6. Wert suchen, bestimmten Bereich kopieren und einfügen

    in Microsoft Excel Hilfe
    Wert suchen, bestimmten Bereich kopieren und einfügen: Hallo zusammen, ich habe schon in einem anderen Thread gepostet. Da dieser aber als erledigt markiert ist, probiere ich es noch mal so. https://www.ms-office-forum.net/foru...d.php?t=357944 Ich...
  7. Markierten Bereich kopieren und in anderer Datei einfügen

    in Microsoft Excel Hilfe
    Markierten Bereich kopieren und in anderer Datei einfügen: Hi zusammen, folgendes VBA-Anliegen: Ich möchte aus einer Tabelle per Klick auf ein Steuerelement den von mir markierten Bereich kopieren und automatisch in eine andere Datei einfügen. Die Datei...
  8. Bereich kopieren und als Bild einfügen

    in Microsoft Excel Hilfe
    Bereich kopieren und als Bild einfügen: Hi, möchte aus einem Tabellenblatt eine Kopie erstellen und dieses dann als Bild in ein neues Tabellenblatt einfügen. Als Bild aus dem Grund da noch Buttons auf dem Blatt sind und sich diese nur...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden