Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1756to1760
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

Makro zur Kopie eines Worksheets in neue Excel-File funktioniert nicht wunschgemäss

Makro zur Kopie eines Worksheets in neue Excel-File funktioniert nicht wunschgemäss
07.05.2020 12:04:19
Richi
Sali Zäme
Dieses Makro kopiert mir ein einzelnes Worksheet in ein neues File. Das Problem dabei ist, dass ich dieses Makro nur einmal laufen lassen kann um das File zu generieren. Danach muss ich Excel schliessen und wieder öffnen. Ich nehme an, dass dies mit Selection Copy Windows("Mappe1").Activate zu tun hat. Wie müsste der Code aussehen damit ich das Makro mehrere Male laufen lassen kann ohne jeweils vorgängig Excel schliessen zu müssen.
Liebe Gruess
Richi
Sub File_erstellen_SingleLineView()                                                         ' _
Kopie der Single Line View erstellen f?r Weiterverbreitung
Sheets("Single Line View").Select
Sheets("Single Line View").Copy
Windows("PPS_V_14_1 - Standzeiten 2020.xlsm").Activate
Range("A1:A700").Select
Range("A3:A700").Select
Selection.Copy
Windows("Mappe1").Activate
Windows("PPS_V_14_1 - Standzeiten 2020.xlsm").Activate
Windows("Mappe1").Activate
Range("A3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Windows("PPS_V_14_1 - Standzeiten 2020.xlsm").Activate
Range("B6:NZ700").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Mappe1").Activate
Range("B6").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("A1").Select
Application.CutCopyMode = False
ActiveWorkbook.SaveAs Filename:= _
"\\ifc1.ifr.intra2.admin.ch\Shares\Organisation\RUAGH-RUAG-RM-RMH\PPS\20_PPS Tool\Pr? _
sentation Single Line View\Standzeiten\PPS-Tool Standzeiten_Version_" & Date & "_" & Year(Date)  _
& "_KW_" & Calendar_Week(Date) & ".xlsx", AccessMode:=xlShared, FileFormat:= _
xlOpenXMLWorkbook, CreateBackup:=False
Windows("PPS_V_14_1 - Standzeiten 2020.xlsm").Activate
Application.CutCopyMode = False                                                           '  _
_
Zwischenspeicher l?schen
Range("B7").Select
End Sub

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro zur Kopie eines Worksheets in neue Excel-File funktioniert nicht wunschgemäss
07.05.2020 19:36:18
fcs
Hallo Richi,
wenn mehrer Dateien/Tabellenblätter mehrfach in Aktionen angesteuert werden müssen, dann ist es ratsam mit Objektvariablen zu arbeiten, denn die entsprechenden Objekte zum passenden Zeitpunkt zugewiesen werden.
Dein Makro läuft in einen Fehler weil Excel beim nächsten Kopiervorgang der neuen mappe einen anderen vorläufigen Namen gibt - Nummer wird hochgezählt.
Durch das Arbeiten mit Objektvariablen kann man dieses Problem umschiffen.
Der weitere Vorteil bei Verwendung von Objektvariablen: du musst nicht zwischen den Mappen hin- und herschalten um zu kopieren. Du kannst direkt kopieren.
Weiteres Problem können auftreten.
Wenn die neu erstellte Mappe nicht geschlossen wird dann wird Excel einen Fehler anzeigen.
Wenn du das Makro 2 mal am Tag ausführst, dann wird Excel Fragen ob es die datei überschreiben soll. Überschreiben oder anderer Name.
Hab dein Makro mal in die Richtungt angepasst.
LG
Franz
Sub File_erstellen_SingleLineView()                                                         ' _
Kopie der Single Line View erstellen für Weiterverbreitung
Dim wkb_Q As Workbook
Dim wks_Q As Worksheet
Dim wkb_Z As Workbook
Dim wks_Z As Worksheet
Dim sFilename As String
Set wkb_Q = ActiveWorkbook ' Datei "PPS_V_14_1 - Standzeiten 2020.xlsm"
Set wks_Q = ActiveSheet 'Tabellenblatt mit den zu kopierenden daten
'Neue Arbeitsmappe anlegen
wkb_Q.Sheets("Single Line View").Copy
Set wkb_Z = ActiveWorkbook
wks_Q.Range("A3:A700").Copy
wks_Z.Range("A3").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
wks_Q.Range("B6:NZ700").Copy
wks_Z.Range("B6").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Range("A1").Select
Application.CutCopyMode = False 'Zwischenspeicher löschen
sFilename = "\\ifc1.ifr.intra2.admin.ch\Shares\Organisation\RUAGH-RUAG-RM-RMH\" _
& "PPS\20_PPS Tool\Prsentation Single Line View\Standzeiten\" _
& "PPS-Tool Standzeiten_Version_" & Date & "_" & Year(Date) & "_KW_" _
& Calendar_Week(Date) & ".xlsx" _
'Vorschlag für Versionsdatum: Format(Date,"YYYY-MM-DD") statt nur Date
Application.DisplayAlerts = False 'vorhandene Datei kann ohne Rückfrage _
überschrieben werden ?
wkb_Z.SaveAs Filename:=sFilename, AccessMode:=xlShared, FileFormat:= _
xlOpenXMLWorkbook, CreateBackup:=False
Application.DisplayAlerts = True 'Einstellung zurücksetzen
'Erstellte Mappe schliessen - ?
wkb_Z.Close savechanges:=False
wkb_Q.Activate
Range("B7").Select
End Sub

Anzeige
AW: Makro zur Kopie eines Worksheets in neue Excel-File funktioniert nicht wunschgemäss
08.05.2020 12:36:03
Richi
Danke Franz
Beim Step:
wks_Z.Range("A3").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
erhalte Fehlermeldung Laufzeitfehler 91: Objektvariable oder With-Blockvariable nicht festgelegt.
Hast du hierzu die Lösung?
Gruss
Richi
AW: Makro zur Kopie eines Worksheets in neue Excel-File funktioniert nicht wunschgemäss
08.05.2020 13:23:27
Richi
Code kann im Haltemodus nicht ausgeführt werden ist eine weitere Fehlermeldung
AW: Makro zur Kopie eines Worksheets in neue Excel-File funktioniert nicht wunschgemäss
11.05.2020 16:11:49
fcs
Hallo Richi,
da hatte ich bei der Makroerstellung im Blindflug eine Zeile vergessen, in der das Zieltabellenblatt der Objektvariablen zugewiesen wird.
Die Meldung "Makro kann im Haltemodeus ... " kannst du einfach mit OK mehrmals bestätigen. Grund ? - scheint irgend eine lästige Excelmake zu sein, die bei mir auch gelegentlich auftritt.LG
Franz
Sub File_erstellen_SingleLineView()
'Kopie der Single Line View erstellen für Weiterverbreitung
Dim wkb_Q As Workbook
Dim wks_Q As Worksheet
Dim wkb_Z As Workbook
Dim wks_Z As Worksheet
Dim sFilename As String
Set wkb_Q = ActiveWorkbook ' Datei "PPS_V_14_1 - Standzeiten 2020.xlsm"
Set wks_Q = ActiveSheet 'Tabellenblatt mit den zu kopierenden daten
'Neue Arbeitsmappe anlegen
wkb_Q.Sheets("Single Line View").Copy
Set wkb_Z = ActiveWorkbook
Set wks_Z = wkb_Z.Worksheets(1)                    'vergessene Zeile
wks_Q.Range("A3:A700").Copy
wks_Z.Range("A3").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
wks_Q.Range("B6:NZ700").Copy
wks_Z.Range("B6").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Range("A1").Select
Application.CutCopyMode = False 'Zwischenspeicher löschen
sFilename = "\\ifc1.ifr.intra2.admin.ch\Shares\Organisation\RUAGH-RUAG-RM-RMH\" _
& "PPS\20_PPS Tool\Prsentation Single Line View\Standzeiten\" _
& "PPS-Tool Standzeiten_Version_" & Date & "_" & Year(Date) & "_KW_" _
& Calendar_Week(Date) & ".xlsx" _
'Vorschlag für Versionsdatum: Format(Date,"YYYY-MM-DD") statt nur Date
Application.DisplayAlerts = False 'vorhandene Datei kann ohne Rückfrage _
überschrieben werden ?
wkb_Z.SaveAs Filename:=sFilename, AccessMode:=xlShared, FileFormat:= _
xlOpenXMLWorkbook, CreateBackup:=False
Application.DisplayAlerts = True 'Einstellung zurücksetzen
'Erstellte Mappe schliessen - ?
wkb_Z.Close savechanges:=False
wkb_Q.Activate
Range("B7").Select
End Sub

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige