Hallo zusammen,
ich bin absoluter Neuling was VBA betrifft und hoffe, dass ich hier Hilfe bekomme.
Folgendes Problem stellt sich mir:
Ich habe eine Excel Datei mit mehreren Mappen (Diese beginnen alle mit dem Namen Projekt).
In jeder dieser Mappe befindet sich jeweils eine dynamische Tabelle, welche in Zeile 9 beginnt.
Je nach Datengrundlage wird nun die dynamische Tabelle nach rechts & unten erweitert.
Ich möchte nun, dass bei jeder Änderung in Spalte F (Datum) die dynamische Tabelle aufsteigend sortiert wird. Dies funktioniert mit nachfolgendem Code auch ohne Probleme:
Private Sub Worksheet_Change(ByVal Target As Range)
'Prüfen, ob Datum verändert wurde
If Not Intersect(Target, Range("Tabelle1[Datum]")) Is Nothing Then
'Variable dimensionieren
Dim Datum As Date
'Bestand merken
Datum = Target.Value
'Sortieren
Range("Tabelle1").Sort Key1:=Range("Tabelle1[Datum]"), order1:=xlAscending, Header:=xlYes
'Bestand suchen
Range("F:F").Find(what:=Datum).Activate
End If
End Sub
Sobald ich nun das Makro in einer anderen Mappe innerhalb der selben Datei ausführen möchte, erhalte ich eine Fehlermeldung. Mir ist bewusst, dass ich "nur" den Namen von "Tabelle1" auf den richtigen Tabellennamen abändern muss, was bei manueller Abänderung auch funktioniert, jedoch hätte ich gerne eine dynamische Lösung, sodass ich einen Code für alle Tabellen habe. Ich dachte an so etwas wie:
if left (name, 7) = Tabelle
Wäre super, wenn der Code unabhängig von der Tabellenbezeichnung funktioniert.
Leider komme ich hier nicht weiter, auch das Einfügen eines Platzhalter konnte mir nicht die gewünschte Lösung beschaffen.
In den Tiefen des Internets konnte ich leider keine Lösung finden, aber ich hoffe doch hier.
Vielen Dank für eure Hilfe.
LG Rapaehl
|