Anzeige
Archiv - Navigation
1944to1948
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

Case UserName

Case UserName
30.08.2023 09:17:51
Mathias221
Hallo Excel gemeinde und VBA Profis,

gibt es eine möglich keit bei dem Codesnipsel, den "WindwosLoginName" aus einem Tabellenblatt heraus zu suchen?

Select Case UserName

Case "WindwosLoginName"


Vielen Dank

Mit freundlichen Grüßen

Mathias

20
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Username
30.08.2023 09:23:02
Rudi Maintaire
Hallo,
ja.

Was willst du erreichen?

Gruß
Rudi
AW: Username
30.08.2023 09:26:00
Mathias221
Hallo Rudi,

es soll eine Tabelle geben, in der das gesamte Personal steht mit den WindowsLogins und ich dann aus der Tabelle heraus suche wer eingeloggt ist und dann auf bestimmten Tabellenblättern dann nur die Zeilen angezeigt werden, die für die Person relevant sind.
Es soll natürlich auch einpaar Personen geben, die alles sehen.

Gruß Mathias
AW: Username
30.08.2023 09:30:55
Rudi Maintaire
Hallo,
dafür brauchst du keine Tabelle.
Den Windoof-Benutzernamen bekommst du mit
EingeloggterNutzer = Environ("username")

Damit kannst du dann arbeiten.

Gruß
Rudi
Anzeige
AW: Username
30.08.2023 09:40:36
Mathias221
Hallo rudi,

Die Windoof Login Namen kenne ich von jedem den brauche ich nicht auslesen.

Ich hätte gerne eine Tabelle dazu da ich weiss wie ich es via VBA mache aber nicht wie ich die Daten aus einem Tabellenblatt abgreife.

Gruß Mathias
AW: Username
30.08.2023 09:47:47
RPP63
Moin!
Da Du so extrem detailliert beschreibst:
Mittels Application.Match
(in der Annahme, dass Du einen in einer Tabelle hinterlegten Namen abgreifen willst)

Beispieldatei?

Gruß Ralf
Username
30.08.2023 09:52:29
Oberschlumpf
Hi Mathias,

es mag sein, dass du jeden Login-Namen deiner Kollegen kennst, aber trotzdem wirst du Environ("username") benötigen, weil ja - in Abhängigkeit davon, wer gerade angemeldet ist - nicht immer das Gleiche passieren soll.

Und bevor wir lange weiter raten, warte zumindest ich, bis du uns bitte per Upload eine Bsp-Datei mit Bsp-Daten zeigst - und - anhand deiner Bsp-Datei bitte noch mal erklärst, was wann wieso wo wie passieren soll.

Ciao
Thorsten
Anzeige
Username
30.08.2023 10:16:50
Mathias221
Hallo Thorsten,

hier die Datei https://ddownload.com/mzvfdxflyxln/Dienstplan_Weapons.xlsm

leider kann ich die Datei hier nicht hochladen, da sie zu groß ist und packen kann ich Sie auch nicht anders.

Also jetzt zu dem Problem. Es gibt schon eine Tabelle (Pers) mit allen WindowsLogin oder zumindest fast alle.
Jetzt wäre es schön wenn jemand die Tabelle öffnet überprüft wird, wie er heisst und dann in den MMMM YY Tabellenblättern die Zeilen ausgeblendet werden, die nicht der eingeloggt Nutzer ist, bzw soll es ja auch noch ein Paar Personen geben, die alles sehen können.

Ja mir ist klar das kann ich über VBA machen aber nicht alle wissen wie das geht und wollen sich auch nicht damit beschäftigen, deswegen die frage ob es aus der Tabelle Pers heraus geht mit der Überprüfung wer eingeloggt ist.

Ich hoffe die Beschreibung war ausreichend und man kann die Datei Downlaoden

Gruß Mathias
Anzeige
ohne VBA ...
30.08.2023 10:40:08
Rudi Maintaire
... kannst du nicht feststellen, wer angemeldet ist.

Gruß
Rudi
ohne VBA ...
30.08.2023 10:44:40
Mathias221
Hallo Rudi,

bestimmt geht das aber ich weis nicht wie das geht.

Gruß Mathias
ohne VBA ...
30.08.2023 11:16:31
Oberschlumpf
ähh Mathias,

seit ca 30 Min bin ich mit deiner 7MB-Datei!!! beschäftigt.
Jetzt les ich mal wieder hier im Forum...und stelle fest, dass...

...du, VBA bescheiden...
...Rudi, VBA = mindestens so lange Erfahrung wie ich (ich seit ca 20 Jahren), oder Rudi is sogar schon länger dabei....nicht glauben willst/kannst, was er schreibt

Mir ist ebenso nicht bekannt, wie man den Usernamen ohne VBA auslesen kann.
Aber ok, ok, ok...vielleicht gibts ja wirklich ne Funktion/Formel, mit der das doch geht.

Da aber ich, wie erwähnt, diese Formel nicht kenne, du dich weiter so doll gegen VBA wehrst (obwohl in der Datei soooo viel VBA enthalten ist!!!), bin ich nun wieder raus.

Ich versteh nur nich, wieso du dich dagegen so wehrst?????
Denn bitte wieso muss ein Anwender von VBA Ahnung haben??? Wenn alles korrekt programmiert ist, dann muss Anwender doch nur n paar Knöpfe drücken, und vieles läuft automatisch!

Außerdem....ich kenn dich ja wegen deiner anderen Frage, siehe https://www.herber.de/forum/archiv/1944to1948/1944033_TB_kopieren_aus_mehren_Dateien_on_Err.html
a) in der Datei haben wir auch sehr, sehr viel mit VBA gelöst
b) in der Datei sind genau dieselben Kollegen betroffen wie hier!

Aber ok, weiter viel Erfolg...ich bin raus

Ciao
Thorsten
Anzeige
ohne VBA ...
30.08.2023 11:23:08
Mathias221
Hallo Thorsten,

ich wehre mich nicht gegen VBA es darf gerne da drin stehen und so ist ja auch der Plan aber ich kenne es nur so, dass ich jeden Usernamen im VBA Code einbetten muss, kann man das anders lösen?

Entschuldigung das es so lange dauert aber so große Dateien kann ich nicht hochladen hier leider

Gruß Mathias
Wo Du die Usernames ablegst …
30.08.2023 11:35:50
RPP63
… ist doch völlig egal.
Du kannst in einem verryhidden Sheet eine Liste ablegen und sie (siehe mein obiger Beitrag) mittels Application.Match() überprüfen.
Du kannst sie meinethalben auch in einer .ini-Datei ablegen und mittels VBA darauf zugreifen.
(Im Code selbst ist kein Username vorhanden!)
Aber Dein Ansatz als solcher ist imo sehr fraglich!
Man sollte einem Anwender nur das zur Verfügung stellen, was er auch sehen darf.
Und nein: Ausblenden von Zeilen ist die denkbar schlechteste Variante!

Gruß Ralf
Anzeige
bin nich sicher, aber...
30.08.2023 12:05:20
Oberschlumpf
Hi Mathias,

...ich glaub, dass ich dich jetzt verstanden hab.

Bevor ich aber wieder mit programmieren beginne, erst mal noch n paar Fragen.

Du kennst die Login-Namen der Kollegen - wir aber nicht! - und bisher hast du uns auch noch nich verraten, welche das sind!
Ich VERMUTE, Loginname = PersNr aus Blatt "Pers", oder?

Wenn ich nämlich falsch vermutet habe, dann würde ich ebenso falsch programmieren, würde ich deine Antwort nich abwarten.

So, und nun der Teil, wo ich - vermute - dich richtig verstanden zu haben

Aufgabe:
1) je nachdem, wer die Datei öffnet (Login z Bsp "11463114"), soll in den Monatsblättern, z Bsp "Juni 23" auch nur DIE Zeilen sehen können, in denen in Spalte C der zum Login zugehörige Name steht (Login = 11463114, zugehöriger Name = "Becher")

1a) Einige Loginnamen dürfen alle Zeilen sehen!

Lösungsidee:
zu 1)


Dim lstrLogin As String
Dim lloRow As Long, lstrPerson As String

'-----------Start Lösung zu 1)--------------------
lstrLogin = Environ("username")

With Sheets("Pers")
For lloRow = 3 To .Cells(.Rows.Count, 1).End(xlUp).Row
If lstrLogin = .Range("AL").Value Then
lstrPerson = .Range("AL").Value
Exit For
End If
Next
End With

With Sheets("Juni 23")
For lloRow = 13 To .Cells(.Rows.Count, 1).End(xlUp).Row
If lstrPerson > .Range("C").Value Then 'wenn Name von Kollege NICHT in geprüfter Zeile in Spalte C steht...
'...dann Zeile ausblenden (hab für Ausblenden auf die Schnelle den Code nicht zur Hand, deswegen nur der Kommentar)
End If
Next
End With
'-----------Ende Lösung zu 1)--------------------

'-----------Start Lösung zu 1a) --------------------
'für jeden Login, der alles sehen darf, musst du in einer Tabelle genau die Logins als solche kennzeichnen, die alles sehen dürfen, z Bsp extra Spalte in Blatt "Pers" wo z Bsp drin steht "alles" oder "admin" oder oder oder
'-----------Ende Lösung zu 1a) --------------------
End Sub

a) in diesem Code muss - nich - jeder einzelne Login namentlich kodiert sein
b) kommt dieser Code in etwa so hin, was du erreichen willst?

Und auch das, was Ralf noch schrieb, ist nicht zu verachten.

Denn...
...Code funktioniert nur, wenn Makros aktiviert sind (wenn Datei öffnen ohne aktiv. Makro, dann sieht jeder "Öffner" auch jede Zeile)

Besser wäre es insgesamt, so denke ich jetzt nachdem Lesen von Ralfs Beitrag, wenn du das Konzept komplett änderst, und zwar:
- deine 7MB-Hauptdatei nur als "Datenbank" im Hintergrund öffnen
- eine andere Excel-Datei erstellen, die eben von jedem Kollegen tatsächlich "sichtbar" geöffnet wird
- und nur in dieser Datei werden nur die Zeilen aus 7MB-Datei ausgelesen, die der Kollege sehen darf

Aber mal schauen, wie es weitergeht.

Ciao
Thorsten
Anzeige
Username
30.08.2023 12:20:32
Mathias221
Hallo Thorsten,

Ja richtig die PersNr ist der Loginname.

1) seiht gut aus aber die Tabellenblätter Juni 23, Juli 23 und fortlaufend sind nicht alle sondern nur ein Teil kann man das so Programmieren, dass er alle Tabellenblätter mit MMMM YY einbezieht? Den die Datei erstellt neue Montasblätter immer mit der Bezeichung MMMM YY.

1a) Richtig, die kann man bestimmt mit einer extra Kennung oder so Bezeichnen oder in einem gesonderten Bereich reinschreiben da hab ich kein Plan ob das geht so wie ich mir das vorstelle.

Ja die zu teilen haben wir bereits aber hier sehen alle alles, und das Problem ist schließt ein Admin die Hauptdatei wird eine neue für alle erstellt was aber nur geht wenn die andere nicht geöffnet ist und hier gibt es das Problem dass es dann nicht gespeichert werden kann. Wenn es natürlich eine andere bzw bessere Lösung gibt wie gesagt ich bin dabei.

Gruß Mathias
Anzeige
bin nich sicher, aber...
30.08.2023 12:36:55
Oberschlumpf
Hi Mathias,

ok, ich weiß nun, dass ich mit meinen Vermutungen und VBA-Vorschlägen so weit richtig bin.

Aber trotzdem...

a) meine Ideen kamen ja vor dem Beitrag von Ralf - und er hat recht! Es wird nicht gutgehen, wenn wirklich alle direkt in der Hauptdatei "rumwerkeln" würden.
Einen Ansatz, wie das Ganze mit ner Extra-Datei gehen kann, haben wir doch in deiner letzten Frage erarbeitet - da wird die Hauptdatei doch auch "nur" im Hintergrund geöffnet und nur die Zeilen in Extra-Datei von dem Kollegen eingelesen, der zuvor in Kombobox ausgewählt wurde.

Jetzt willst du - im Prinzip - nix anderes erreichen. Die Komboboxauswahl ist jetzt nur der Login-Name.

b) weil aber der jetzt notwendige Aufwand...
- Hauptdatei NUR mit Daten befüllt, ohne Makros, ohne "Schnickschnack" (Farben, Formate, usw) als Datenbank im Hintergrund (die mittels "Freigabe" von mehreren gleichzeitig geöffnet werden kann)
- Extra-Datei mit Makros, Farben, Formate usw erstellen
...einfach zu viel Aufwand ist, um all das nur in einem Forum lösen zu können, bin ich leider raus.

Wir würden Wochen benötigen.
Tut mir leid, aber das würd zumindest ich nicht schaffen.

Ciao
Thorsten
Anzeige
bin nich sicher, aber...
30.08.2023 12:41:56
Mathias221
Hallo Thorsten,

ja du hast recht das wäre auch eine Idee kann man den Code so verändern in der Datei, dass er zuerst die Hauptdatei nimmt und dann alle Monate die in der Hauptdatei sind ohne Backup denn das wäre dort ja nicht nötig. Wichtig ist das er auch die Kommentare mit kopiert.

Gruß Mathias
bin nich sicher, aber...
30.08.2023 12:46:43
Mathias221
Hallo Thorsten,

kann man das DropDown auch aus der Hauptdatei heraus befüllen, jetzt hab ich das ja im Code eingebettet da ich keine bessere Lösung gefunden habe.

Gruß Mathias
bin nich sicher, aber...
30.08.2023 12:49:33
Oberschlumpf
äh, Mathias...

...hast du mich nich verstanden? :-)
Mit "ich bin raus" mein ich, dass ich vorhatte, in diesem Beitrag nicht mehr zu antworten
- und trotzdem stellst du mir weiterhin Fragen -

Na ja, vielleicht hatte ich auch zu undeutlich formuliert.
Letzte Antwort von mir:
Ja, sicher kann man all den Code usw ändern - aber! - zu viel Aufwand, all das in einem Forum erledigen zu wollen...zumindest für mich.

Weiter viel Erfolg!

Ciao
Thorsten
Anzeige
bin nich sicher, aber...
30.08.2023 15:00:44
Mathias221
Hallo,

wäre es möglich, dass man nur eine Hauptdatei hat für die ich Nenne Sie Admins hat und eine Datei für den Rest der die nur die zeile der im Windows eingeloggten Person enthält. Wäre das eine Lösung die einfacher zu lösen wäre?
Case Username
30.08.2023 11:49:43
Mathias221
Hallo RPP63,

Wenn du eine besser lösung hast so das jeder Nutzer nur seine Zeile quasi sieht aber alle in eine Datei gehen bin ich natürlich dafür offen.

Gruß Mathias

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige