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

Forumthread: Bereich mit VBA kopieren und Einfügen

Bereich mit VBA kopieren und Einfügen
01.02.2022 12:16:01
Tobi
Hallo zusammen,
ich habe ein Problem...
und zwar möchte ich aus "Arbeitsmappe1" einen bestimmten Bereich (z.B. A1 bis A40)
mittels VBA kopieren und in die "Arbeitsmappe_basis" einfügen.
Problem ist, die "Arbeitsmappe_basis" bleibt immer gleich,
aber die "Arbeitsmappe1" hat immer einen anderen Namen.
ich exportiere die "Arbeitsmappe1" aus einem anderen Programm und möchte dies dann in meine "Arbeitsmappe_basis" per klick kopieren.
Deshalb hat die "Arbeitsmappe1" immer einen anderen Namen.
ich hoffe das Problem ist verständlich.
kann mir da jemand behilflich sein?
Gruß
Tobi
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bereich mit VBA kopieren und Einfügen
01.02.2022 12:31:04
Piet
Hallo
probier es bitte mal so. Die zu kopierende mappe muss dabei Aktiv sein! Das makro befindet sich in der Zielmappe!
Das 1. Makro kopiert immer in die Zelle "A1" der Zielmappe, das 2. Makro hängt die Daten in Spalte A dynamisch unten an:
mfg Piet
  • 
    Sub test_1()
    Range("A1:A40").Copy  'kopiert AktiveMappe in Zielmappe Zelle A1
    ThisWorkbook.Worksheets("Zieltabelle").Range("A1").PasteSpecial xlPasteValues   'oder xlPasteAll
    Application.CutCopyMode = False
    End Sub
    
    
    Sub test_2()
    Range("A1:A40").Copy  'kopiert AktiveMappe  In Zielmappe unten anhängen
    lz1 = ThisWorkbook.Worksheets("Zieltabelle").Cells(Rows.Count, 1).End(xlUp).Row + 1
    ThisWorkbook.Worksheets("Zieltabelle").Range("A" & lz1).PasteSpecial xlPasteValues
    Application.CutCopyMode = False
    End Sub
    

  • Anzeige
    AW: Kleine Ergänzung
    01.02.2022 13:11:59
    GerdL
    
    Das makro befindet sich in der Zielmappe!
    
    in einem allgemeinen Modul z.B. Modul1.
    Gruß Gerd
    AW: Kleine Ergänzung
    01.02.2022 13:27:57
    Tobi
    Problem an dem ganzen ist, dass ich das Makro mit klick auf einen Button in der Zieldatei starten will.
    Damit ist die Zieldatei aktiv und nicht die Datei aus der ich den Bereich kopieren will.
    Also kopiert er den Bereich von der Zieldatei
    Anzeige
    AW: Bereich mit VBA kopieren und Einfügen
    01.02.2022 13:41:44
    Tobi
    ok das Problem hab ich jetzt gelöst, dass ich das Makro einfach von der "zu kopierenden" Datei starte.
    Makro schaut jetzt so aus:
    
    Sub Bereich_kopieren()
    Range("AB2:BL3").Copy  'kopiert Bereich in Aktiver Mappe
    Windows("Zieldatei").Activate
    Range("AB2").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    End Sub
    
    jetzt ist natürlich das Problem, dass ich jedes mal die Zieldatei aufhaben muss.
    kann man das auch anders lösen?
    Gruß
    Anzeige
    AW: Bereich mit VBA kopieren und Einfügen
    01.02.2022 15:16:21
    Piet
    Hallo
    Nein, zum kopieren MUSS die Zieldatei geöffnete sein! du kannst sie aber vorher Öffnen, Kopieren, Speichern und danach Schliessen!
    Am einfachsten einmal mit demMacrorecorder aufzeichnen, dann hast du alle wichtigen Befehle im Code drin.
    mfg Piet
    ;

    Forumthreads zu verwandten Themen

    Anzeige
    Anzeige
    Entdecke relevante Threads

    Schau dir verwandte Threads basierend auf dem aktuellen Thema an

    Alle relevanten Threads mit Inhaltsvorschau entdecken
    Anzeige
    Anzeige

    Infobox / Tutorial

    Bereich mit VBA kopieren und Einfügen


    Schritt-für-Schritt-Anleitung

    Um einen bestimmten Bereich in Excel mittels VBA zu kopieren und in eine andere Tabelle einzufügen, kannst Du das folgende Vorgehen anwenden:

    1. Makro erstellen:

      • Öffne die Excel-Datei, in der Du das Makro erstellen möchtest (Zieldatei).
      • Gehe zu Entwicklertools > Visual Basic, um den VBA-Editor zu öffnen.
      • Füge ein neues Modul hinzu (Einfügen > Modul).
    2. VBA-Code einfügen:

      • Füge den folgenden VBA-Code in das Modul ein:
      Sub Bereich_kopieren()
         ' Bereich kopieren
         Workbooks("Arbeitsmappe1.xlsx").Sheets("Tabelle1").Range("A1:A40").Copy
         ' Zieldatei aktivieren und einfügen
         ThisWorkbook.Sheets("Zieltabelle").Range("A1").PasteSpecial xlPasteValues
         Application.CutCopyMode = False
      End Sub

      Stelle sicher, dass Du den Namen der Datei und des Arbeitsblatts entsprechend anpasst.

    3. Makro ausführen:

      • Du kannst das Makro durch einen Button oder direkt im VBA-Editor ausführen.

    Häufige Fehler und Lösungen

    • Fehler: "Die Arbeitsmappe ist nicht geöffnet."

      • Lösung: Stelle sicher, dass die Quelldatei geöffnet ist, bevor Du das Makro ausführst.
    • Fehler: "Bereich nicht gefunden"

      • Lösung: Überprüfe, ob die angegebenen Zellreferenzen und Arbeitsblattnamen korrekt sind.
    • Fehler: "Kein Zugriff auf die Zieldatei"

      • Lösung: Stelle sicher, dass Du die richtigen Berechtigungen zum Bearbeiten der Zieldatei hast.

    Alternative Methoden

    Eine Alternative zur Verwendung von VBA ist die Verwendung von Excel-Formeln oder Power Query, um Daten zu importieren.

    1. Excel-Formeln: Du kannst =Zellenname!A1:A40 in die Zieltabelle eingeben, um die Daten dynamisch zu verlinken.

    2. Power Query: Verwende Power Query, um Daten aus verschiedenen Arbeitsmappen zu importieren und zu transformieren.


    Praktische Beispiele

    Hier sind zwei einfache VBA-Beispiele:

    1. Bereich kopieren und einfügen:

      Sub test_1()
         Range("A1:A40").Copy
         ThisWorkbook.Worksheets("Zieltabelle").Range("A1").PasteSpecial xlPasteValues
         Application.CutCopyMode = False
      End Sub
    2. Daten dynamisch anhängen:

      Sub test_2()
         Range("A1:A40").Copy
         lz1 = ThisWorkbook.Worksheets("Zieltabelle").Cells(Rows.Count, 1).End(xlUp).Row + 1
         ThisWorkbook.Worksheets("Zieltabelle").Range("A" & lz1).PasteSpecial xlPasteValues
         Application.CutCopyMode = False
      End Sub

    Diese Makros helfen dir, den Bereich effizient zu kopieren und in die gewünschte Tabelle einzufügen.


    Tipps für Profis

    • Verwende xlPasteAll, um die gesamte Formatierung und Formeln zu kopieren.
    • Überlege, den Code so anzupassen, dass die Quelldatei automatisch geöffnet wird, falls sie nicht geöffnet ist.
    • Nutze den Makrorekorder, um schnell einen Code zu generieren und ihn dann anzupassen.

    FAQ: Häufige Fragen

    1. Muss die Quelldatei geöffnet sein?
    Ja, die Quelldatei muss geöffnet sein, damit das Makro den Bereich kopieren kann.

    2. Wie kann ich den Bereich an eine andere Stelle einfügen?
    Ändere die Zielreferenz im Code, z.B. Range("B1") anstelle von Range("A1").

    3. Kann ich mehrere Bereiche gleichzeitig kopieren?
    Ja, Du kannst mehrere Range-Befehle innerhalb des Makros verwenden, um verschiedene Bereiche zu kopieren und einzufügen.

    4. Welche Excel-Version wird benötigt?
    Diese Makros funktionieren in Excel 2010 und neueren Versionen.

    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