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

Forumthread: variablen Bereich in variablen Bereich kopieren

variablen Bereich in variablen Bereich kopieren
14.02.2005 09:28:20
Korl
Hallo,
ich bin mal wieder auf Hilfe angewiesen. Vielleicht kann mir jemand helfen?
In "Tabelle 1" habe ich eine Bereich beginnend "A2" , das Ende ist variabel.
Dieser Bereich soll mit den Inhalten "Werte"in "Tabelle2" am Ende der Spalte "A" (auch variabel) eingefügt werden.
In der Recherche habe ich Codes gefunden und versucht sie auf meine Bedürfnisse anzupassen, was mir aber nicht gelungen ist.
Gruß Korl
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: variablen Bereich in variablen Bereich kopieren
14.02.2005 09:48:53
Peter
Hallo Korl,
kopier dir das angfügte Makro in ein Modul und mit Alt + F8 kannst du es beliebig oft starten.
Alt + F11 = VBA Umgebung
links deine Excel-Mappe suchen und mit klick auf das +-Zeichen öffnen
oben (Menüzeile) Einfügen anklicken, Modul auswählen und anschließend da hineinkopieren.
Gruß Peter
PS Rückantwort nicht vergessen.


Sub Kopieren()
Dim WksQ      As Worksheet
Dim WksZ      As Worksheet
Dim lLetzteQ  As Long
Dim lLetzteZ  As Long
   Set WksQ = Worksheets("Tabelle1")
   Set WksZ = Worksheets("Tabelle2")
   
   lLetzteQ = IIf(WksQ.Range("A65536") <> "", 65536, WksQ.Range("A65536").End(xlUp).Row)
   lLetzteZ = IIf(WksZ.Range("A65536") <> "", 65536, WksZ.Range("A65536").End(xlUp).Row)
   
   WksQ.Range("A2:A" & lLetzteQ).Copy WksZ.Range("A" & lLetzteZ + 1)
Anzeige
AW: variablen Bereich in variablen Bereich kopieren
14.02.2005 12:48:21
Korl
Hallo Peter,
ich bedanke mich für Deine Mühe mir den Code zu erstellen. Es funktioniert soweit aber
ich brauche oder muß, da Formeln in den Spalten vorhanden sind,
die Funktion Inhalte "Werte" einfügen in Tabelle 2!
Lässt sich das in Deinem Code noch anpassen?
Gruß Korl
AW: variablen Bereich in variablen Bereich kopieren
14.02.2005 13:02:59
Peter
Hallo Korl,
tausch die letzte Zeile vor End Sub gegen die beoden nachfolgenden aus.
Ich hoffe, dann tut das Makro was du möchtest.
Gruß Peter
Anzeige
AW: variablen Bereich in variablen Bereich kopieren
14.02.2005 15:12:48
Korl
Hallo Peter,
nochmal wieder Danke für Deine Mühe, es klappt soweit ganz gut.
Eine Frage hätt ich noch. Alles was kopiert werden soll, macht auch Dein Code, mich wundert nur, dass bei dem Vorgang mehr markiert wird als nötig.
Ist dieser Effekt normal?
Kurz vor dem Ende des Codes habe ich noch diese beiden Zeilen eingefügt.
Application.CutCopyMode = False
MsgBox ("Die Daten wurden übernommen!")
Da die Markierung noch aktiv ist und ein erneutes einfügen mit der Entertaste verhindert werden soll und zum anderen soll mir die MsgBox zeigen, dass der Vorgang durchgeführt wurde.
Ist es so richtig?
Gruß Korl
Anzeige
Danke Peter ich mein Fehler selbst gefunden
14.02.2005 15:27:05
Korl
Hallo Peter,
warum zum kopieren mehr Bereich markiert wurde, lag an meine Anpassung des Bereiches.
Jetzt läuft es normal.
Nochmals Danke für Deine Mühe!
Gruß Korl
AW: Danke für die Rückmeldung oT
14.02.2005 15:56:51
Peter
OT
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Variablen Bereich in variablen Bereich kopieren


Schritt-für-Schritt-Anleitung

Um einen variablen Bereich in Excel von einer Tabelle in eine andere zu kopieren, kannst Du folgendes VBA-Makro verwenden. Dieses Beispiel geht davon aus, dass Du mit Excel VBA vertraut bist und die Umgebung bereits geöffnet hast.

  1. Öffne Excel und drücke Alt + F11, um die VBA-Umgebung zu öffnen.

  2. Klicke im Projektfenster auf das Plus-Zeichen neben Deiner Excel-Mappe und wähle „Modul“ aus.

  3. Kopiere den folgenden Code in das Modul:

    Sub Kopieren()
        Dim WksQ As Worksheet
        Dim WksZ As Worksheet
        Dim lLetzteQ As Long
        Dim lLetzteZ As Long
    
        Set WksQ = Worksheets("Tabelle1")
        Set WksZ = Worksheets("Tabelle2")
    
        lLetzteQ = IIf(WksQ.Range("A65536") <> "", 65536, WksQ.Range("A65536").End(xlUp).Row)
        lLetzteZ = IIf(WksZ.Range("A65536") <> "", 65536, WksZ.Range("A65536").End(xlUp).Row)
    
        WksQ.Range("A2:A" & lLetzteQ).Copy WksZ.Range("A" & lLetzteZ + 1)
        Application.CutCopyMode = False
        MsgBox ("Die Daten wurden übernommen!")
    End Sub
  4. Schließe die VBA-Umgebung und kehre zu Excel zurück.

  5. Um das Makro auszuführen, drücke Alt + F8, wähle „Kopieren“ aus und klicke auf „Ausführen“.


Häufige Fehler und Lösungen

Fehler: Der Bereich wird nicht korrekt kopiert.

  • Lösung: Überprüfe, ob der Quellbereich in „Tabelle1“ korrekt definiert ist. Achte darauf, dass in Spalte A ab der Zeile 2 Daten vorhanden sind.

Fehler: Die Daten werden mit Formeln kopiert.

  • Lösung: Um nur die Werte zu kopieren, kannst Du die letzte Zeile im Makro anpassen. Ersetze die Zeile mit WksQ.Range("A2:A" & lLetzteQ).Copy WksZ.Range("A" & lLetzteZ + 1) durch:

    WksQ.Range("A2:A" & lLetzteQ).Copy
    WksZ.Range("A" & lLetzteZ + 1).PasteSpecial Paste:=xlPasteValues

Alternative Methoden

Wenn Du keine VBA-Lösungen verwenden möchtest, kannst Du auch die folgenden Methoden ausprobieren:

  1. Manuelles Kopieren: Du kannst den gewünschten Bereich in „Tabelle1“ einfach kopieren (Strg+C) und in „Tabelle2“ einfügen (Strg+V). Achte darauf, dass Du die Einfügeoptionen so wählst, dass nur die Werte übernommen werden.

  2. Power Query: Eine weitere Möglichkeit besteht darin, Power Query zu verwenden, um Daten von einer Tabelle in eine andere zu übertragen. Dies ist besonders nützlich, wenn Du regelmäßig Daten kopieren musst.


Praktische Beispiele

Angenommen, Du hast in „Tabelle1“ die Werte von A2 bis A10 und möchtest diese in „Tabelle2“ an das Ende der vorhandenen Daten in Spalte A anhängen. Dein VBA-Code wird die Werte korrekt kopieren, auch wenn die Anzahl der Zeilen variiert.


Tipps für Profis

  • Verwende Option Explicit am Anfang Deines VBA-Moduls, um sicherzustellen, dass alle Variablen deklariert sind. Dies hilft, Fehler zu vermeiden.
  • Teste Deinen Code regelmäßig, um sicherzustellen, dass alle Anpassungen richtig funktionieren.
  • Füge Fehlerbehandlungsroutinen hinzu, um unerwartete Fehler abzufangen, indem Du On Error Resume Next verwendest.

FAQ: Häufige Fragen

1. Frage: Kann ich das Makro anpassen, um Daten aus mehreren Spalten zu kopieren?
Antwort: Ja, Du kannst die Zeile mit WksQ.Range("A2:A" & lLetzteQ) anpassen, um mehrere Spalten zu kopieren, z.B. WksQ.Range("A2:B" & lLetzteQ).

2. Frage: Was bedeutet Application.CutCopyMode = False?
Antwort: Diese Zeile hebt die Markierung des kopierten Bereichs auf und verhindert, dass der Benutzer versehentlich erneut einfügt.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige