ich brauche mal (wieder) eure Hilfe. Ich habe ein - meiner Meinung nach - sehr ungewöhnliches Problem:
Ich möchte per VBA ein Monatsbericht erstellen, der aus mehreren einzenen Excel-Dateien bestimmte Seiten in eine neue kopiert. Dazu habe ich eine Userform erstellt, die 20 Checkboxen enthält, um die gewünschten Seiten für den neuen Bericht auswählen zu können.
Ich habe die Checkboxen zunächst nach dem Inhalt der Seiten benannt, also z.B.:
CB_Quali
CB_Ressourcen
CB_DLZ
...
Beim Schreiben der Routine ist mir dann aufgefallen, dass ich die Checkboxen mit den individuellen Namen einzeln auslesen muss. Viel eleganter ist aber natürlich eine Schleife. Daher habe ich die Checkboxen in
CB1
CB2
CB3
... umbennant. Die schleife zum auslesen lautet:
CrtRow=2
Do Until Worksheets("Dateipfade").Cells(CrtRow, 3).Value = ""
' --- Variablen einlesen ---
Pfad = Cells(CrtRow, 4).Value
Dateiname = Cells(CrtRow, 5).Value
Blattname = Cells(CrtRow, 6).Value
' --- Blatt kopieren ---
If UF_MBKonfig.Controls("CB" & CrtRow - 1).Value = True Then
Call BlattImport(Pfad + Dateiname, Blattname)
End If
CrtRow = CrtRow + 1
Loop
wenn ich die Routine laufen lassen, läuft sie nur solange fehlerfrei, wie ich nicht zwischendurch speicher. Wenn ich speicher und die Routine dann laufen lasse, wurden die Namen der Checkboxen wieder zu CB_Quali, CB_Ressourcen, ... zurückgeändert. Das komische ist: Direkt nach dem Speichern also vor Start der Routine stimmts noch, aber während der Routine gibts dann gleich die Fehlermeldung.
Wieso das? Und woher hat er die "alten Namen" ich habe sie doch überschrieben? Kann es damit zusammenhängen, dass ich das Modul importiert habe und er sich da die alten Namen herholt? Ich bin grad echt am verzweifeln. Hat jemand von euch eine Idee?
Vielen Dank schonmal!
Gruß,
Philipp