MsgBox bei gleicher Aktion nur einmal zeigen
21.08.2003 10:25:53
Olli
Habe folgendes Problem: Bei einer Eingabe in eine Zelle wird der eingegebene Name mit dem unter Excel eingetragenen Benutzer verglichen und bei Abweichung gefragt, ob man den Benutzernamen ändern will. Optimal wäre es eigentlich, wenn man diese Meldung unmittelbar nach Abschluss der Eingabe erhält. Problem: wenn ich das im Tabellenblatt unter Worksheet - Change unterbringe, nervt die Meldung denjenigen, bei dem die Namen nicht übereinstimmen und der dies auch nicht ändern will. Meine Lösungsvorstellung: Wenn der User "Ja" sagt, soll die Änderung vollzogen werden, sagt der User "Nein", soll er im Anschluss bis zum Schließen der Mappe nicht mehr gefragt werden, sagt er "Abbrechen" soll er beim nächsten Verlassen des Namensfeldes wieder gefragt werden. Mein bisheriges Ergebnis ist eine Lösung, die erst beim Verlassen des Arbeitsblatts läuft:
Sub BenutzernamenKontrolle()
Dim ZellwertA7
ZellwertA7 = Range("a7").Value
Dim Benutzer
Benutzer = Application.UserName
If ZellwertA7 <> Benutzer Then
Meldung = MsgBox("Der beim Sachbearbeiter eingegebene Name stimmt nicht mit dem für eingetragenen Benutzernamen überein. Möchten Sie den Benutzernamen entsprechend ändern?", vbYesNo + vbQuestion, "Benutzernamen ändern?")
If Meldung = vbYes Then
Application.UserName = ZellwertA7
Meldung2 = MsgBox("Ihr Benutzername wurde geändert.", vbOKOnly + vbInformation, "Benutzername geändert!")
End If
If Meldung = vbNo Then
End If
End If
End
Sub
BIN FÜR JEDE HILFE - AUCH NEUE ANREGUNGEN - DANKBAR! Bitte aber so simpel wie möglich erklären, bin in VBA (leider) nicht sehr fit.
DANKE !!!! :-)