Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
1768to1772
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

workbook add: wechsel wb

workbook add: wechsel wb
08.07.2020 13:49:01
Günter
Hallo,
ich rufe in einem Makro ein weiteres auf, in dem ich mit workbook.add eine xlsx-Datei anlege.
Erst beim Speichern lege ich den Dateinamen aus deiner Kombination aus einer festen Namen und Datum und Uhrzeit (z.B. Summary_20200708_133755) fest.
Ich möchte vorher Daten aus der Ursprungsdatei in das neue workbook kopieren.
Wie kann ich zwischen den workbooks wechseln?
Geht das mit Windows.activate, wobei ich mit der Syntax nicht klarkomme.
Denn ich habe dem zweiten workbook ja noch keinen Namen gegeben.
Oder muss ich erst das neue workbook speichern und dann im zweiten Schritt die Datenbefüllung vornehmen, was dann mich wieder vor dem Problem stellt, das ich den Namen des neuen Workbooks ermitteln muss.
Wenn ich der Variablen strName trauen kann, befinde ich mich immer in der Ursprungsdatei, aus der ich das Makro aufrufe.
Ich habe mich hoffentlich einigermaßen verständlich ausgedrückt"
Sub export()
Application.SheetsInNewWorkbook = 7
Workbooks.Add
Sheets("Tabelle1").Select
Sheets("Tabelle1").Name = "Summary"
'Registerlasche einfärben (blau)
Sheets("Summary").Tab.ColorIndex = 8
Sheets("Tabelle2").Select
Sheets("Tabelle2").Name = "Ref_II_B_1"
'Registerlasche einfärben (gelb)
Sheets("Ref_II_B_1").Tab.ColorIndex = 6
Sheets("Tabelle3").Select
Sheets("Tabelle3").Name = "Ref_II_B_2"
'Registerlasche einfärben (gelb)
Sheets("Ref_II_B_2").Tab.ColorIndex = 6
Sheets("Tabelle4").Select
Sheets("Tabelle4").Name = "Ref_II_B_3"
'Registerlasche einfärben (gelb)
Sheets("Ref_II_B_3").Tab.ColorIndex = 6
Sheets("Tabelle5").Select
Sheets("Tabelle5").Name = "Ref_II_B_4"
'Registerlasche einfärben (gelb)
Sheets("Ref_II_B_4").Tab.ColorIndex = 6
Sheets("Tabelle6").Select
Sheets("Tabelle6").Name = "Ref_II_B_5"
'Registerlasche einfärben (gelb)
Sheets("Ref_II_B_5").Tab.ColorIndex = 6
Sheets("Tabelle7").Select
Sheets("Tabelle7").Name = "Ref_II_B_6"
'Registerlasche einfärben (gelb)
Sheets("Ref_II_B_6").Tab.ColorIndex = 6
Sheets("Summary").Select
Dim datname As String
strpfad = ThisWorkbook.Path
datname = strpfad & "\Management_Summary_" & Format(Date, "YYYYMMDD") & "_" & Format(Time, " _
hhmmss") & ".xlsx"
MsgBox datname
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs datname
ActiveWorkbook.Close savechanges:=True
Application.DisplayAlerts = True
End Sub

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: workbook add: wechsel wb
08.07.2020 14:00:50
peterk
Hallo
z.B.
ActiveWorkbook.Worksheets("Summary").Cells(1,1) = ThisWorkbook.WorkSheets("BlaBlaBla").Cells(1,2)
AW: workbook add: wechsel wb
08.07.2020 14:03:29
Daniel
Hi
wenn du kein Workbook vor dem Sheets(…) angibst, arbeitest du immer im Aktiven Workbook.
nach Workbooks.Add ist das neu hinzugefügte Workbook das Aktive Workbook.
das Workbook, welches den Code enthält, kannst du immer über THISWORKBOOK ansprechen.
ich würde hier folgendes tun:
1. das neu hinzugefügte Workbook einer Variablen zuweisen
2. im Code immer das jeweilige Workbook mit angeben, dh entweder die Variable oder ThisWorkbook jedem Sheet(…). voranstellen
Sub export()
dim NeuesWB as workbook
set NeuesWB = Workbooks.Add
NeuesWB.Sheets("Tabelle1").Name = "Summary"
'Registerlasche einfärben (blau)
NeuesWB.Sheets("Summary").Tab.ColorIndex = 8
NeuesWB.Sheets("Tabelle2").Name = "Ref_II_B_1"
'Registerlasche einfärben (gelb)
NeuesWB.Sheets("Ref_II_B_1").Tab.ColorIndex = 6
uws.
NeuesWB.SaveAs datname
NeuesWB.Close
End Sub
auf diese Weise kannst du die neue Datei immer zielgerichtet ansprechen und es spielt keine Rolle, welche Datei gerade aktiv ist.
wobei du hier auch mit einer Schleife arbeiten kannst, wenn die Blattnamen bis auf die Zählnummer immer gleich sind, dann kannst du so alle Blätter umbenennen und färben:
…
NeuesWB.sheets(1).Name = "Summary"
NeuesWB.Sheets(1).Tab.ColorIndex = 8
for i = 2 to 7
NeuesWB.Sheets(i).Name = "Ref_II_B_" & i - 1
NeuesWB.Sheets(i).Tab.ColorIndex = 6
Next
...

Gruß Daniel
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige