schaff mal ein wenig klarheit, denn genaugenommen laufen die makros IMMER nur in einer datei.
vermutlich willst du aber, dass du z.b. in tabelle a immer nur in der spalte xyz nach etwas suchst. öffnest du tabelle b, dann läuft der code nicht mehr durch. richtig?
dann liegt dein problem darin, dass der code so geschrieben ist, dass er immer auf das workbook und die tabelle im vordergrund zugreift.
du hast zwei möglichkeiten:
entweder arbeitest du mit activate - also z.b. so:
workbooks(„a.xls“).worksheets(„a“).activate
das legt dir das workbook und die tabelle in den vordergrund und darauf wird gearbeitet.
alternative du greifst immer mit dem vollen befehl auf ein spezielles workbook zu. z.b. so:
statt: wert = cells(1, 2).value
das: wert = workbooks(„a.xls“).worksheets(„a“).cells(1, 2).value
gleiches mit allen zugriffen, also row, column, range…
den workbooknamen und den des worksheets kann man natürlich auch per string übergeben und dann die makros je nach gegebenheit unterschiedlich nutzen. geht in beiden fällen