Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.04.2024 18:57:33
17.04.2024 16:56:58
Anzeige
Archiv - Navigation
1712to1716
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

UserForm nur fpr Berechtigte öffnen

UserForm nur fpr Berechtigte öffnen
30.09.2019 11:49:17
Mister-B
Hallo,
ich möchte, dass eine bestimmte UserForm nur von zwei Berechtigten geöffnet werden kann. Wenn eine nicht berechtigte Person versucht die UF zu öffnen, soll eine Meldung erscheinen und die UF soll sich wieder schließen. Mit folgendem Code klappt die Abfrage und das Einblenden der Meldung bei den nicht Berechtigten, nur ich bekomme es nicht hin die UF anschließend zu schließen. Sie bleibt eingeblendet und der nicht Berechtigte kann darin arbeiten:
Private Sub UserForm_Initialize()
Dim x As Long, y As Long
If Not Environ("Username") Like "*00000" Or Not Environ("Username") Like "*00001" Then
MsgBox "Sie sind nicht berechtigt ..", vbCritical, "Firma XY"
Exit Sub
End If
x = Sheets("ZZ-List").Cells(65536, 4).End(xlUp).Row
For y = 4 To x
Me.ComboBox1.AddItem Sheets("ZZ-List").Cells(y, 4)
Next
End Sub

Was mache ich falsch?
Viele GGrüße
Martin

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: UserForm nur fpr Berechtigte öffnen
30.09.2019 11:52:22
Torsten
Hallo Martin,
versuchs mal so:

Private Sub UserForm_Initialize()
Dim x As Long, y As Long
If Not Environ("Username") Like "*00000" Or Not Environ("Username") Like "*00001" Then
MsgBox "Sie sind nicht berechtigt ..", vbCritical, "Firma XY"
Unload UserForm1
Exit Sub
End If
x = Sheets("ZZ-List").Cells(65536, 4).End(xlUp).Row
For y = 4 To x
Me.ComboBox1.AddItem Sheets("ZZ-List").Cells(y, 4)
Next
End Sub
Gruss Torsten
AW: UserForm nur fpr Berechtigte öffnen
30.09.2019 12:09:40
Torsten
Hallo Martin,
vergiss meinen vorherigen Post. Das geht so nicht. Du kannst diese Pruefung nicht im Initialize Ereignis der Userform machen. Das ist zu spaet. Deshalb wird die Userform auch gestartet. Du musst das pruefen, wo du die Userform aufrufst. Nach der Art:

If Not Environ("Username") Like "*00000" Or Not Environ("Username") Like "*00001" Then
MsgBox "Sie sind nicht berechtigt ..", vbCritical, "Firma XY"
Exit Sub
Else
UserForm1.Show
End If

Gruss Torsten
Anzeige
AW: UserForm nur fpr Berechtigte öffnen
30.09.2019 12:00:29
Daniel
Hi
ich sehe in deinem Code keinen Befehl, um die Userform zu schließen (Unload Me)
dh das einzige was bei unberechtigten Personen passiert ist, dass die Combobox nicht befüllt wird.
um einen sauberen Ablauf zu gewähren, würde ich den Befehl Unload UserformX in ein Makro in ein allgemeines Modul schreiben und dann dieses Makro mit Application.Ontime "Makroname", Now starten.
generell würde ich es aber für sinnvoller halten, wenn du die Abfrage nicht im Initialize-Event der Userform machst, sondern schon in dem Makro, mit welchem du die Userform startest, also vor dem Befehl: Userform1.Show.
die andere Methode wäre folgende:
richte in der Userform eine Multipage mit zwei Seiten ein.
die eine Seite enthält alle normalen Steuerelemente, die zweite Seite entält nur die Hinweismeldung und einen Button zum Schließen.
im Initialize-Event schaltest du dann je nach angemeldeter Person die eine oder die andere Seite aktiv.
wenn du die Register der Multipage ausblendest, kann der Anwender auch nicht manuell umschalten.
Gruß Daniel
Anzeige
AW: UserForm nur fpr Berechtigte öffnen
30.09.2019 12:28:33
Mister-B
Hallo Torsten, hallo Daniel,
ja, ihr habt beide Recht. Wenn ich die Prüfung vor dem Aufruf der UF ausführe, klappt auch alles.
Vielen Dank euch beiden.
Gruß
Martin

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige