Hallo Andreas
im Normalfall sind zwei Dateien offen - eine mit allen Makros und eine mit den Daten. Soweit wie möglich befinden sich in den Tabellenblättern der Datendatei keine Makros.
Ich habe nun eine Holzhammermethode eingebaut, die Fehler verhindert.
Eine Schaltfläche in der Datendatei ruft die primäre Userform in der Makrodatei auf. Über diese primäre Userform werden dann alle anderen Bearbeitungsschritte ausgelöst. (Stand der Dinge.)
Neu wird nun in der Sub UserForm_Initialize ein Flag in der Datendatei auf True gesetzt. Wird die UserForm geschlossen, wird die Flag auf False gesetzt.
In der Datendatei ist nun die folgende Sub
Private Sub Workbook_Deactivate()
If flag = True Then
'
' eine Userform ist aktiv
' x = MsgBox("Eine andere Datei wird geöffnet!" & vbLf & _ "Die aktive Maske wird geschlossen, allfällige Dateneingaben gehen verloren.", _
*vbOKOnly + vbExclamation, "Wechsel") flag = False End End If*
End Sub
Wie gesagt, nicht optimal, aber es funkioniert.
zu a) versuche ich nicht zu verwenden
zu b) leider sind es wesentlich mehr als nur 4 Variable. Grosse Module habe ich bereits gesplittet und weiteres Splitting wird dann etwas unübersichtlich.
Gruss
Jürgen