Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1780to1784
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Daten in neue Mappe kopieren

Daten in neue Mappe kopieren
11.09.2020 22:46:48
xtian
Guten Abend,
ich benötige Hilfe bei einem Makro. Das Makro läuft in der Excel-Datei Test-1.xlsm und erstellt dann eine neue
Excel-Datei mit den Namen Mappe-1.xlsx.
Das Makro soll eine Range aus der Excel-Datei Test-1.xlsm kopieren und diese Range in der neuen Excel-Datei
Mappe-1.xlsx einfügen. Leider macht das Makro nicht das was es soll. Vielleicht findet ja jemand den Fehler.
Sub Neu()
Workbooks.Add
With Tabelle1
Range("A1:K1000").Font.Name = "Arial"
Range("A1:K1000").Font.Size = 9
End With
With Workbooks("Test-1")
Sheets(1).Range("A1:K" & Cells(Rows.Count, 2).End(xlUp).Row).Select
'With ThisWorkbook
'Sheets(1).Range("A2").PasteSpecial Paste:=xlPasteValues
'Application.CutCopyMode = False
'End With
End With
End Sub
Viele Grüße
Christian

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten in neue Mappe kopieren
12.09.2020 00:17:37
Marc
Hallo Christian,
ich wer aus deinem Code nicht so ganz schlau, hab aber mal mein bestes gegeben. Kannst die Variablen natürlich noch umbenennen. BTW 99% der Zeit ist .Selection, .Copy und .Paste überflüssig.
Sub Neu()
Dim zeilenlänge As Long 'legt die Zeilenlänge des Ausschnitts fest
Dim ausschnitt As Range 'legt die Range letztendlich fest
Workbooks.Add
With Tabelle1
Range("A1:K1000").Font.Name = "Arial"
Range("A1:K1000").Font.Size = 9
End With
With ThisWorkbook.Worksheets(1)
zeilenlänge = .Cells(Rows.Count, 11).End(xlUp).Row
Set ausschnitt = .Range(.Cells(1, 1), .Cells(zeilenlänge, 11))
With Workbooks("Mappe-1").Worksheets(1)
.Range(.Cells(1, 1), .Cells(zeilenlänge, 11)).Value = ausschnitt.Value
End With
End With
End Sub
Falls du die Zeilenlänge aus Spalte B wirklich meinst, obwohl du in deinem Makro K geschrieben hast, dann ändere in meinem Makro einfach jede 11 in 2 ab.
Gruß Marc
Anzeige
AW: Daten in neue Mappe kopieren
12.09.2020 12:16:10
xtian
Hallo Marc,
vielen Dank für deine Hilfe. Eventuell habe ich mich etwas unverständlich ausgedrückt.
Mir geht es darum, wie die Excel-Dateien angesprochen werden.
Test-1 ist die Excel-Datei in der das Makro läuft. Wie spreche ich diese an?
With ThisWorkbook funktioniert leider nicht.
Mappe-1 ist die neue Excel-Datei die zuvor aus dem Makro erstellt wird. Wie spreche
ich diese an? With Workbooks("Mappe-1") funktioniert leider nicht.
Viele Grüße
Christian
AW: Daten in neue Mappe kopieren
12.09.2020 13:24:42
Marc
Hallo Christian,
das ist nicht möglich. War getestet. Wo hast du das Makro denn gespeichert?
Gruß Marc
Anzeige
AW: Daten in neue Mappe kopieren
12.09.2020 13:30:02
xtian
Hallo Marc,
das Makro befindet sich im Modul in der Excel-Datei Test-1. Es ist nicht möglich in
der Excel-Datei Test-1 über ein Makro eine neue Excel-Datei zu öffnen und dann Zellen
von der Excel-Datei Test-1 in die neu geöffnete Excel-Datei zu kopieren? Sicher?
Gruß
Christian
AW: Daten in neue Mappe kopieren
12.09.2020 13:35:39
Marc
Hallo,
doch, mit meinem Makro ist das möglich. War ja wie gesagt getestet :D
Mit "ThisWorkbook" sprichst du IMMER das Workbook an, in dem sich der Code befindet.
Mit Workbooks("Name") sprichst du immer das Workbook an, welches namentlich mit dem im String übereinstimmt.
Gruß Marc
Anzeige
AW: Daten in neue Mappe kopieren
12.09.2020 13:57:20
xtian
Hallo Marc,
Sorry, aber jetzt verstehe ich hier wirklich nichts mehr. Habe Dir mein Ursprungs
Marko kommentiert.
Sub Neu()
Workbooks.Add
With Tabelle1
Range("A1:K1000").Font.Name = "Arial"
Range("A1:K1000").Font.Size = 9
End With
>>>neues Workbook wird angelegt. Schriftart + Größe wird für Range("A1:K1000") festgelegt.
Diese Workbook heißt dann von Excel automatisch Mappe1.xlsx.
With Workbooks("Test-1") '
Sheets(1).Range("A1:K" & Cells(Rows.Count, 2).End(xlUp).Row).copy
>>>In dem Workbook wo das Makro im Modul läuft soll jetzt geprüft werden, bis zur welcher
Zeile in Spalte B der letzte Text steht und dann die Spalten A-K + bis zur letzten Zeile
kopieren
'With ThisWorkbook
'Sheets(1).Range("A2").PasteSpecial Paste:=xlPasteValues
'Application.CutCopyMode = False
'End With
>>> In dem Workbook welches siehe oben neu erstellt wurde, sollen die Daten die zuvor
kopiert wurden jetzt ab Zelle A2 eingefügt werden.
End With
End Sub
Hilft das weiter? Viele Grüße Christian
Anzeige
AW: Daten in neue Mappe kopieren
12.09.2020 15:41:03
Marc
Hallo Christian,
ich erklär dir auch mal meinen Code:

