Blatt in ein "temporäres" Excel-Sheet kopieren

Bild

Betrifft: Blatt in ein "temporäres" Excel-Sheet kopieren
von: worm77
Geschrieben am: 18.08.2015 17:00:38

Hallo zusammen
Ich habe ein Excel-Sheet, welches mir eine Auswertung erstellt und diese in ein neues Workbook schreibt.
Soweit so gut...
Nun möchte ich aber, dass das Titelblatt, vom ausführenden Workbook in das neue kopiert...
Dieses hat natürlich noch keinen Namen (ausser Book1, Book2, usw.).
Wie kann ich das Blatt vom einen ins Andere Workbook kopieren?
Folgender Code funktioniert nicht:


 ...
    Windows("CPUStatistik.xlsm").Activate
    Sheets("Mastertable").Select
    Range("E24").Select
    ReportName = ActiveCell.Value
    
    Sheets("TITLE").Select
    ActiveSheet.Copy Before:=Workbooks("Book5").Sheets(1)
 ...
 
Wäre euch für eure Hilfe sehr dankbar!
Gruss Rolf

Bild

Betrifft: AW: Blatt in ein "temporäres" Excel-Sheet kopieren
von: Daniel
Geschrieben am: 18.08.2015 17:32:44
Hi
wenn du mit mehreren Workbooks oder Worksheets arbeitest, sollest du grundsätzlich auf das Selektieren und Aktivieren verzichten und die Zellen mit Angabe von Workbook-Worksheet-Zelle direkt ansprechen.
das Selektieren und Aktivieren ist dem Arbeiten mit der Maus geschuldet, welches wir Anwender machen und was der Recorder dann so aufzeichen muss.
Aber in Makros braucht man das nicht, hier kann man direkt referenzieren.
das sieht dann so aus:

    Windows("CPUStatistik.xlsm").Activate
    Sheets("Mastertable").Select
    Range("E24").Select
    ReportName = ActiveCell.Value

wird zu
ReportName = Worksbooks("CPUStatistik.xlsm").Sheets("Mastertabelle").Range("E24").value

das ist nicht nur kürzer und übersichtlicher, sondern auch auch viel schneller.
weiterhin hilft dir folgendes:
ThisWorkbook ist immer das Workbook, welches das Makro enthält.
damit kannst du dich immer auf die eigene Datei referenzieren, ohne den Namen benutzen zu müssen.
ActiveWorkbook ist immer da aktive Workbook. Das ist zunächst auch mal wahrscheinlich das Workbook, von dem du das makro startest und damit gleich ThisWorkbook.
sobald du aber ein neues Workbook hinzufügst, wird das neue Workbook das ActiveWorkbook.
somit kannst du dann über ThisWorkobook und AcitveWorkbook zwischen alter und neuer Datei unterscheien, ohne dich um die Namen kümmern zu müssen.
dh mit folgendem Code kannst du eine neue Datei erstellen und das Blatt "Titel" aus der alten in die neue Datei kopieren:
Workbooks.Add
Thisworkbook.Sheetr("TITLE").Copy Before:=ActiveWorkbook.Sheets(1)

wichitg ist nur, dass du selber nicht aktivierst und selektierst, damit das ActiveWorkbook immer das gleiche, neu hinzugefügte bleibt, denn sonst kommst du schnell durcheinander.
Gruß Daniel

Bild

Betrifft: AW: Blatt in ein "temporäres" Excel-Sheet kopieren
von: worm77
Geschrieben am: 19.08.2015 14:06:38
Hoi Daniel
Vielen herzlichen Dank!
Dein Beitrag bringt mich weiter, als nur eine Antwort auf meine Frage.
So wird mein Code wirklich viel übersichtlicher und macht einen professionelleren Eindruck :-)
Gruss Rolf

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Blatt in ein "temporäres" Excel-Sheet kopieren"