Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Anwendung öffnen mit Environ("Username")

Anwendung öffnen mit Environ("Username")
27.03.2020 18:21:50
elRamin
Hallo
ich arbeite an einem Netzwerkrechner und habe eine freigegebene Exceldatei auf die mehrere Mitarbeiter zugreifen und Einträge vornehmen.
Nun habe ich eine Schaltfläche erstellt die ein externes Programm öffnet.
Das funktioniert aber nur mit mein User, nun möchte ich das Programm aber über die Schaltfläche auch von anderen User ausführen lassen ohne das ich die User ID im Makro hinterlegen will.
So funktioniert es ja schon mal:

Sub Statistik_öffnen()
Dim sha
Set sha = CreateObject("Shell.application")
'sha.Open "C:\Users\i6wsmp\Desktop\Statistik Erfassung 5.6.lnk"
End Sub

Jetzt dachte ich mir ich versuche es dann mal so:

Sub Statistik_öffnen()
Dim sha
Dim pfad
UID = Environ("Username")
Set sha = CreateObject("Shell.application")
pfad = Environ("Username") \ "Desktop\Statistik Erfassung 5.6.lnk"
sha.Open pfad
End Sub

Und noch einige andere Varianten probiert aber bis jetzt hat nichts wirklich geklappt.
gibt es da eine Lösung oder geht das gar nicht.
Ich möchte keine Msg Box wo der User steht öffnen oder den User in eine Excel Datei in eine Zelle schreiben lassen.
Danke für Eure Hilfe
Grüße elRamin
Anzeige

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Anwendung öffnen mit Environ("Username")
27.03.2020 18:43:42
mumpel
Hast Du den Backslash versehentlich an die falsche Stelle gesetzt? "USERPROFILE" ist richtig.
Environ("USERPROFILE") "\Desktop\Statistik Erfassung 5.6.lnk"
Korrektur
27.03.2020 18:45:15
mumpel
Environ("USERPROFILE") & "\Desktop\Statistik Erfassung 5.6.lnk"
AW: Korrektur
27.03.2020 19:00:26
elRamin
Hallo mumpel,
danke für die Antwort so habe ich schon mal keine Fehlermeldung aber das Programm öffnet sich nicht.
Gruß
elRamin
Anzeige
AW: Korrektur
27.03.2020 19:11:08
mumpel
Bist Du sicher, dass der Pfad korrekt ist und die Verknüpfung überall den selben Namen hat?
AW: Korrektur
27.03.2020 19:24:03
elRamin
Ja der Pfad ist richtig und die Verknüpfung hat bei jedem den selben Namen.
Damit öffnet sich eine Datenbank.
Gruß
elRamin
AW: Korrektur
27.03.2020 19:25:41
mumpel
Möglicherweise haut eine fehlende Berectigung dazwischen.
Anzeige
AW: Korrektur
27.03.2020 19:35:21
elRamin
Ah ok, naja wenn ich mein Username direkt ins Makro schreibe dann funktioniert es ja.
Und wenn er selber den Namen ausliest hatte ich gedacht das wird auch gehen ohne zu wissen welcher User die Datei gerade bearbeitet. Mit dem Button soll ja nur die Datenbank geöffnet werden mehr nicht.
Aber danke für deine Hilfe und ich habe ja schon mal den Erfolg das ich mit deiner Variante keine Fehlermeldung bekomme. :)
Gruß
elRamin
Anzeige
AW: Korrektur
27.03.2020 19:36:33
mumpel
Hast Du schon versucht die Anwendung direkt zu öffnen?
Sub OpenLnk()
  Shell "msaccess " & Environ("USERPROFILE") & "\Desktop\Database51.lnk", vbMaximizedFocus
End Sub

VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 16 - mit VBAHTML 12.6.0


Anzeige
AW: Anwendung öffnen mit Environ("Username")
27.03.2020 18:45:05
Nepumuk
Hallo elRamin,
in welchem Pfad liegt die Datei? Environ("Username") gibt nämlich den Anmeldenamen in Windows zurück, das kann nicht funktionieren.
Gruß
Nepumuk
AW: Anwendung öffnen mit Environ("Username")
27.03.2020 18:57:26
elRamin
Hallo Nepumuk,
die Datei liegt bei jeden User auf C:\Users\entsprechender User Name (meiner:i6wsmp)\Desktop\...
So funktioniert es ja: aber nur bei mir.
Sub Statistik_öffnen()
Dim sha
Set sha = CreateObject("Shell.application")
'sha.Open "C:\Users\i6wsmp\Desktop\Statistik Erfassung 5.6.lnk"
End Sub
Gruß
elRamin
Anzeige
Anwendung öffnen mit Environ("Username")
28.03.2020 14:28:37
Anton
Hallo elRamin,
probier's hiermit:
Code in Zwischenablage:

