Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Erstellung eines Makros für das Kopieren und Einfügen
#1
Hallo  Blush ,


ich bin gerade dabei mehrere Tabellen aus verschiedenen Excel-Dateien zu kopieren und diese in eine Excel-Datei einzufügen.

Einfaches Beispiel:
Nehmen wir an das in der Excel-Datei1 in den Zellbereich A1 bis Zelle A6 die Werte von 1 bis 6 enthalten sind sowie die Werte 1 bis 6 in den Zellbereich von B1 bis B6.
Ich verwende die Kombination "STRG+SHIFT+Pfeil nach unten" um den ganzen Bereich zu markieren. In diesem Falle A1 bis A6.

Danach gehe ich zu Excel-Datei2 -> klicke auf Zelle A1 -> Einfügeoptionen (Werte (w)).

Soweit so gut, nur ist es recht mühsam bei mehreren hundert Spalten.
Daher kam ich auf die Idee ein Makro zu erstellen, um den Aufwand etwas zu verringern.

Erstellung der Makros:
In Excel-Datei1 habe ich einen Makro1 (STRG+D) erstellt, sodass diese den Zellbereich (A1:A6) kopiert und in Excel-Datei2 einen Makro2 (STRG+F) erstellt, der mir das Einfügen als "Werte" beschleunigt.

Problem:
Nachdem die Werte erfolgreich eingefügt worden sind, möchte ich nun den Vorgang wiederholen. Nur diesmal sollen die Werte B1 bis B6 in Excel-Datei1 kopiert werden. Also drücke ich STRG+D. Jedoch wird der Zellbereich A1 bis A6 kopiert und nicht B1 bis B6.

Frage:
Wie kann ich den Makro1 so umstellen, sodass es den Zellbereich B1 bis B6 kopiert (sowie andere beliebige Zellbereiche)?.
Antworten Top
#2
Hallo,

woher sollen wir wissen, was du wo umstellen musst, wenn wir deine Makros nicht kennen?
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Antworten Top
#3
Hallo,
wo ist der Unterschied zu Strg C und Strg V? Nur weil ein Bereich eingegeben wurde? Also dann kann ich auch noch kurz den Bereich markieren, damit ich kopieren kann. Du musst etwas direkter werden. Wir helfen Dir gerne ...

Lg
Marcus

Wissen ist Macht - es ist aber nicht schlimm nicht alles zu wissen.
Man muss nicht alles wissen - man muss nur wissen wo es steht, oder wo man Hilfe bekommt.
Antworten Top
#4
Hallo

mein Tipp:    kopiere dir beide Dateien in einen Test Ordner, wo du das untere Makro testen und selbst entwickeln kannst.  
Niemals beim Entwickeln im Original arbeiten, du kannst zu leicht Original Daten überschreiben!!

Das untere Makro zeigt wie es im Prinzip geht, es muss aber noch angepasst werden.  In Const Wb2 gehört der Name der Datei2 hinein, mit der Endung: "xls?"  Ausserdem müssen noch die Original Namen der Quell- und Zeil Tabellen angegeben werden. Bei mir steht nur Quelle und Ziel als Text damit du weist was wohin gehört!

Zum kopieren ab Spalte A kann man For Next verwenden, muss entweder die Anzahl der Spalten als Zahl angeben, oder den Index der letzten Spalte, der in der Variablen lSpa steht. Dann sollte das Makro 1:1 von der Quell Tabelle in die richtigen Spalten der Ziel Tabelle kopieren. 

Wenn es nicht auf Anhieb klappt basteln wir solange am Code, bis er einwandfrei funktioniert.  Bitte zuerst NUR mit Kopie Dateien!!

mfg  Gast 123

Code:
Option Explicit      '+.1.2019   Gast 123  für Clever Forum

Const Wb2 = "Dein Workbook 2"    'Name der Ziel Mappe angeben
Const CopyBereich = "A1:A6"      'Bereich der kopiert wird


'Beispiel Makro zum Start ins VBA Vergnügen
'wir basteln uns selbst einen Kopier Code!!


Sub AlleSpalten_kopieren()
Dim ZTab As Worksheet, lSpa As Integer
'Zieltabelle als Objekt angeben, mit Mappen Name
Set ZTab = Workbooks(Wb2).Worksheet("Ziel-Tabelle")

With ThisWorkbook.Worksheets("Quell-Tabelle")
    'letzte Spalte in Quell-Tabelle ermitteln
    lSpa = Cells(1, Column.Count).End(xlToLeft).Column
    Spalten = 100   'oder Anzahl Spalten als Zahl angeben
     
    'Schleife von 1. bis Spalten  (oder letzter Spalte)
    For j = 1 To Spalten  '** oder lSpa !!
      'Bereich A2:A5 wird über Offset verschoben!!
      .Range(CopyBereich).Offset(0, j - 1).Copy
      ZTab.Range("A1").Offset(0, j - 1).PasteSpecial xlPasteAll  'oder xlPasteValues
    Next j

    Application.CutCopyMode = False
End With
End Sub
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste