Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.10.2025 10:28:49
16.10.2025 17:40:39
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Erstellung eines Makros für wechselnde Tabellen

Forumthread: Erstellung eines Makros für wechselnde Tabellen

Erstellung eines Makros für wechselnde Tabellen
13.08.2024 11:14:44
PG8688
Hallo zusammen,
dies ist mein erster Beitrag und meine erste Erfahrung mit VBA. Ich habe folgendes Problem:

Ein Teil meiner Arbeit umfasst vier verschiedene Tabellen. Eine davon bleibt gleich, bekommt aber jeden Tag eine neue Mappe unten eingefügt. Die anderen drei Dateien sind jeden Tag neue Auswertungen, die in die erste Datei eingefügt werden müssen, der Aufbau ist aber immer gleich, alles an der gleichen Stelle und die selbe Anzahl an Werten.

Ich konnte mir über Makros das nun so einstellen, dass ich in den Tabellen nur die Spalten habe, die ich benötige, die Daten sortiert und die Werte dann in meine Tabelle eingefügt werden. Soweit, so gut. Das Problem ist, wenn ich einen anderen Tag einfügen möchte oder wenn ich in meiner festen Datei eine neue Mappe hinzufüge, funktioniert das ganze nicht mehr, Laufzeitfehler 9 lautet das Problem. Über Debugging zeigt Excel mir an, dass der Fehler darin liegt, dass die Makros den Namen der alten Dateien bzw. der vorherigen Mappe beibehalte.

Wie bekomme ich es hin, dass ich die Makros auch für unterschiedliche Tabellen nutzen kann, also nicht theoretisch jeden Tag ein neues Makro erstellen müsste, das kann ja nicht der richtige Weg sein.

Habt Nachsicht mit mir, dass ist mein aller erster Kontakt mit Makros und VBA, ich hab mir schon einiges durchgelesen, konnte aber keine für mich verständliche Antwort/Lösung finden.

Hier der Code, den Excel mir für eine der Makros gegeben hat.

Vielen Dank euch!

LG Patrick
Sub Snack()

'
' Snack Makro
'
' Tastenkombination: Strg+y
'
Range("A:A,C:J,L:M,O:O,P:P").Select
Range("P1").Activate
Selection.Delete Shift:=xlToLeft
ActiveWindow.SmallScroll Down:=-6
Range("A1:C66").Select
ActiveWorkbook.Worksheets("FK1_Verkauf_-_Retoure_(Menge-We").Sort.SortFields. _
Clear
ActiveWorkbook.Worksheets("FK1_Verkauf_-_Retoure_(Menge-We").Sort.SortFields. _
Add2 Key:=Range("A2:A66"), SortOn:=xlSortOnValues, Order:=xlAscending, _
DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("FK1_Verkauf_-_Retoure_(Menge-We").Sort
.SetRange Range("A1:C66")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("B2:B66").Select
Selection.Copy
Sheets("Vorlage Fr (2)").Select
Range("H5").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("FK1_Verkauf_-_Retoure_(Menge-We").Select
Range("C2:C66").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Vorlage Fr (2)").Select
ActiveWindow.SmallScroll Down:=-18
Range("J5").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("FK1_Verkauf_-_Retoure_(Menge-We").Select
Application.CutCopyMode = False
ActiveWindow.SelectedSheets.Delete
End Sub
Anzeige

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

Betreff
Datum
Anwender
Anzeige
Klärungsbedarf
13.08.2024 12:46:40
Uduuh
Hallo,
anscheinend sind dir einige Begriffe nicht klar.

Ein Teil meiner Arbeit umfasst vier verschiedene Tabellen.
Vermutlich meinst du Arbeitsmappen (Excel-Dateien .xlsx)

Eine davon bleibt gleich, bekommt aber jeden Tag eine neue Mappe unten eingefügt.
Meinst du mit Mappe ein Arbeutsblatt? Und was heißt unten?

dass die Makros den Namen der alten Dateien bzw. der vorherigen Mappe beibehalte.
"FK1_Verkauf_-_Retoure_(Menge-We" ist also jeden Tag anders?

Gruß aus'm Pott
Udo
Anzeige
AW: Erstellung eines Makros für wechselnde Tabellen
13.08.2024 18:49:59
ralf_b
Ja, auch ich habe kleine Verständnisprobleme bei deiner Benennung der Excelteile(Datei, Mappe, Blatt).

Worksheets("FK1_Verkauf_-_Retoure_(Menge-We") das willst du auf ein unbestimmtes Arbeitsblatt anwenden.
Also ermittelst du entweder den Namen des neuen Blattes oder seine Position(Index) in der Liste der Arbeitsblätter.
Der Code befindet sich hoffentlich in einem Allgemeinen Codemodul (z.b. Modul1) und nicht im Codemodul eines Arbeitsblattes.
Handelt es sich um das gerade sichtbare Arbeitsblatt (Activesheet) dann kannst du das statt Worksheets("FK1_Verkauf_-_Retoure_(Menge-We") verwenden. Einfach im Code austauschen.
Ein Beispielcode (ohne Garantie)
Sub Snack()

'
' Snack Makro
'
' Tastenkombination: Strg+y
'
Range("A:A,C:J,L:M,O:O,P:P").Select
Range("P1").Activate
Selection.Delete Shift:=xlToLeft
'

With ActiveWorkbook.ActiveSheet

.Sort.SortFields.Clear
.Sort.SortFields.Add2 Key:=.Range("A2:A66"), SortOn:=xlSortOnValues, _
Order:=xlAscending, DataOption:=xlSortNormal
.Sort.SetRange .Range("A1:C66")
.Sort.Header = xlYes
.Sort.MatchCase = False
.Sort.Orientation = xlTopToBottom
.Sort.SortMethod = xlPinYin
.Sort.Apply

.Range("B2:B66").Copy
Sheets("Vorlage Fr (2)").Range("H5").PasteSpecial _
Paste:=xlPasteValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False


.Range("C2:C66").Copy
Sheets("Vorlage Fr (2)").Range("J5").PasteSpecial _
Paste:=xlPasteValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False

Application.CutCopyMode = False
ActiveWindow.SelectedSheets.Delete

End With
End Sub


Es fält auf das du auf ein Vorlageblatt Daten kopierst. Wenn du das Vorlagenblatt immer erst kopierst, um dann die Daten da hin zu kopieren, dann kann das mit in das Makro integriert werden. Inklusive Umbenennung usw.
Anzeige
AW: Klärungsbedarf
13.08.2024 12:59:03
PG8688
Hallo,

Genau, ich meine Excel Dateien. Zwei .xlsx und zwei .csv Dateien.

Ich meine auch tatsächlich ein neues Arbeitsblatt und unten meine ich, wo ich das neue Arbeitsblatt einfüge. Diese werden nach fortlaufenden Kalendertagen benannt.

"FK1_Verkauf_-_Retoure_(Menge-We" ändert sich jeden Tag.

LG Patrick
Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige