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

Benutzername als Variable für Pfad

Forumthread: Benutzername als Variable für Pfad

Benutzername als Variable für Pfad
09.06.2021 08:21:43
Thomas
Guten Morgen zusammen,
ich habe ein Problemchen. Und zwar möchte ich Dateien von einen Odner in einen anderen kopieren (lassen).
Leider ist der Pfad in den kopiert werden soll mit Benutzerabhängig.
Zum kopieren habe ich diesen Code:

Sub Backup()
Dim strPfad1$, strPfad2$, strName$
strPfad1 = "C:\Users\username\Desktop\Test_voll"
strPfad2 = "C:\Users\username\Desktop\Test_leer"
strName = Dir$(strPfad1 & "\*", vbNormal)
Do Until LenB(strName) = 0
If Not CreateObject("Scripting.FileSystemObject").FileExists(strPfad2 & "/" & strName) Then _
FileCopy strPfad1 & "/" & strName, strPfad2 & "/" & strName
strName = Dir$
Loop
End Sub
Ich dachte mir ich erstelle eine Variable mit:
Dim strName As String
strName = Environ("Username")
Weiß aber nicht wie ich das dann in den Pfad bekomme.
Könnt ihr mir da weiterhelfen?
Vielen Dank vorab.
Gruß
Thomas
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Benutzername als Variable für Pfad
09.06.2021 08:27:11
Fennek
Hallo,
versuche es mit

strPfad1 = Environ("UserProfile") & "\Desktop\Test_voll"
strPfad2 = Environ("UserProfile") & "\Desktop\Test_leer"
mfg
AW: Benutzername als Variable für Pfad
09.06.2021 08:40:24
Thomas
Hallo Fennek,
hat funktioniert.
Vielen Dank!
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Benutzername als Variable für Pfad in Excel VBA


Schritt-für-Schritt-Anleitung

Um den Benutzernamen als Variable für den Pfad in deinem VBA-Skript zu verwenden, kannst du folgendermaßen vorgehen:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu starten.

  2. Erstelle ein neues Modul über Einfügen > Modul.

  3. Kopiere und füge folgenden Code in das Modul ein:

    Sub Backup()
       Dim strPfad1 As String, strPfad2 As String
       strPfad1 = Environ("UserProfile") & "\Desktop\Test_voll"
       strPfad2 = Environ("UserProfile") & "\Desktop\Test_leer"
    
       Dim strName As String
       strName = Dir$(strPfad1 & "\*", vbNormal)
    
       Do Until LenB(strName) = 0
           If Not CreateObject("Scripting.FileSystemObject").FileExists(strPfad2 & "\" & strName) Then _
           FileCopy strPfad1 & "\" & strName, strPfad2 & "\" & strName
           strName = Dir$
       Loop
    End Sub
  4. Ändere die Ordnernamen (Test_voll und Test_leer) nach Bedarf.

  5. Führe das Skript aus, um die Dateien zu kopieren.

Mit der Verwendung von Environ("UserProfile") wird der Pfad automatisch an den aktuellen Benutzer angepasst.


Häufige Fehler und Lösungen

Fehler 1: „Das System kann die angegebene Datei nicht finden.“

Lösung: Überprüfe, ob die Quell- und Zielordner tatsächlich existieren und die richtigen Namen haben.

Fehler 2: „Zugriff verweigert.“

Lösung: Stelle sicher, dass du die nötigen Berechtigungen hast, um auf die Dateien und Ordner zuzugreifen.


Alternative Methoden

Eine alternative Methode zur Verwendung des Benutzernamens im Pfad ist die Verwendung einer Eingabeaufforderung, um den Benutzernamen manuell einzugeben:

Dim strName As String
strName = InputBox("Bitte geben Sie Ihren Benutzernamen ein:")
strPfad1 = "C:\Users\" & strName & "\Desktop\Test_voll"
strPfad2 = "C:\Users\" & strName & "\Desktop\Test_leer"

Hierbei musst du jedoch darauf achten, dass der Benutzer den richtigen Namen eingibt.


Praktische Beispiele

Um das Skript in der Praxis zu verwenden, kannst du eine Excel-Datei mit verschiedenen Testdateien im Ordner Test_voll erstellen. Nach dem Ausführen des Skripts sollten diese Dateien in den Ordner Test_leer kopiert werden.


Tipps für Profis

  • Fehlerbehandlung: Implementiere eine Fehlerbehandlung, um das Skript robuster zu machen. Füge On Error Resume Next am Anfang des Skripts hinzu.
  • Benachrichtigungen: Verwende MsgBox, um den Benutzer nach Abschluss des Kopiervorgangs zu informieren.

    MsgBox "Kopieren abgeschlossen!"

FAQ: Häufige Fragen

1. Wie kann ich das Skript anpassen, um mehrere Dateitypen zu kopieren? Du kannst die Bedingung in der Do Until-Schleife anpassen, um nur spezifische Dateitypen zu kopieren, indem du den Dateinamen filterst.

2. Funktioniert dieses Skript in Excel 2016? Ja, das Skript ist mit Excel 2016 und neueren Versionen kompatibel.

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