Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1840to1844
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 mehrere Sheets kopieren

Daten mehrere Sheets kopieren
15.08.2021 14:57:42
philipp
Hallo zusammen,
ich muss eine Datei neu erstellen und muss dazu aus mehreren Tabellen Jan-Juli einen Bereich kopieren
und diese Daten in die neue Datei einfügen.
Ich habe mal 2 Makros erstellt, 1 kopieren und einmal einfügen.

Sub Alle_Bereich_kopieren_mit_strg_k()
'Sheet("Jan 21").Select
'Sheet("Feb 21").Select
'Sheet("Mrz 21").Select
'Sheet("Apr 21").Select
'Sheet("Mai 21").Select
'Sheet("Jun 21").Select
'Sheet("Jul 21").Select
ActiveSheet.Application.ScreenUpdating = False
ActiveSheet.Range("D14:G44").Select
Selection.Copy
ActiveSheet.Application.ScreenUpdating = True
End Sub

Sub Alle_Bereich_kopierte_einsetzen_strg_e()
ActiveSheet.Unprotect (getStrPasswort)
ActiveSheet.Range("D14").Select
ActiveSheet.Paste
Application.CutCopyMode = False
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios _
:=True, Password:=getStrPasswort                                      'schützen
End Sub
wie könnte man das so hinbekommen das man NUR einmal für die Monate Jan bis Jul kopiert und in die
neue Datei auch in den Monaten einfügt.
Würde mich um Untstützung freuen,
danke im Voraus
mfg philipp b

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

Betreff
Datum
Anwender
Anzeige
mit einer Schleife.....
15.08.2021 15:17:00
ralf_b
bist du besser beraten. Deinen Namen kenne ich schon, also warst du schon öfter mal im Forum unterwegs und weist wie es läuft.
Als Vorarbeit hätte ich von dir mehr erwartet.
Ein Schleife über die Worksheets, eine Referenz auf die neue Mappe und los gehts.
AW: mit einer Schleife.....
15.08.2021 16:27:40
philipp
Hallo Ralf,
habe mal dies eingesetzt, das Makro befindet sich in der Datei wo die Daten rein sollen:
Habe aber die alte Datei offen.

Sub Neu_Alle_Bereich_kopieren_mit_strg_k()
Dim i As Integer
For i = 1 To 7
Worksheets(i).Range("D14:G44").Copy
Next
End Sub

Sub Neu_Alle_Bereich_kopierte_einsetzen_strg_e()
Dim i As Integer
For i = 1 To 7
Worksheets(i).Range("D14").Paste
Next
End Sub
Fehlermeldung beim einfügen Nr.438
mfg
philipp b
Anzeige
AW: mit einer Schleife.....
15.08.2021 17:01:11
ralf_b
Ok,
aber du möchtest trotzdem das Kopieren und Einfügen in separaten Makros umsetzen, die du von Hand der Reihe nach betätigen möchtest.
Meine Vorschlag ging in Richtung ein Makro für Alles.
Das Makro befindet sich in der Zieldatei, somit benötigst du ein Objekt das auf die Quelldatei zielt.
dim wb as Workbook
set wb = workbooks(Name des Quellworkbooks)
damit kannst du dann auf die Bereiche zugreifen
wb.worksheets("Juli").Range(Bereich der Zellen die kopiert werden sollen).copy
Range(Zielbereich wohin eingefügt werden soll).paste
Habe selbst... -)
16.08.2021 10:06:47
philipp
Guten Morgen Ralf,
habe mal aufgezeichnet und so ein Makro erstellt, siehe:
Dim Datei As String
Dim DateiVon As String
Datei = "Std _MENÜ 2021.xlsm"
'------ hier namen ändern ------------------------
DateiVon = "bis_14_8_21_Std Musterl, Willi 2021.xlsm"
Workbooks(Datei).Activate
Workbooks(DateiVon).Activate
Sheets("Jan 21").Select
ActiveSheet.Range("D14").Select
Application.Run _
"'Std _MENÜ 2021.xlsm'!Alle_Bereich_kopieren_mit_strg_k"
Workbooks(Datei).Activate
Sheets("Jan 21").Select
ActiveSheet.Paste
Application.CutCopyMode = False
ActiveSheet.Range("D14").Select
u.s.w.
mfg
philipp b
Anzeige
Doch noch Nachfrage, schleife...
16.08.2021 12:48:50
philipp
Hallo zusammen,
wollte mal eine Schleife erstellen, leider Fehler.

Sub test()
Dim i As Integer
Dim Datei As String                 ' Name der zu öffnenden Datei
Dim DateiVon As String
Datei = "Std  _MENÜ  2021.xlsm"
'------ hier namen ändern aus der die Daten kopiert werden ------------------------
DateiVon = "bis_14_8_21_Std Musterl, Willi 2021.xlsm"
Workbooks(DateiVon).Activate
'- von Tabelle 1 bis 7
For i = 1 To 7     'Selection.Areas'.Count
With Selection.Areas(i).Range("D14:H44").Select
.Copy Destination:=Worksheets(Datei).Range(.Address)
End With
Next
End Sub
es wird ein falscher Bereich, der kopiert werden soll selectiert.
bleibt hier stehen:
.Copy Destination:=Worksheets(Datei).Range(.Address)
Laufzeitfehler 424 Objekt erforderlich.
mfg philipp b
Anzeige
AW: Doch noch Nachfrage, schleife...ABER
16.08.2021 13:40:56
philipp
Hallo zusammen,
es fehlt mir nur das jetzt die nächste Tabelle also Febr. 21 der DateiVon = "bis_14_8_21_Std Musterl, Willi 2021.xlsm"
in die "Std _MENÜ 2021.xlsm" auch hier in Febr. 21 kopiert wird.
Dim i, j As Integer
Dim Datei As String
Dim DateiVon As String
Datei = "Std _MENÜ 2021.xlsm"
'------ hier namen ändern, aus der die Daten kopiert werden sollen ------------------------
DateiVon = "bis_14_8_21_Std Dietel, Sven 2021.xlsm"
Workbooks(DateiVon).Activate
For i = 1 To 7
Workbooks(DateiVon).Activate
j = i + 1
Range("D14").Select
Range("D14:H44").Select
Selection.Copy
Workbooks(Datei).Activate
'hier nächste Tabelle
Range("D14").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Next
End Sub
gruß philipp b
Anzeige
AW: Doch noch Nachfrage, schleife...ABER
16.08.2021 18:31:26
ralf_b

Sub ssss()
Workbooks(DateiVon).Activate                  'unnötig
For i = 1 To 7
Workbooks(DateiVon).Activate              'unnötig
j = i + 1                                 'unnötig da nicht benutzt
Range("D14").Select                       'unnötig
Range("D14:H44").Select                   'unnötig
Selection.Copy
Workbooks(Datei).Activate                 'unnötig
'hier nächste Tabelle
Range("D14").Select                        'unnötig
ActiveSheet.Paste
Application.CutCopyMode = False
Next
End Sub
Sub ssss()
For i = 1 To 7
Workbooks(DateiVon).Range("D14:H44").Copy Destination:=Workbooks(Datei).Range("D14")
Application.CutCopyMode = False
Next
End Sub
Da die Einfügekriterien mir hier nicht klar sind und wofür der Schleifenzähler gebraucht wird, kann ich nicht mehr als das liefern.
Gibt es mehrere tabellen in einem Blatt oder hast du mehrere Blätter mit je einer Tabelle immer an der selben Postition(D14:H44) ?
Anzeige
AW: Doch noch Nachfrage, schleife...ABER
16.08.2021 19:11:26
philipp
Hallo Ralf,
herzlichen Dank für das Makro !
Hatte bisher dieses Makro und lief auch !

Sub Alle_Daten_kopieren_7_Monate()
Dim i As Integer
Dim Datei As String
Dim DateiVon As String
Datei = "Std  _MENÜ  2021.xlsm"
'------ hier namen ändern ------------------------
DateiVon = "bis_14_8_21_Std  Muster, W  2021.xlsm"
For i = 1 To 7
Workbooks(DateiVon).Activate
Sheets(i).Select
Range("D14").Select
Range("D14:H44").Select
Selection.Copy
Workbooks(Datei).Activate
Sheets(i).Select
Range("D14").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Workbooks(DateiVon).Activate
Sheets(i + 1).Select
Range("D14").Select
Range("D14:H44").Select
Selection.Copy
Workbooks(Datei).Activate
Sheets(i + 1).Select
Range("D14").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Next
End Sub
Bei Dir kommt Fehlermeldung:
Dim i As Integer
Dim Datei As String
Dim DateiVon As String
Datei = "Std _MENÜ 2021.xlsm"
'------ hier namen ändern ------------------------
DateiVon = "bis_14_8_21_Std Muster, W 2021.xlsm"
Workbooks(DateiVon).Activate
For i = 1 To 7
Workbooks(DateiVon).Range("D14:H44").Copy Destination:=Workbooks(Datei).Range("D14")
Application.CutCopyMode = False
Next
Laufzeitfehler 438 Unterstützt diese ...
mfg
philipp b
Anzeige
AW: Doch noch Nachfrage, schleife...ABER
16.08.2021 19:40:19
ralf_b
ich komme mir grad etwas verarscht vor. Aber is nicht schlimm. Ich brauch ja kein Makro.
Du erwartest doch nicht allen Ernstes das ich mir Dateien erstelle, um deine Makrovorgaben nachzubauen.
Es fehlten noch die Blattangaben. Wenn jetzt ein Fehler kommt, dann ist das so.

Sub Alle_Daten_kopieren_7_Monate()
Dim i As Integer
Dim Datei As String
Dim DateiVon As String
Datei = "Std  _MENÜ  2021.xlsm"
'------ hier namen ändern ------------------------
DateiVon = "bis_14_8_21_Std  Muster, W  2021.xlsm"
For i = 1 To 7
With Workbooks(DateiVon).Sheets(i).Range("D14:H44")
.Copy Workbooks(Datei).Sheets(i).Range("D14")
End With
Application.CutCopyMode = False
Next
End Sub

Anzeige
Wieso verarscht ? na ja -)
16.08.2021 19:59:49
philipp
Hallo Ralf,
ich komme mir grad etwas verarscht vor ?
Im übrigen habe ich die Namen hinterlegt !
gruß
philipp b
Namen?
17.08.2021 07:30:52
ralf_b
Ich weis zwar nicht was DU meinst, aber ich bezog mich auf deine Codevorgabe. Wenn man wegen Fehler im Code als Antwort einen anderen Code vorgesetzt bekommt, dann kommt man sich verarscht vor.
Den Hinweis mit "die Namen" deute ich so, das du mehr als einen Namen hier nutzt. Traurig!
Danke Ralf, es funktioniert !!! --))
17.08.2021 10:29:19
philipp
Guten Morgen Ralf,
hatte wohl einen Fehler gemacht, es funktioniert !
mfg philipp b

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige