Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1772to1776
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 übernehmen bei neuer Datei

Makro übernehmen bei neuer Datei
03.08.2020 14:57:20
Jürgen
Hallo,
ich muss wöchentlich eine Datei aktualisieren, wobei auf verschiedenen Tabellenblättern Daten zu kopieren / entfernen sind.
Das Makro ist recht einfach:

Sub Makro_ausführen()
Sheets("Daten").Select
Columns("G:P").Select
Selection.Copy
Sheets("Daten der vorigen Abfrage").Select
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Daten").Select
Range("A6:D2000").Select
Application.CutCopyMode = False
Selection.ClearContents
Selection.Interior.ColorIndex = xlNone
Sheets("Daten für x und y").Select
Range("A2:J2000").Select
Selection.ClearContents
Range("L2:L2000").Select
Selection.ClearContents
Selection.Interior.ColorIndex = xlNone
Sheets("Ablauf").Select
Range("A10").Select
End Sub

Wie erreiche ich, dass das Makro funktioniert, wenn ich die Datei am Ende der Bearbeitung unter einem neuen Namen speichere, da dabei die laufende Nummer der Datei heraufgezählt wird?
(Aus Daten11.xls wird also am ende der aktuellen wochenbearbeitung Daten12.xls.)
schönen tag allen Leser/inne/n!
Jürgen

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro übernehmen bei neuer Datei
03.08.2020 15:13:06
MRUTOR
Hallo Juergen,
da du in deinem Makro garnicht auf ein Workbook (Datei) verweist, koenntest du das Makro in deiner PERSONAL.XLSB abspeichern und es von dort aus starten, denn es wird immer im gerade aktiven Workbook ausgefuehrt, so wie es jetzt ist.
Schau dir mal Ausfuehrungen zur PERSONAL.XLSB an.
Ich habe trotzdem mal dein Makro etwas ueberarbeitet, denn die gannze Seletiererei kannst du dir sparen. Ist ueberfluessig.
Gruss Tor

Sub Makro_ausführen()
Sheets("Daten").Columns("G:P").Copy
Sheets("Daten der vorigen Abfrage").Range("A1").PasteSpecial Paste:=xlPasteValues,  _
Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Sheets("Daten").Range("A6:D2000").ClearContents
Sheets("Daten").Range("A6:D2000").Interior.ColorIndex = xlNone
Sheets("Daten für x und y").Range("A2:J2000").ClearContents
Sheets("Daten für x und y").Range("L2:L2000").ClearContents
Sheets("Daten für x und y").Range("L2:L2000").Interior.ColorIndex = xlNone
Sheets("Ablauf").Select
Range("A10").Select
End Sub

Anzeige
AW: Makro übernehmen bei neuer Datei
03.08.2020 15:13:24
Werner
Hallo,
hier erst mal dein Makro ohne die ganze "Selectiererei".
Sub Makro_ausführen()
Application.ScreenUpdating = False
With Sheets("Daten")
.Columns("G:P").cppy
Sheets("Daten der vorigen Abfrage").Range("A1").PasteSpecial Paste:=xlPasteValues
.Range("A6:D2000").ClearContents
.Range("A6:D2000").Interior.ColorIndex = xlNone
End With
With Sheets("Daten für x und y")
.Range("A2:J2000").ClearContents
.Range("L2:L2000").ClearContents
.Range("L2:L2000").Interior.ColorIndex = xlNone
End With
Application.CutCopyMode = False
End Sub
Und dein Problem kann ich nicht wirklich nachvollziehen. In deinem Makro wird doch nirgendwo explizit eine spezielle Datei angesprochen.
Welche Excel-Version hast du denn im Einsatz?
Gruß Werner
Anzeige
AW: Makro übernehmen bei neuer Datei
03.08.2020 16:32:15
Gerd
Hallo Jürgen,
noch eine With-lose Variante. Im übrigen schließe ich mich MRUTOR an.
Sub Makro_ausführen()
Dim Wbk As Workbook, Quelle As Range, Ziel As Range, rngD As Range, rngXY As Range, A As  _
Range
Set Wbk = ActiveWorkbook
Set Quelle = Wbk.Sheets("Daten").Columns("G:P")
Set Ziel = Wbk.Sheets("Daten der vorigen Abfrage").Range("A1")
Set rngD = Wbk.Sheets("Daten").Range("A6:D2000")
Set rngXY = Wbk.Sheets("Daten für x und y").Range("A2:J2000, L2:L2000")
Set A = Wbk.Sheets("Ablauf").Range("A10")
Quelle.Copy
Ziel.PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
rngD.ClearContents
rngD.Interior.ColorIndex = xlNone
rngXY.ClearContents
XY.Areas(1).Interior.ColorIndex = xlNone
Application.Goto A, True
Set Quelle = Nothing: Set Ziel = Nothing: Set rngD = Nothing: Set rngXY = Nothing: Set A =  _
Nothing: Set Wbk = Nothing
End Sub

Gruß Gerd
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige