Hallo werte Forengemeinschaft!
Das vor kurzem gelöste Thema UserForm - Angemeldeten Benutzer erkennen office-loesung.de/ftopic518739_0_0_asc.php möchte nun verfeinert werden.
Das Modul, welches den angemeldeten Benutzer erkennt und die entsprechenden Daten dazu liefert sieht so aus:
Code:Public Function GetUser() As String
GetUser = Environ("Userprofile")
End Function
Public Function UserAnrede() As String
If GetUser = "C:\Users\JAK" Then UserAnrede = "Herr"
End Function
Public Function UserVorname() As String
If GetUser = "C:\Users\JAK" Then UserVorname = "Tim"
End Function
Public Function UserNachname() As String
If GetUser = "C:\Users\JAK" Then UserNachname = "Jakobi"
End Function
Public Function UserNachnameshort() As String
If GetUser = "C:\Users\JAK" Then UserNachnameshort = "Jak"
End Function
Public Function UserFunktion() As String
If GetUser = "C:\Users\JAK" Then UserFunktion = "Tellerwäscher"
End Function
Public Function UserEmail() As String
If GetUser = "C:\Users\JAK" Then UserEmail = "tijakobi@bla.de"
If GetUser = "C:\Users\PET" Then UserEmail = "alpetri@bla.de"
If GetUser = "C:\Users\KOP" Then UserEmail = "hakoppner@bla.de"
End Function
Public Function UserEmailshort() As String
If GetUser = "C:\Users\JAK" Then UserEmailshort = "tijakobi"
End Function
Public Function UserTel() As String
If GetUser = "C:\Users\JAK" Then UserTel = "030 12 00 34 - 56"
End Function
Public Function UserTelshort() As String
If GetUser = "C:\Users\JAK" Then UserTelshort = "56"
End Function
Heißt, dass alle abhängigen Daten also manuell im Modul eingetragen werden müssen. Jedoch ist der Datensatz um das Vielfache gestiegen.
Ich frage mich, ob es eine auf einer Excel Datenbank basierte Lösung zu diesem Problem gibt. Vorstellbar wäre doch eine Excel-Tabelle mit den entsprechenden Zeilen und Spalten
A B C D
1 User Anrede Vorname Nachname
2 JAK Herr Tim Jakobi
3 PET Herr Kai Petri
Sodass das VBA Modul durch
Code:Public Function GetUser() As String
GetUser = Environ("Userprofile")
End Function
den Benutzer erkennt und dann den erkannten Benutzernamen (in diesem Fall "JAK") in der Exceltabelle sucht.
Quasi ein SVERWEIS...
Ich habe mich einmal daran versucht... leider funktioniert es noch nicht so wie es soll:
Code:Public Function GetUser() As String
GetUser = Environ("Username")
End Function
Public Function UserAnrede() As String
UserAnrede = Application.VLookUp(GetUser, Workbooks("Y:\JAK\Basisdaten\PL05.04.2012.xlsx", Worksheets(" _BPL").Range("A2:R83"), 2, False))
End Function
Public Function UserVorname() As String
UserVorname = Application.VLookUp(GetUser, Workbooks("Y:\JAK\Basisdaten\PL05.04.2012.xlsx", Worksheets("BPL").Range("A2:R83"), 3, False))
End Function
Public Function UserNachname() As String
UserNachname = Application.VLookUp(GetUser, Workbooks("Y:\JAK\Basisdaten\PL05.04.2012.xlsx", Worksheets("BPL").Range("A2:R83"), 4, False))
End Function
Das klappt aber definitv nicht... mein zweiter Versuch sah dann so aus:
Code:
Public Function GetUser() As String
GetUser = Environ("Username")
End Function
Public Function Verweis()
Verweis = _
"=VLOOKUP(""jak"",'Y:\JAK\Basisdaten\[PL05.04.2012.xlsx]BPL'!R2C1:R83C19,4,FALSE)"
End Function
Public Function UserAnrede() As String
UserAnrede = _
"=VLOOKUP(GetUser,[Y:\JAK\Basisdaten\PL05.04.2012.xlsx]BPL!R2C:R83C[18],2,FALSE)"
End Function
Public Sub Try()
.Formular = _
"=VLOOKUP(""jak"",'C:\Users\TIMME\Documents\JAK\Basisdaten\[PL05.04.2012.xlsx]BPL'!R2C1:R83C19,4,FALSE)"
End Sub
Das haut auch hinten und vorne nicht hin... Nicht wundern: Das sind schlichtweg nur drei Versuche. Beim ersten und zweiten habe ich den GetUser durch den Text "jak" ersetzt, da bei GetUser ja Quasi das gleiche rauskäme. Dabei wollte ich schlichtweg nur eine Fehlerquelle vermeiden.Leider bekomm' ich's einfach nicht hin einen Verweis auf die externe Datenquelle zu schreiben. PS: Die Datenquelle sollte dazu nicht geöffnet werden müssen.
Ich wäre wirklich verdammt dankbar, da kein einziges Forum und kein Googleergebnis - mit welchem Suchphrasen auch immer - dazu etwas auspuckt... oder ich mich einfach viel zu dumm anstelle. Aber im letzteren Fall bitte ich alle mir zu sagen warum ich mich dumm anstelle und um eine Lösung. Bin am verzweifeln.Vielen Dank im Voraus und frohe Ostern!Gruß Schorchi
Das vor kurzem gelöste Thema UserForm - Angemeldeten Benutzer erkennen office-loesung.de/ftopic518739_0_0_asc.php möchte nun verfeinert werden.
Das Modul, welches den angemeldeten Benutzer erkennt und die entsprechenden Daten dazu liefert sieht so aus:
Code:Public Function GetUser() As String
GetUser = Environ("Userprofile")
End Function
Public Function UserAnrede() As String
If GetUser = "C:\Users\JAK" Then UserAnrede = "Herr"
End Function
Public Function UserVorname() As String
If GetUser = "C:\Users\JAK" Then UserVorname = "Tim"
End Function
Public Function UserNachname() As String
If GetUser = "C:\Users\JAK" Then UserNachname = "Jakobi"
End Function
Public Function UserNachnameshort() As String
If GetUser = "C:\Users\JAK" Then UserNachnameshort = "Jak"
End Function
Public Function UserFunktion() As String
If GetUser = "C:\Users\JAK" Then UserFunktion = "Tellerwäscher"
End Function
Public Function UserEmail() As String
If GetUser = "C:\Users\JAK" Then UserEmail = "tijakobi@bla.de"
If GetUser = "C:\Users\PET" Then UserEmail = "alpetri@bla.de"
If GetUser = "C:\Users\KOP" Then UserEmail = "hakoppner@bla.de"
End Function
Public Function UserEmailshort() As String
If GetUser = "C:\Users\JAK" Then UserEmailshort = "tijakobi"
End Function
Public Function UserTel() As String
If GetUser = "C:\Users\JAK" Then UserTel = "030 12 00 34 - 56"
End Function
Public Function UserTelshort() As String
If GetUser = "C:\Users\JAK" Then UserTelshort = "56"
End Function
Heißt, dass alle abhängigen Daten also manuell im Modul eingetragen werden müssen. Jedoch ist der Datensatz um das Vielfache gestiegen.
Ich frage mich, ob es eine auf einer Excel Datenbank basierte Lösung zu diesem Problem gibt. Vorstellbar wäre doch eine Excel-Tabelle mit den entsprechenden Zeilen und Spalten
A B C D
1 User Anrede Vorname Nachname
2 JAK Herr Tim Jakobi
3 PET Herr Kai Petri
Sodass das VBA Modul durch
Code:Public Function GetUser() As String
GetUser = Environ("Userprofile")
End Function
den Benutzer erkennt und dann den erkannten Benutzernamen (in diesem Fall "JAK") in der Exceltabelle sucht.
Quasi ein SVERWEIS...
Ich habe mich einmal daran versucht... leider funktioniert es noch nicht so wie es soll:
Code:Public Function GetUser() As String
GetUser = Environ("Username")
End Function
Public Function UserAnrede() As String
UserAnrede = Application.VLookUp(GetUser, Workbooks("Y:\JAK\Basisdaten\PL05.04.2012.xlsx", Worksheets(" _BPL").Range("A2:R83"), 2, False))
End Function
Public Function UserVorname() As String
UserVorname = Application.VLookUp(GetUser, Workbooks("Y:\JAK\Basisdaten\PL05.04.2012.xlsx", Worksheets("BPL").Range("A2:R83"), 3, False))
End Function
Public Function UserNachname() As String
UserNachname = Application.VLookUp(GetUser, Workbooks("Y:\JAK\Basisdaten\PL05.04.2012.xlsx", Worksheets("BPL").Range("A2:R83"), 4, False))
End Function
Das klappt aber definitv nicht... mein zweiter Versuch sah dann so aus:
Code:
Public Function GetUser() As String
GetUser = Environ("Username")
End Function
Public Function Verweis()
Verweis = _
"=VLOOKUP(""jak"",'Y:\JAK\Basisdaten\[PL05.04.2012.xlsx]BPL'!R2C1:R83C19,4,FALSE)"
End Function
Public Function UserAnrede() As String
UserAnrede = _
"=VLOOKUP(GetUser,[Y:\JAK\Basisdaten\PL05.04.2012.xlsx]BPL!R2C:R83C[18],2,FALSE)"
End Function
Public Sub Try()
.Formular = _
"=VLOOKUP(""jak"",'C:\Users\TIMME\Documents\JAK\Basisdaten\[PL05.04.2012.xlsx]BPL'!R2C1:R83C19,4,FALSE)"
End Sub
Das haut auch hinten und vorne nicht hin... Nicht wundern: Das sind schlichtweg nur drei Versuche. Beim ersten und zweiten habe ich den GetUser durch den Text "jak" ersetzt, da bei GetUser ja Quasi das gleiche rauskäme. Dabei wollte ich schlichtweg nur eine Fehlerquelle vermeiden.Leider bekomm' ich's einfach nicht hin einen Verweis auf die externe Datenquelle zu schreiben. PS: Die Datenquelle sollte dazu nicht geöffnet werden müssen.
Ich wäre wirklich verdammt dankbar, da kein einziges Forum und kein Googleergebnis - mit welchem Suchphrasen auch immer - dazu etwas auspuckt... oder ich mich einfach viel zu dumm anstelle. Aber im letzteren Fall bitte ich alle mir zu sagen warum ich mich dumm anstelle und um eine Lösung. Bin am verzweifeln.Vielen Dank im Voraus und frohe Ostern!Gruß Schorchi