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

Forumthread: VBA - mit Schleife Inhalte kopieren u. einfügen

VBA - mit Schleife Inhalte kopieren u. einfügen
03.08.2006 14:27:50
Mathias
Hallo miteinander,
ich werte in meiner Excel-Mappe Daten über Formeln aus, die Ergebnisse liegen in Tab1 immer in den Zellen a1:g1 vor. Da die Ergebnisse monatlich verändert sind und ich sie vorher sichern möchte, sollen sie kopiert und die Inhalte beim ersten Mal in die Zellen a4:g4 eingefügt werden. Bei der nächsten Sicherung sollen die Ergebnisse kopiert und die Inhalte darunter,in die Zellen a5:g5, eingefügt werden, beim nächsten Mal in a6:g6, usw., usw.
Kann mir jemand bei dieser Schleife helfen? Ich habe darin keine Erfahrung und komme deshalb leider selbst nicht weiter.
Viele Grüße, Mathias
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA - mit Schleife Inhalte kopieren u. einfügen
03.08.2006 14:36:55
Werner
Hallo Mathias,
ich würde die Position ermitteln an der die anderen Werte angefügt werden können.
Davon ausgehend, dass z.B. immer ein Wert in der Zelle A steht, könnt die Schleife so aussehen:
...
PosNr = 1
'******Ermittlung der letzten Zeile wo in der entspr. Zelle etw. eingetragen ist
Do While (Worksheets("[Tabellenname]").Range("A" & PosNr ) "")
PosNr = PosNr + 1
Loop
Die Variable [PosNr ] beinhaltet nun die letzte Position.
Ab hier können nun die nachfolgenden Datensätze per Makro eingefügt werden.
Ich hoffe dass Dir die Info ein wenig weiterhilft.
LG Werner
Anzeige
AW: VBA - mit Schleife Inhalte kopieren u. einfügen
03.08.2006 15:22:12
Mathias
Hallo Werner,
vielen Dank für deine schnelle Hilfe. Ich komme leider so wie Du schreibst, nicht weiter.
Wie könnte denn das ganze Makro inklusive der Schleife aussehen?
Es sollen bei jedem Start des Makros die Ergebnisse aus a1:g5 kopiert und darunterliegend inhaltlich eingefügt werden, beim ersten Mal in a4, bei den nächsten Malen in a5, dann a6 usw, also immer in Spalte A die nächste leere Zelle unterhalb a4 suchen und einfügen.
Ich danke Dir schon mal ganz herzlich,
Mathias
Anzeige
AW: VBA - mit Schleife Inhalte kopieren u. einfügen
03.08.2006 15:33:14
Werner
Versuch es mal hiermit:
Option Explicit

Private Sub CommandButton1_Click()
Dim PosNr As Integer
PosNr = 1
'letzte Position ermitteln
Do While (Worksheets("Tabelle2").Range("A" & PosNr) <> "")
PosNr = PosNr + 1
Loop
'aus Tabelle 1 den Bereich A1-G5 kopieren
Worksheets("Tabelle1").Range("A" & 1, "G" & 5).Copy
'in Tabelle 2 ab entspr. Pos.einfügen
Worksheets("Tabelle2").Range("A" & PosNr).PasteSpecial xlPasteValues
End Sub

Evtl. so mal ausprobieren, wobei Tabelle1 die Tabelle ist woher die Werte kommen.
LG Werner
Anzeige
AW: VBA - mit Schleife Inhalte kopieren u. einfügen
03.08.2006 15:43:53
Mathias
Hallo Werner,
Dein Vorschlag funktioniert ganz hervorragend - Du hast mir sehr geholfen!
LG Mathias
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

VBA - Inhalte mit Schleife kopieren und einfügen


Schritt-für-Schritt-Anleitung

  1. Öffne Excel und aktiviere das VBA-Editor: Drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.

  2. Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf eine der Projektdateien im VBA-Editor, wähle Einfügen und dann Modul.

  3. Kopiere den folgenden Code in das Modul:

    Option Explicit
    
    Private Sub CommandButton1_Click()
       Dim PosNr As Integer
       PosNr = 1
       'Letzte Position ermitteln
       Do While (Worksheets("Tabelle2").Range("A" & PosNr) <> "")
           PosNr = PosNr + 1
       Loop
       'Aus Tabelle 1 den Bereich A1-G5 kopieren
       Worksheets("Tabelle1").Range("A1:G5").Copy
       'In Tabelle 2 ab entsprechender Position einfügen
       Worksheets("Tabelle2").Range("A" & PosNr).PasteSpecial xlPasteValues
    End Sub
  4. Ändere die Tabellennamen: Stelle sicher, dass die Tabellennamen in Worksheets("Tabelle1") und Worksheets("Tabelle2") korrekt sind.

  5. Füge einen Button hinzu: Gehe zurück zu Excel, wähle Entwicklertools, klicke auf Einfügen und füge einen Schaltfläche hinzu. Weise das Makro CommandButton1_Click zu.

  6. Teste das Makro: Klicke auf die Schaltfläche und beobachte, wie die Daten aus Tabelle1 in die nächste leere Zeile in Tabelle2 eingefügt werden.


Häufige Fehler und Lösungen

  • Fehler: "Laufzeitfehler 1004: Anwendung oder Objekt definiert"
    Lösung: Überprüfe, ob die Tabellennamen korrekt sind und existieren.

  • Fehler: Daten werden nicht eingefügt
    Lösung: Stelle sicher, dass die Range in Tabelle1 korrekt angegeben ist. Überprüfe auch, ob die Zellen in Tabelle2 leer sind.


Alternative Methoden

Anstelle der Verwendung eines VBA-Makros kannst du die Funktion Kopieren und Einfügen manuell verwenden:

  1. Markiere den Bereich A1:G5 in Tabelle1.
  2. Drücke CTRL + C, um zu kopieren.
  3. Gehe zu Tabelle2, wähle die nächste leere Zelle (z.B. A4) und drücke CTRL + V, um die Daten einzufügen.

Diese Methode ist einfach, für wiederholte Prozesse jedoch zeitaufwendig.


Praktische Beispiele

Wenn du regelmäßig Daten sichern musst, ist das VBA-Makro eine effiziente Lösung. Du kannst die Funktion anpassen, um:

  • Daten aus unterschiedlichen Bereichen zu kopieren (z.B. A1:G10).
  • Mehrere Blätter in einer Datei zu berücksichtigen.
Worksheets("Tabelle1").Range("A1:G10").Copy

Tipps für Profis

  • Verwende xlPasteValues: Dadurch werden nur die Werte ohne Formatierungen eingefügt, was die Dateigröße reduziert.
  • Automatisiere weitere Aufgaben: Integriere weitere Makros, um nach dem Einfügen zusätzliche Berechnungen durchzuführen.
  • Dokumentation: Kommentiere deinen Code, um die Lesbarkeit und Wartbarkeit zu verbessern.

FAQ: Häufige Fragen

1. Wie kann ich das Makro anpassen, um nur bestimmte Zellen zu kopieren?
Du kannst die Range im Code ändern, um nur die gewünschten Zellen zu kopieren, z.B. Range("A1:C5").

2. Kann ich das Makro auch für andere Excel-Versionen verwenden?
Ja, das Makro sollte in den meisten modernen Excel-Versionen funktionieren, solange VBA unterstützt wird.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige