Microsoft Excel

Herbers Excel/VBA-Archiv

Worksheet.activate bei einer dynamischen .xlsm


Betrifft: Worksheet.activate bei einer dynamischen .xlsm von: Kai
Geschrieben am: 27.11.2017 17:51:27

Hallo Excel-Cracks,

ich muss aus einer definierten Quelldatei Daten in eine dynamische Zieldatei kopieren (d.h. meine Zieldatei hat immer einen anderen Namen). Das Makro muss aber aus der dynamischen Zieldatei starten.

Per Makro-Rekorder spuckt mir Excel die untere Lösung vor. Das hilft mit aber nicht bei einer dynamischen Zieldatei.

Hatte mich schon daran probiert, einfach ein dynamisches Workbook zu definierren. Das hat aber noch nicht richtig funktioniert und mein Arbeitskollege hat es versehentlich gelöscht... :-(



   Windows("Quelldatei.xls").Activate
    ActiveWindow.SmallScroll Down:=-123
    Range("A2").Select
    Selection.Copy
    Windows("dynamische_Zieldatei.xlsm").Activate
    Range("AD2:AG3").Select
    ActiveSheet.Paste

Habt ihr eine Idee?
Kai

  

Betrifft: AW: Grundlagen von: Fennek
Geschrieben am: 27.11.2017 18:00:55

Hallo,

es wird übersichtlicher, wenn man ordentlich referenziert, z.B.

 
dim WBQ as workbook
dim WBZ as workbook
set WBQ = workbook("Quelldatei.xls") 'hier kann der Name variabel gemacht werden
set WBZ = workbook("dynamische_Zieldatei.xlsx")
wbq.sheets(1).range("A2").copy wbz.sheets(1).range("AD2:AD2")
mfg

(hattest du vor einigen Tagen schon eine Frage gestellt)


  

Betrifft: AW: Worksheet.activate bei einer dynamischen .xlsm von: Daniel
Geschrieben am: 27.11.2017 18:24:17

Hi

wenn das Makro in der Zieldatei liegt, so kannst du es über THISWORKBOOK ansprechen

Workbooks("Quelldatei.xls").Sheets(???).RAnge("A2").Copy
ThisWorkbook.Sheets(???).Range("AD2:AG").PasteSpecial xlpasteall
liegt das Makro in einer dritten Datei (also weder in der Ziel-, noch in der Quelldatei), aber die Zieldatei ist bei Makrostart die atkive Datei und , dann kannst du diese Datei über ACTIVEWORKBOOK die Datei bzw ACTIVESHEET das jeweilige Sheet direkt ansprechen.
Du darfst nur zwischen drin keine andere Datei selektieren (was aber auch nicht notwendig ist):
Workbooks("Quelldatei.xls").Sheets(???).RAnge("A2").Copy
Activesheet.Range("AD2:AG").PasteSpecial xlpasteall
die Sheetnamen bei ??? bitte noch ergänzen

Gruß Daniel


Beiträge aus den Excel-Beispielen zum Thema "Worksheet.activate bei einer dynamischen .xlsm"