Sub Neu()
Dim zeilenlänge As Long 'legt die Zeilenlänge des Ausschnitts fest
Dim ausschnitt As Range 'legt die Range letztendlich fest
'Fügt ein neues Workbook ein und setzt die Schriftart
Workbooks.Add
Range("A1:K1000").Font.Name = "Arial"
Range("A1:K1000").Font.Size = 9
'Zeilenlänge aus Test-1 lesen und den Ausschnitt festlegen (der in deinem Bsp kopiert wird, _
nur .Copy ist überflüssig)
With ThisWorkbook.Worksheets(1)
zeilenlänge = .Cells(Rows.Count, 11).End(xlUp).Row
Set ausschnitt = .Range(.Cells(1, 1), .Cells(zeilenlänge, 2))
'Alles in Mappe-1 übertragen
With Workbooks("Mappe-1").Worksheets(1)
.Range(.Cells(1, 1), .Cells(zeilenlänge, 2)).Value = ausschnitt.Value
End With
End With
End Sub

Nochmal btw du verwendest dein With nicht richtig... Wenn du With verwendest musst du danach mit ".Range" und nicht mit "Range" fortfahren. Der "." ist sehr wichtig!
Also was ich dir sagen kann ist, dass mein Makro so funktionieren muss. Hat es bei mir auch.
Gruß Marc
Anzeige
AW: Daten in neue Mappe kopieren
12.09.2020 18:33:02
xtian
Ok, danke Marc.
AW: Daten in neue Mappe kopieren
12.09.2020 20:30:02
Marc
Hallo,
hatte noch einen Fehler beim 2.
Sub Neu()
Dim zeilenlänge As Long 'legt die Zeilenlänge des Ausschnitts fest
Dim ausschnitt As Range 'legt die Range letztendlich fest
Workbooks.Add
With Tabelle1
Range("A1:K1000").Font.Name = "Arial"
Range("A1:K1000").Font.Size = 9
End With
With ThisWorkbook.Worksheets(1)
zeilenlänge = .Cells(Rows.Count, 2).End(xlUp).Row
Set ausschnitt = .Range(.Cells(1, 1), .Cells(zeilenlänge, 11))
With Workbooks("Mappe-1").Worksheets(1)
.Range(.Cells(1, 1), .Cells(zeilenlänge, 11)).Value = ausschnitt.Value
End With
End With
End Sub
Gruß Marc
Anzeige

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige