Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
824to828
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
824to828
824to828
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Abfrage geht nicht

Abfrage geht nicht
28.11.2006 08:51:02
Walter
Guten Morgen,
anbei mein Makro, es soll prüfen ob der "Richtige" Anwender angemeldet ist.
Leider klappt dies nicht, Warum ?

Sub walter2()
'MsgBox Application.UserName
'---------- erst prüfen, welcher Anwender --------------
Dim WALTER, NORBERT
Application.UserName = WALTER
Application.UserName = NORBERT
If WALTER <> "" Then
MsgBox "Anwender:  WALTER vorhanden "
Else
MsgBox "Anwender:  WALTER  nicht vorhanden !   "
End If
End Sub

gruß walter

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Abfrage geht nicht
28.11.2006 08:55:22
EtoPHG
Hallo Walter,
Entweder Du bleibst bei VBA nur mit Recorder
oder Du befasst Dich mit dem was Du tust, d.h. am besten hier anfangen:
https://www.herber.de/xlfaq/xlbasics/main_con.htm
Dim WALTER, NORBERT
sind 2 Definitionen von Variablen die NICHTS enthalten und nie gefüllt werden!
Gruss Hansueli
AW: Abfrage geht nicht
28.11.2006 09:12:17
Walter
Guten Morgen Hansueli,
bitte nicht böse sein, habe ich nicht so RICHTIG verstanden.
Kannst Du mir ein Beispiel geben ?
(sind 2 Definitionen von Variablen die NICHTS enthalten und nie gefüllt werden)
gruß walter
Anzeige
AW: Abfrage geht nicht
28.11.2006 09:25:42
Hoffi
Hallo Walter,
Du definierst Walter und Norbert als Variant Variable, befüllst diese aber nicht.
Zum Beispiel
Dim Passwort As String
Passwort = Inputbox("Bitte Passwort eingeben")
Select Case Passwort
Case is = "Walter"
Msgobx "Walter ist angemeldet"
Case is = "Norbert"
Msgbox "Norbert ist angemeldet"
Case Else
msgbox "Keine Berechtigung"
Application.Quit
End Select
Bevor Du eine Variable auf deren Inhalt hin abfragst, muss diese logischerweise auch gefüllt werden, dies geht auf verschiedenste Weisen, oben ist ein Beispiel zum füllen über eine Inputbox...
Variablen, die nur mit "Dim" deklariert sind und nicht "As String" oder so enthalten, sind immer vom Typ Variant und nehmen am meisten Speicherplatz in Anspruch.
Grüße
Hoffi
Anzeige
Hallo Hoffi, Danke für den Hinweis -)
28.11.2006 09:43:28
Walter
AW: Abfrage geht nicht
28.11.2006 09:25:57
Echiko
hi walter,
schreibe in einer tabelle ab A1 die erlaubten usernamen untereinander weg.
also A1 = Walter
B1 = Norbert usw.
dann diesen code in ein modul:


      
Option Explicit
Sub richtiger_user()
    
Dim blnUser As Boolean
    
Dim i, UserMenge As Integer
    
Dim Person As String
    
    Person = Application.UserName
    UserMenge = Sheets("Tabelle1").Range("b1")
    
    
For i = 1 To UserMenge
        
If Person = Cells(i, 1) Then
            blnUser = 
True
            
Exit For
        
End If
    
Next i
    
    
If blnUser = False Then
        MsgBox "Falscher User"
        ThisWorkbook.Close 
False 'schliesst die datei ohne zu speichern
        Exit Sub
    
End If
    
End Sub 


einen button erstellen und prüfen lassen.
du kannst den code auch in der workbook open schreiben, so das die datei gleich wieder schliesst wenn der falsche user dran ist.
muss nur noch dementsprechend abgewandelt werden.
Gruss Echiko
(Rückmeldung wäre schön)
Anzeige
Verstanden nicht so Richtig aber Lösung...
28.11.2006 09:42:15
Walter
Hallo Hansueli,
habe in der Recherche was gefunden und es klappt, allerdings habe ich es nicht so ganz
"geschnallt".
Anbei die Lösung:
Dim Walter, Norbert As String
If VBA.Environ("Username") = "Walter" Then
MsgBox "Anwender: Walter vorhanden "
Else
MsgBox "Anwender: Walter nicht vorhanden ! "
End If
mfg walter
End Sub
AW: Abfrage geht nicht
28.11.2006 09:30:52
EtoPHG
Hallo Walter,
Ich ziehe meine erste Aussage, nicht zurück.
Ich bin nicht böse !

Sub Versiv()
Dim sName1 As String    ' Das ist die Definition einer Variable
Dim sName2 As String    ' Das ist die Definition einer weiteren Variablen
sName1 = "WALTER"       ' Variable sName1 wird mit dem Inhalt "WALTER" gefüllt
sName2 = "NORBERT"      ' Variable sName1 wird mit dem Inhalt "NORBERT" gefüllt
Select Case UCase(Application.UserName)     ' Wir wollen den eingeloggten User (in Grossbuchstaben!) testen
Case sName1                                 ' Ist er gleich der Variablen sName1 ?
MsgBox sName1 & " ist eingeloggt"
Case sName2                                 ' Ist er gleich der Variablen sName2 ?
MsgBox sName2 & " ist eingeloggt"
Case Else                                   ' Weder noch ...
MsgBox "Jemand mit Namen <" & Application.UserName & "> ist eingeloggt"
End Select
End Sub

Gruss Hansueli
Anzeige
Wieso klappt mein ?
28.11.2006 09:46:46
Walter
Hallo Hansueli,
wieso klappt mein Beispiel ?
Nur wenn Du Lust hast mal einen HInweis,
Danke im voaus,
mfg Walter
AW: Wieso klappt mein ?
28.11.2006 09:52:16
EtoPHG
Hallo Walter
Application.UserName und environ("Username")
sind 2 verschiedene Paar Stiefel!
Application.UserName gibt den Benutzernamen des EXCEL-Benutzernamens (EXCEL-Menu - Optionen - Allgemein - Benutzername) zurück.
environ("Username") gibt den Benutzernamen des angemeldeten WINDOWS-Benutzers zurück.
Gruss Hansueli
Danke Hansueli, bin jetzt zufrieden ! -)
28.11.2006 09:59:04
Walter
AW: Abfrage geht nicht
28.11.2006 09:36:58
UweD
Hallo
Application.UserName ist der Wert, der in Excel auch über
- Extras, Optionen, Allgemein, Benutzername eingestellt werden kann und eigendlich auch konstant bleiben soll.
mit Application.UserName = WALTER
setzt du diese Einstellung auf Walter und sofort danach auf Norbert.
Was du sicherlich machen möchtest ist den Wert auslesen.
das ginge so...

Sub walter2()
Dim Wer As String
Wer = Application.UserName
If Wer <> "" Then
MsgBox "Anwender:  " & Wer & " vorhanden "
Else
MsgBox "Kein Anwender vorhanden !   "
End If
End Sub

Gruß UweD
(Rückmeldung wäre schön)
Anzeige
Danke
28.11.2006 09:56:55
Walter
Hallo UweD,
Danke für das Beispiel.
Bei meinem Beispiel wird nach dem User gefragt und dann entsprechend ein Makro ausgeführt.
Wenn also Walter nicht vorhanden ist, wird ein anderes Makro abgearbeitet als bei
Norbert,
mfg Walter

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige