Hallo Peter,
wenn du deine Makros in dem VBA-Projekt eines Tabellenblatts ablegst, wird das Makro - soweit du nicht ausdrücklich ein anderes Tabellenblatt ansprichst - immer in dem betreffenden Tabellenblatt ausgeführt.
Kopierst du den folgenden Code in ein allgemeins Modul und führst in in verschiedenen Tabellenblättern aus, wird immer das Wort hier in das aktive Tabellenblatt geschrieben:
Sub test()
Range("A1") = "hier"
End Sub
Kopierst du den Code allerdings in das VBA-Projekt des Tabellenblatts1 und führst in von Tabellenblatt2 aus, dann wird das Wort hier trotzdem in Tabellenblatt1 geschrieben. Änderst du das Makro wie folgt, wird das Wort wieder in das aktive Tabellenblatt geschrieben:
Sub test()
ActiveSheet.Range("A1") = "hier"
End Sub
Auch ist der Aufruf anders, wenn du das Makro aus einem anderen Makro aufrufen willst: Call Tabelle1.test
Nutzt du z.B. Public-Variablen in deinem Code, dann musst du diese in einem allgemeinen Modul deklarieren.
Gruß
M.O.