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

Forumthread: VBA Relativer Pfad Username

VBA Relativer Pfad Username
29.06.2015 10:44:23
Kati
Meine Excel Datei soll als csv Datei auf dem Desktop des jeweiligen Users (Ordner Commande) über Makro gespeichert werden.
Dies funktioniert auch soweit.
Wie kann ich jedoch anstatt des fest hinterlegten username in meinem VBA Code einen relativen Pfad eingeben, so dass der Speicherort undabhängig
welcher User (Windows User) mit der Datei arbeitet passt.
Mein Code in diesem Fall für User test:
ChDir "C:\Users\test\Desktop\commande"
ActiveWorkbook.SaveAs Filename:= _
"C:\Users\test\Desktop\commande\commande.csv", FileFormat:= _
xlCSV, CreateBackup:=False
Ziel: Jeder User soll das Makro aufrufen können ohne dass im Makro der Username im Speicherort geändert werden muss.
Vielen Dank im Voraus.
Kati

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Relativer Pfad Username
29.06.2015 10:50:40
Nepumuk
Hallo,
mit:
Environ$("USERNAME")
kommst du an den Benutzernamen.
Gruß
Nepumuk

AW: VBA Relativer Pfad Username
29.06.2015 11:12:10
Kati
Sorry wie muss dann dies in meinem Fall aussehen im Code aussehen (Code siehe oben)?

AW: VBA Relativer Pfad Username
29.06.2015 11:16:25
Nepumuk
Hallo,
so:
ActiveWorkbook.SaveAs Filename:="C:\Users\" & Environ$("USERNAME") & _
    "\Desktop\commande\commande.csv", FileFormat:=xlCSV

CHDir kannst du dir sparen da du den kompletten Pfad in der SaveAs-Methode angibst.
Gruß
Nepumuk
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

VBA Relativer Pfad für den Windows Benutzernamen


Schritt-für-Schritt-Anleitung

Um einen relativen Pfad zu verwenden, der unabhängig vom Windows Benutzernamen funktioniert, kannst du den Befehl Environ$("USERNAME") verwenden. Hier ist eine Schritt-für-Schritt-Anleitung, wie du dies in deinem VBA-Code umsetzt:

  1. Öffne die Excel-Datei, in der du das Makro implementieren möchtest.

  2. Drücke ALT + F11, um den VBA-Editor zu öffnen.

  3. Füge ein neues Modul hinzu, indem du im Projekt-Explorer mit der rechten Maustaste auf "VBAProject" klickst und "Einfügen" > "Modul" wählst.

  4. Kopiere und füge den folgenden VBA-Code ein:

    Sub SpeichernAlsCSV()
       Dim Pfad As String
       Pfad = "C:\Users\" & Environ$("USERNAME") & "\Desktop\commande\commande.csv"
       ActiveWorkbook.SaveAs Filename:=Pfad, FileFormat:=xlCSV, CreateBackup:=False
    End Sub
  5. Schließe den VBA-Editor und kehre zu Excel zurück.

  6. Du kannst das Makro jetzt ausführen, und es wird die CSV-Datei im entsprechenden Benutzer-Desktop-Ordner speichern.


Häufige Fehler und Lösungen

  • Fehler: „Pfad nicht gefunden“
    Lösung: Stelle sicher, dass der Ordner „commande“ auf dem Desktop existiert. Erstelle diesen Ordner manuell, falls er nicht vorhanden ist.

  • Fehler: „Zugriff verweigert“
    Lösung: Überprüfe die Berechtigungen des Benutzers im Windows-Betriebssystem. Möglicherweise benötigt der Benutzer Administratorrechte, um in den Desktop-Ordner zu schreiben.


Alternative Methoden

Eine alternative Methode besteht darin, den Pfad über die Application-Eigenschaft zu ermitteln:

Sub SpeichernAlsCSVAlternative()
    Dim Pfad As String
    Pfad = Application.DefaultFilePath & "\commande\commande.csv"
    ActiveWorkbook.SaveAs Filename:=Pfad, FileFormat:=xlCSV, CreateBackup:=False
End Sub

Diese Methode verwendet den Standarddateipfad von Excel. Stelle sicher, dass der Ordner „commande“ dort vorhanden ist.


Praktische Beispiele

Hier sind einige praktische Anwendungen des Codes:

  1. Speichern von Berichten: Du kannst Berichte automatisch auf dem Desktop jedes Benutzers speichern.
  2. Datenexport: Exportiere Daten aus Excel in CSV-Dateien zur weiteren Verwendung in anderen Anwendungen.

Tipps für Profis

  • Verwendung von vba environ$: Nutze vba environ$ für dynamische Variablen, die auf Umgebungsvariablen zugreifen.
  • Fehlerbehandlung: Implementiere eine Fehlerbehandlung, um sicherzustellen, dass das Makro nicht unerwartet stoppt. Beispiel:

    On Error GoTo Fehlerbehandlung
    ' ... dein Code ...
    Exit Sub
    
    Fehlerbehandlung:
       MsgBox "Fehler: " & Err.Description

FAQ: Häufige Fragen

1. Wie finde ich den Benutzernamen in VBA?
Du kannst den Benutzernamen mit Environ$("USERNAME") abrufen.

2. Funktioniert dieser Code auch in älteren Excel-Versionen?
Ja, der Code ist mit den meisten Excel-Versionen kompatibel, die VBA unterstützen.

3. Was mache ich, wenn der Pfad zu lang ist?
Überprüfe, ob du den Pfad verkürzen oder alternative Speicherorte verwenden kannst, um das Problem zu lösen.

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