Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: pfad environment variable

pfad environment variable
15.02.2019 07:16:46
Antonio
Gut Morgen Gemeinde,
mich würde interessieren wie man, wenn ich mein Projekt auf mehrere Comp ausführe, den Pfad so zu schreiben das er für alle Nutzer gültig ist.
z.B.: Man würde den Pfad so schreiben:
Pfad = "C:\Users\antonio\Desktop\Lampen\NEU\" & cmbLampe.Text & ".jpg"
Was soll als globale Variable im Pfad, anstatt von Antonio?
Ich habe an sowas gedacht:
Pfad = "C:\Users\" & (Environ("USERNAME"))\Desktop\Lampen\NEU\" & cmbLampe.Text & ".jpg"
Aber ich glaube so funzt nicht, es wäre zu einfach, ich habe noch keine Erfahrung damit und deswegen bitte um eure Hilfe.
Vielen Dank im Voraus
Antonio
Anzeige

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Schreibe es mal...
15.02.2019 07:23:10
Case
Hallo, :-)
... so: ;-)
Environ$("USERPROFILE") & "\Desktop\Lampen\NEU\" & cmbLampe.Text & ".jpg"
Servus
Case

AW: Schreibe es mal...
15.02.2019 08:41:01
Antonio
Hallo Case,
sehr gut, funzt prima.
Vielen Dank
Antonio
@ was ist der Unterschied "USERNSME" und "USERPROFILE" ?
Anzeige
AW: Schreibe es mal...
15.02.2019 08:52:09
Nepumuk
Hallo Antonio.
"USERNAME" gibt den Benutzernamen in Windows zurück. Also z.B. Nepumuk
"USERPROFILE" gibt den Pfad zu dem Profil des Benutzers zurück. Also z.B. C:\Users\Nepumuk
Gruß
Nepumuk
AW: noch was
15.02.2019 09:50:28
Antonio
hallo Nepumuk,
vielen Dank.
Bitte eine andere Frage hätte ich noch:
CoboBox -> ich versuche den ausgewähltem Item anzusprechen,
habe aber 3 Möglichkeiten gefunden:
"CB.Text"
"CB.Value"
"CB SelText"

alle funzen, aber in verschiedene Angelegenheiten.
Ich habe immer "CB.SelText" verwendet um den Item in ComboBox anzusprechen, ich meine der der gerade sichtbar ist.
Jetzt im Pfad funzt nicht aber "CB.Value" schon.
Gibt es hier Merkmale zu merken?
Vielen Dank im Voraus
Antonio
Anzeige
Hast du keine F1-Taste oder ist sie defekt...
15.02.2019 09:58:03
EtoPHG
Antonio?
Im VBEditor den Cursor auf die Eigenschaft (.Value, .SelText etc.) setzen und F1 drücken, hilft mit einer erklärenden Hilfe zu der Eigenschaft!
Gruess Hansueli
AW: Hast du keine F1-Taste oder ist sie defekt...
15.02.2019 10:18:30
Antonio
Mannnnn!!!
Die Taste F1 wird von mir immer vergessen.
Soll ich evtll rot markieren.
Vielen Dank Hansueli
Antonio
Anzeige
rot = Verbot, grün = Beruhigend ;-) (owT)
15.02.2019 10:24:59
EtoPHG

AW: rot = Verbot, grün = Beruhigend ;-) (owT)
15.02.2019 10:54:26
Antonio
Stimmt
Servus
AW: noch was
15.02.2019 10:26:31
Nepumuk
Hallo Antonio,
da muss ich ein bisschen weiter ausholen.
SelText gibt den sichtbaren, markierten Text zurück. Du kannst mit der Maus z.B. nur die ersten zwei Zeichen des angezeigten Textes markieren. Dann ist SelText nur diese beiden Zeichen. Diese Eigenschaft würde ich nur verwenden wenn du sie für diesen Sonderfall wirklich benötigst.
Text und Value ist eigentlich das gleiche. Nur das Text einen String zurück gibt, Value aber einen Variant von Untertype String. Ein String benötigt weniger Speicher wie ein Variant. Jetzt kommt das große ABER.
Wenn deine ComboBox mehrere Spalten hat und du nur die BoundColumn-Eigenschaft auf 2 festgelegt hast, dann ist die Text-Eigenschaft der angezeigte Text, die Value-Eigenschaft der Wert aus der 2. Spalte der Liste.
Wenn du nur die TextColumn-Eigenschaft auf 2 festgelegt hast, dann wird dir in der ComboBox nach dem Auswählen eines Eintrags der Wert aus Spalte 2 der Liste angezeigt. Die Text-Eigenschaft gibt dir in dem Fall den angezeigten Text zurück, die Value-Eigenschaft den Wert aus Spalte 1.
Wenn du beide Wert (BoundColumn und TextColumn) auf 2 festlegst, dann geben dir die Text-Eigenschaft und die Value-Eigenschaft wieder den angezeigten Wert der 2. Spalte zurück.
Also, wenn du den angezeigten Wert der ComboBox auswerten willst, dann immer die Text-Eigenschaft benutzen.
Gruß
Nepumuk
Anzeige
AW: Danke an alle
15.02.2019 11:05:33
Antonio
Heute bin glücklich!!!! (;-)
;
Anzeige
Anzeige

Infobox / Tutorial

Pfad der Environment Variable in Excel VBA


Schritt-für-Schritt-Anleitung

Um den Desktop-Pfad eines Benutzers in Excel VBA zu bestimmen, kannst du die Environ-Funktion verwenden. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. Öffne den Visual Basic for Applications (VBA) Editor:

    • Drücke ALT + F11 in Excel.
  2. Füge ein Modul hinzu:

    • Klicke auf Einfügen > Modul.
  3. Verwende den folgenden Code:

    Dim Pfad As String
    Pfad = Environ$("USERPROFILE") & "\Desktop\Lampen\NEU\" & cmbLampe.Text & ".jpg"
  4. Führe das Skript aus:

    • Stelle sicher, dass cmbLampe eine ComboBox ist, die den Dateinamen enthält.

Mit dieser Methode kannst du den Pfad für jeden Benutzer korrekt ermitteln, unabhängig davon, wie der Benutzername lautet.


Häufige Fehler und Lösungen

  • Fehler: "Pfad nicht gefunden"
    Lösung: Stelle sicher, dass der Ordner "Lampen\NEU" auf dem Desktop des jeweiligen Benutzers existiert.

  • Fehler: "Variable nicht definiert"
    Lösung: Vergewissere dich, dass die ComboBox cmbLampe im VBA-Projekt korrekt definiert und initialisiert ist.

  • Fehler: Falsche Verwendung von Environ
    Stelle sicher, dass du Environ$("USERPROFILE") verwendest. Der Aufruf sollte ohne Leerzeichen erfolgen.


Alternative Methoden

Eine alternative Methode zur Verwendung von Environ ist die direkte Verwendung von Environ("USERNAME") oder Environ("USERPROFILE"). Hier ist ein Beispiel:

Dim Benutzername As String
Benutzername = Environ("USERNAME")
MsgBox "Willkommen " & Benutzername

Diese Methode gibt dir den Benutzernamen des aktuellen Windows-Benutzers zurück und kann in verschiedenen Szenarien nützlich sein.


Praktische Beispiele

Hier sind einige Anwendungsbeispiele für die Verwendung von Environ in Excel VBA:

  1. Desktop-Pfad ermitteln:

    Dim DesktopPfad As String
    DesktopPfad = Environ$("USERPROFILE") & "\Desktop"
    MsgBox "Dein Desktop-Pfad ist: " & DesktopPfad
  2. Zugriff auf andere Umgebungsvariablen:

    Dim TempPfad As String
    TempPfad = Environ$("TEMP")
    MsgBox "Dein temporärer Pfad ist: " & TempPfad

Diese Beispiele zeigen, wie einfach es ist, verschiedene Pfade und Variablen in VBA zu verwenden.


Tipps für Profis

  • Verwende Environ für dynamische Pfade: Anstatt feste Pfade zu verwenden, die nur für einen bestimmten Benutzer funktionieren, nutze Environ, um sicherzustellen, dass dein VBA-Code universell einsetzbar ist.

  • Kombiniere Environ mit anderen VBA-Funktionen: Du kannst Environ mit Funktionen wie Dir oder FileExists kombinieren, um die Existenz von Dateien zu überprüfen, bevor du versuchst, auf sie zuzugreifen.

  • Optimiere die Nutzung von Variablen: Wenn du häufig auf den USERPROFILE-Pfad zugreifst, speichere ihn in einer Variablen, um die Performance zu steigern.


FAQ: Häufige Fragen

1. Was ist der Unterschied zwischen USERNAME und USERPROFILE?
USERNAME gibt den Namen des aktuellen Benutzers zurück, während USERPROFILE den vollständigen Pfad zum Benutzerprofil angibt.

2. Wie kann ich den Desktop-Pfad für andere Benutzer ermitteln?
Du kannst Environ("USERPROFILE") verwenden, um den Desktop-Pfad für den aktuell angemeldeten Benutzer zu ermitteln. Es gibt keine Notwendigkeit, den Benutzernamen manuell einzugeben.

3. Kann ich andere Umgebungsvariablen abrufen?
Ja, du kannst viele andere Variablen wie TEMP, APPDATA und mehr mit Environ abrufen, um verschiedene System- und Benutzerdaten zu erhalten.

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