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

Forumthread: VBA - Bereiche in anderes Tabellenblatt kopieren

VBA - Bereiche in anderes Tabellenblatt kopieren
19.11.2016 23:18:39
Fred
Hallo VBA Experten,
ich bin mit vba noch nicht soweit, so das ich z.B. mehrere benannte Bereiche in ein anderes Tabellenblatt kopiere, mit der Bedingung, das die Bereiche nebeneinander eingefügt werden, beginnend ab der 2. Zeile.
Also, mal gelistet:
Ich bin in Tabelle „Center“
Es sollen 3 Bereiche in Tabelle „Listen2“ kopiert werden. Jeder Bereich ist so definiert, dass in einer Zeile nebeneinander 3 Zellen sind.
Die 3 Bereichsnamen; „Prediction1“, „Prediction2“ und „Prediction3“
Die Bereiche sollen beim ersten Aufruf des VBA nebeneinander beginnend ab A2 in Tabelle „Listen3“ eingefügt werden.
Rufe ich das VBA erneut auf, sollen die 3 Bereiche in die nächst leere Zeile nebeneinander eingefügt werden.
Ich weis nicht, ob dies so verständlich war,- ich habe ein einfach gehaltenes Arbeitsblatt mit hochgeladen.
https://www.herber.de/bbs/user/109568.xlsm
Kann mir bitte jemand den VBA-Code schreiben.
mfg
Fred
Anzeige

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA - Bereiche in anderes Tabellenblatt kopieren
19.11.2016 23:59:37
Fred
... mist!
Ich muß mich ergänzen.
Es sind nicht 3 Bereiche sondern vier!
Bereich: "Kuerzel" -- 1 Zelle
Bereich: "Prediction1" -- 3 Zellen
Bereich: "Prediction2" -- 3 Zellen
Bereich: "Prediction3" -- 3 Zellen
ich hab nochmal ein aktuelles Blatt hochgeladen.
https://www.herber.de/bbs/user/109569.xlsm
Gruß
Fred
Anzeige
AW: VBA - Bereiche in anderes Tabellenblatt kopieren
20.11.2016 00:12:27
Werner
Hallo Fred,
meinst du so? Zumindest habe ich das so verstanden. Deine Datei konnte ich leider nicht herunterladen, ist bei mir hier derzeit nicht möglich.
Dim loLetzte As Long
loLetzte = Sheets("Listen2").Cells(Rows.Count, 1).End(xlUp).Row
If loLetzte 
Gruß Werner
Anzeige
AW: VBA - Bereiche in anderes Tabellenblatt kopieren
20.11.2016 00:45:35
Fred
Hallo Werner,
es klappt teilweise. Ich habe den Code geändert, so dass in "Listen3" eingefügt wird. Allerdings wird, sollte die zweite Zeile leer sein "Kuerzel" eingetragen, aber die weiteren Bereiche werden eine Zeile drunter eingefügt.

Sub Schaltfläche1_Klicken()
Dim loLetzte As Long
loLetzte = Sheets("Listen2").Cells(Rows.Count, 1).End(xlUp).Row
If loLetzte 
wie bekomme ich alles stimmig in eine Zeile?
Gruß
Fred
Anzeige
AW: VBA - Bereiche in anderes Tabellenblatt kopieren
20.11.2016 00:50:44
Fred
Werner, wenn ich so ändere

Sub Schaltfläche1_Klicken()
Dim loLetzte As Long
loLetzte = Sheets("Listen2").Cells(Rows.Count, 1).End(xlUp).Row
If loLetzte 
wird es stimmig in eine Zeile eingetragen, allerdings beim zweitenmal überschrieben.
AW: VBA - Bereiche in anderes Tabellenblatt kopieren
20.11.2016 00:58:16
Werner
Hallo Fred,
das soll doch dann wohl jeweils nur in Listen3 eingefügt werden? Dann musst du auch alles auf Listen3 ändern, vor allem muss auch die letzte belegte Zeile in Liste3 und nicht in Liste2 ermittelt werden.
Sub Schaltfläche1_Klicken()
Dim loLetzte As Long
loLetzte = Sheets("Listen3").Cells(Rows.Count, 1).End(xlUp).Row
If loLetzte 
Gruß Werner
Anzeige
Perfekt ! - Werner
20.11.2016 01:05:41
Fred
.. Klasse!
ich habe eben mit dem "loLetzte + ..." experementiert und es funzte auch. Warst schnelle Werner und bei mir war`s Glücksspiel :-)
Danke für deine kompetente Unterstützung und ein schönes Wochenende!
AW: Gerne u. Danke für die Rückmeldung. o.w.T.
20.11.2016 01:10:11
Werner
AW: Gerne u. Danke für die Rückmeldung. o.w.T.
20.11.2016 01:16:32
Fred
jo,-
vielleicht noch ein Nachschlag, Werner
So wie es ist, ist es gut!
Wie ändere ich, wenn nur die Werte übertragen werden sollen?
Gruß
Fred
Anzeige
AW: Gerne u. Danke für die Rückmeldung. o.w.T.
20.11.2016 01:27:21
Werner
Hallo Fred,
Sub Schaltfläche1_Klicken()
Dim loLetzte As Long
loLetzte = Sheets("Listen3").Cells(Rows.Count, 1).End(xlUp).Row
If loLetzte 
Gruß Werner
Werner, schönen Sonntag!
20.11.2016 01:30:02
Fred
Prima, Werner,
dann habe ich nun einen weiteren "Referenz-Code", den (abgewandelt) ich auf weitere Aktionen nutzen kann.
Ich mach nun Ende,- schönen Sonntag, Werner
Thread beendet
mit freundlichen Gruß
Fred
Anzeige
AW: Werner, schönen Sonntag!
20.11.2016 01:32:03
Werner
Hallo Fred,
danke, dir auch. Ich hab noch ein bischen -Nachtdienst-
Gruß Werner
AW: VBA - Bereiche in anderes Tabellenblatt kopieren
20.11.2016 15:22:06
Fred
Hallo VBA Experten,
ich habe von Werner ein Script bekommen, welches mir innerhalb einer Arbeitsmappe, benannte Bereiche von Blatt Listen2" nach "Listen3" kopiert.
Das einfügen der Daten beginnt in der 2. Zeile / 1. Spalte
Gibt es in der 2. Zeile bereits Einträge (Prüfung findet in der 1. Spalte statt), werden die Daten eine Zeile weiter unten eingetragen,- usw.
Hier der Code:

Dim loLetzte As Long
loLetzte = Sheets("Listen3").Cells(Rows.Count, 1).End(xlUp).Row
If loLetzte 
Meine Anfrage:
Würde mir jemand den Code so umschreiben, dass (nach gleichen Prinzip wie von Werner`s Script) die Daten in ein anderes Arbeitsblatt (Name: "Analyse2") im gleichen Ordner eingefügt werden?
Ich habe ein einfach gehaltenes Arbeitsblatt beigefügt
https://www.herber.de/bbs/user/109575.xlsm
mfG
Fred
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Bereiche in ein anderes Tabellenblatt kopieren mit VBA


Schritt-für-Schritt-Anleitung

Um in Excel VBA einen Bereich zu kopieren und in ein anderes Tabellenblatt einzufügen, folge diesen Schritten:

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

  2. Erstelle ein neues Modul: Klicke auf Einfügen > Modul.

  3. Füge den folgenden Code ein: Dieser Code kopiert die benannten Bereiche in das Tabellenblatt "Listen3" und fügt sie nebeneinander ab der 2. Zeile ein.

    Sub BereicheKopieren()
       Dim loLetzte As Long
       loLetzte = Sheets("Listen3").Cells(Rows.Count, 1).End(xlUp).Row + 1
    
       Sheets("Center").Range("Kuerzel").Copy Destination:=Sheets("Listen3").Cells(loLetzte, 1)
       Sheets("Center").Range("Prediction1").Copy Destination:=Sheets("Listen3").Cells(loLetzte, 2)
       Sheets("Center").Range("Prediction2").Copy Destination:=Sheets("Listen3").Cells(loLetzte, 3)
       Sheets("Center").Range("Prediction3").Copy Destination:=Sheets("Listen3").Cells(loLetzte, 4)
    End Sub
  4. Führe das Makro aus: Gehe zurück zu Excel, drücke ALT + F8, wähle BereicheKopieren und klicke auf Ausführen.


Häufige Fehler und Lösungen

  • Fehler: "Objekt nicht gefunden"
    Lösung: Stelle sicher, dass die benannten Bereiche ("Kuerzel", "Prediction1", "Prediction2", "Prediction3") korrekt definiert sind.

  • Fehler: Daten werden überschrieben
    Lösung: Überprüfe, ob die letzte belegte Zeile korrekt ermittelt wird. Der Code sollte die nächste leere Zeile finden.


Alternative Methoden

Wenn du eine Alternative zu VBA suchst, kannst du auch die Funktion "Kopieren" und "Einfügen" direkt in Excel verwenden. Diese Methode ist jedoch weniger automatisiert und erfordert manuelle Eingriffe.


Praktische Beispiele

  1. Kopieren von Zellen ohne Formatierung: Wenn du nur die Werte kopieren möchtest, ändere das Copy-Kommando zu:

    Sheets("Center").Range("Kuerzel").Copy
    Sheets("Listen3").Cells(loLetzte, 1).PasteSpecial Paste:=xlPasteValues
  2. Daten in ein anderes Arbeitsblatt einfügen: Um die Daten in ein Blatt namens "Analyse2" zu kopieren, ersetze "Listen3" mit "Analyse2" im Code.


Tipps für Profis

  • Verwende Fehlerbehandlungsroutinen: Implementiere On Error Resume Next, um unerwartete Fehler zu handhaben.
  • Optimiere den Code: Reduziere die Anzahl der Copy und Paste-Befehle, indem du die Werte direkt zuweist:

    Sheets("Listen3").Cells(loLetzte, 1).Value = Sheets("Center").Range("Kuerzel").Value

FAQ: Häufige Fragen

1. Wie kann ich mehrere Bereiche auf einmal kopieren?
Nutze Schleifen, um mehrere Bereiche dynamisch zu kopieren und einzufügen.

2. Kann ich die Daten auch als Tabelle formatieren?
Ja, du kannst die Daten nach dem Einfügen mit ListObjects.Add in eine Tabelle umwandeln.

3. Wie kann ich den VBA-Code anpassen, um nur bestimmte Zellen zu kopieren?
Ändere den Range-Bereich im Code, um nur die gewünschten Zellen auszuwählen.

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