Sub b()
  Dim WshShell As Object, fso As Object  
  Dim link_name As String, oFolder  
  link_name = "\Photo Impression 6.lnk"  'anpassen
 'link_name = "\Statistik Erfassung 5.6.lnk"
  Set fso = CreateObject("Scripting.FileSystemObject")  
  Set WshShell = CreateObject("WScript.Shell")  
  For Each oFolder In WshShell.SpecialFolders  
    If InStr(1, LCase(oFolder), "desktop") <> 0 Then    
      If fso.fileexists(oFolder & link_name) Then  
        CreateObject("Shell.application").Open oFolder & link_name  
        Exit For  
      End If  
    End If  
  Next
  Set fso = Nothing  
  Set WshShell = Nothing  
End Sub

mfg Anton
Anzeige
AW: Anwendung öffnen mit Environ("Username")
28.03.2020 15:06:40
Daniel
Hi
Du musst den Pfad schon richtig zusammenbauen:
Pfad = "C:\Users" & Environ("Username") & "\Desktop\Statistik Erfassung 5.6.lnk"
Dann würde ich erstmal mit Dir(Pfad) "" prüfen, ob die Datei vorhanden ist bevor sha.Open ausgeführt wird.
Habt ihr alle das gleiche Windows?
Bei unterschiedlichen Windowsvarianten kann der Desktop-Pad unterschiedlich sein.
Gruß Daniel
Anzeige
Korrektur
28.03.2020 15:09:29
Daniel
Pfad = "C:\Users\" & Environ("Username") & "\Desktop\Statistik Erfassung 5.6.lnk"
Backslash nach Users bitte noch einfügen.
Gruß Daniel
AW: Korrektur
28.03.2020 16:38:58
elRamin
Hallo an alle,
Vielen Dank für die Hilfe, Daniels Tipp war genau der richtige.
Danke dir Daniel, so funktioniert es super.
Gruß elRamin
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Anwendung öffnen mit Environ("Username")


Schritt-für-Schritt-Anleitung

  1. Öffne das VBA-Editor-Fenster in Excel, indem Du ALT + F11 drückst.

  2. Füge ein neues Modul hinzu: Rechtsklicke auf "VBAProject (DeineDatei.xlsx)" -> Einfügen -> Modul.

  3. Schreibe den folgenden Code in das Modul:

    Sub Statistik_öffnen()
       Dim sha As Object
       Dim pfad As String
       pfad = Environ("USERPROFILE") & "\Desktop\Statistik Erfassung 5.6.lnk"
       Set sha = CreateObject("Shell.Application")
       sha.Open pfad
    End Sub
  4. Teste den Code, indem Du die Subroutine ausführst. Klicke dazu mit der rechten Maustaste auf die Sub und wähle "Ausführen".


Häufige Fehler und Lösungen

  • Fehler: "Datei nicht gefunden"

    • Lösung: Überprüfe den Pfad. Stelle sicher, dass der Desktop-Pfad korrekt ist und die Datei mit dem angegebenen Namen existiert.
  • Fehler: Anwendung öffnet sich nicht

    • Lösung: Vergewissere Dich, dass die Berechtigungen für das Öffnen der Datei vorhanden sind. Teste, ob der Pfad korrekt zusammengebaut ist.
  • Fehler: Environ("USERNAME") gibt falschen Benutzernamen zurück

    • Lösung: Benutze Environ("USERPROFILE") für den vollständigen Pfad.

Alternative Methoden

Eine Alternative zur Verwendung von Environ("USERNAME") ist der direkte Zugriff auf die Shell:

Sub OpenLnk()
    Dim pfad As String
    pfad = "C:\Users\" & Environ("USERNAME") & "\Desktop\Database51.lnk"
    Shell "msaccess " & pfad, vbMaximizedFocus
End Sub

Diese Methode öffnet die Anwendung direkt und kann je nach Bedarf angepasst werden.


Praktische Beispiele

Ein weiteres Beispiel könnte das Öffnen einer Access-Datenbank sein:

Sub OpenAccessDatabase()
    Dim pfad As String
    pfad = Environ("USERPROFILE") & "\Desktop\DeineDatenbank.accdb"
    Shell "msaccess " & pfad, vbNormalFocus
End Sub

Hierbei wird die Datei DeineDatenbank.accdb geöffnet, die sich im Desktop-Verzeichnis des aktuellen Benutzers befindet.


Tipps für Profis

  • Verwende Debug.Print in Deinem Code, um den Pfad auszugeben und sicherzustellen, dass er korrekt zusammengebaut wird.

  • Wenn Du mehrere Benutzer verwaltest, stelle sicher, dass die Verknüpfungen an den gleichen Orten für alle Benutzer vorhanden sind.

  • Überprüfe die Berechtigungen der Dateien und Ordner, um sicherzustellen, dass jeder Benutzer Zugriff hat.


FAQ: Häufige Fragen

1. Frage
Wie kann ich den aktuellen Benutzernamen in Excel anzeigen?
Antwort: Verwende Environ("USERNAME") um den aktuellen Benutzernamen abzurufen.

2. Frage
Funktioniert dieser Code in allen Excel-Versionen?
Antwort: Ja, der Code sollte in den meisten modernen Excel-Versionen (ab Excel 2010) funktionieren, solange VBA unterstützt wird.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige