1.6k Aufrufe
Gefragt in Tabellenkalkulation von
Hallo,
ich habe ein Makro aufgezeichnet, bei dem aus drei verschiedenen Dateien ( Januar09.xls, Januar09_3.xls, Januar09_02.xls.) Zahlenwerte in die Datei 01.09.xls eingefügt werden.Um nicht jeden Monat die Bezeichnung der Datei zu ändern, frage ich mal bei den Experten: kann man "activate" ersetzen mit einem einfachen code ? Die einzufügenden Bereiche sind aber nicht gleich. Das Makro sieht so aus:
Windows("Januar09_2.xls").Activate
Range("B12:M2988").Select
Selection.Copy
Windows("01.09.xls").Activate
Range("V12").Select
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False 'Werte und Zahlenformate kopieren
Range("A11").Select
Windows("Januar09_2.xls").Activate
Range("A4").Select
Application.CutCopyMode = False
ActiveWorkbook.Close 'Schließen "Januar09_2.xls"
Sheets(Array("Tabelle4", "Tabelle5", "Tabelle6", "Tabelle7", "Tabelle8", "Tabelle9", "Tabelle10")).Select
ActiveWindow.SelectedSheets.Visible = False 'Ausblenden von Tabellenblättern
Sheets("Tabelle1").Select
Workbooks("EinlesenDatenMakro.xls").Activate
Range("U3:AO7").Select
Selection.Copy
Workbooks("01.09.xls").Activate
Range("B3:V7").Select
Selection.PasteSpecial Paste:=xlPasteFormulasAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False 'Formeln und Zahlenformate kopieren
Application.CutCopyMode = False
Columns("B:V").Select
Selection.Columns.AutoFit
Range("A1").Select
Workbooks("EinlesenDatenMakro.xls").Activate
Sheets("Tabelle2").Select
Cells.Select
Selection.Copy
Windows("01.09.xls").Activate
Sheets("Tabelle2").Select
Cells.Select
Selection.PasteSpecial Paste:=xlPasteFormulasAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Freundliche Grüße
Thomas

3 Antworten

0 Punkte
Beantwortet von schnallgonz Einsteiger_in (45 Punkte)
Hallo

vielleicht hilft Dir dies weiter:

Dim StartMappe As String, StartFenster As String
StartMappe = ActiveWorkbook.Name
StartFenster = ActiveSheet.Name

Workbooks(StartMappe).Sheets(StartFenster).Range("M12:M2988").Copy
[code]

Anstatt "Copy" kannst Du auch "Activate" setzen, für das Kopieren reicht aber o.g. Zeile, spart "Activate" und "Select"

mfg
schnallgonz
0 Punkte
Beantwortet von beverly Experte (3.5k Punkte)
Hi Thomas,

versuche es mal mit diesem Code:
Sub kopieren()
With ThisWorkbook ' Arbeitsmappe mit dem Code
Workbooks("Januar09_2.xls").Worksheets("Tabelle1").Range("B12:M2988").Copy '<== Tabellenname anpassen
.Worksheets("Tabelle1").Range("V12").PasteSpecial Paste:=xlPasteValuesAndNumberFormats 'Werte und Zahlenformate einfügen
Workbooks("Januar09_2.xls").Close
.Sheets(Array("Tabelle4", "Tabelle5", "Tabelle6", "Tabelle7", "Tabelle8", "Tabelle9", "Tabelle10")).SelectedSheets.Visible = False 'Ausblenden von Tabellenblättern
Workbooks("EinlesenDatenMakro.xls").Worksheets("Tabelle1").Range("U3:AO7").Copy '<== Tabellenname anapssen
.Worksheets("Tabelle1").Range("B3:V7").PasteSpecial Paste:=xlPasteFormulasAndNumberFormats 'Formeln und Zahlenformate einfügen
.Worksheets("Tabelle1").Columns("B:V").AutoFit
Workbooks("EinlesenDatenMakro.xls").Worksheets("Tabelle2").Cells.Copy
.Worksheets("Tabelle2").Cells.PasteSpecial Paste:=xlPasteFormulasAndNumberFormats 'Formeln und Zahlenformate erinfügen
.Worksheets("Tabelle2").Cells.PasteSpecial Paste:=xlPasteFormats ' Formate einfügen
End With
End Sub

Bis später,
Karin
0 Punkte
Beantwortet von
Hallo Karin und Schnallgonz,
habe heute leider nicht die Zeit mich intensiver damit zu befassen aber erstmal vielen Dank für die Anregungen. Sieht beides sehr hilfreich aus. Einen schönen Sonntag noch.
mfg Thomas
...