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

Forumthread: Desktoppfad in Zelle ausgeben

Desktoppfad in Zelle ausgeben
Ralf
Hallo Forum,
ich möchte in einem Tabellenblatt "Eingabe" einen allgemeingültigen Pfad zum Desktop ausgeben.
Ich habe da mal ein bisschen rumprobiert:
Private Sub Worksheet_Change(ByVal Target As Range)
'--- Desktop Pfad in Zelle B55 eintragen
'Sheets("Eingabe").Range("B55") = Environ("UserProfile") & "\Desktop\"
End Sub
Es funktioniert aber nicht. Vielleicht kann mir ein VBA Spezialist helfen.
Vielen Dank im Voraus.
Gruß
Ralf
Anzeige
AW: Desktoppfad in Zelle ausgeben
30.03.2011 14:18:41
Beverly
Hi Ralf,
' Code von Kl@us-M. (Clever-Forum.de)
Sub desktop_pfad()
Dim WSHShell As Object
Dim strDesktopPath As String
Set WSHShell = CreateObject("wscript.Shell")
strDesktopPath = WSHShell.SpecialFolders.Item("Desktop")
MsgBox strDesktopPath
End Sub



Anzeige
AW: Desktoppfad in Zelle ausgeben
30.03.2011 14:25:10
Ralf
Hallo Karin,
danke für die schnelle Antwort.
Ich möchte den Code aber direkt in das Tabellenbaltt als Private Sub schreiben. Ich hoffe, dass ich mich jetzt klar ausgedrückt habe, wie das aussehen soll.
Das Makro soll sofort nach Öffnen der Arbeitsmappe den Desktoppfad in das Tabellenblatt "Eingabe", Zelle B55 schreiben.
Wie soll das mit dem Code von Dir funktionieren? Ich finde den Bezug zum Tabellenblatt noch zur Zelle.
Viele Grüße
Ralf
Anzeige
AW: Desktoppfad in Zelle ausgeben
30.03.2011 15:19:12
Beverly
Hi Ralf,
im Codemodul DieseArbeitsmappe gibt es das WorkBook_Open Ereignis - dort gehört der Code hin, wenn du das beim Öffnen auslesen willst.
Wenn du das Ergebnis in eine Zelle schreiben willst, dann musst du in der Zeile mit der MsgBox dies entsprechend ersetzen:
Worksheets("Eingabe").Range(B55") = strDesktopPath

Ein wenig Mitdenken hilft, denn einen Teil des Codes hattest du doch schon vorliegen.


Anzeige
AW: Desktoppfad in Zelle ausgeben
30.03.2011 16:02:15
Ralf
Hallo Forum,
ich habe nun unter "Diese Arbeitsmappe" folgenden Code stehen:
Private Sub Workbook_Open()
Dim WSHShell As Object
Dim strDesktopPath As String
Set WSHShell = CreateObject("wscript.Shell")
strDesktopPath = WSHShell.SpecialFolders.Item("Desktop")
'MsgBox strDesktopPath
Worksheets("Eingabe").Range(B55") = strDesktopPath
End Sub
Der Tipp mit dem Mitdenken ist gut, aber VBA bedeutet für mich Makrorekorder. Nicht mehr und nicht weniger. Ich kann es eben nicht, daher stelle ich ja hier die Frage.
Viele Grüße
Ralf
Anzeige
'Ich kann es eben nicht!' ist Selbstblockade,...
30.03.2011 17:11:00
Luc:-?
…Ralf,
dann darf man so etwas auch nicht machen wollen. Nicht immer wdn dir Andere die Arbeit abnehmen und deine Wünsche erfüllen, es sei denn, du schaffst es zum Topmanager oder Politiker, aber das wird dir mit dieser Grundhaltung wohl kaum gelingen.
Außerdem ist das Forum für'Mitdenker und kein Service für Nichtwoller — Letzteres wäre gemeinhin nämlich kostenpflichtig!
Luc :-?
PS: Übrigens hat Beverly nichts anderes geschrieben als ich, sogar weniger…
Anzeige
AW: 'Ich kann es eben nicht!' ist Selbstblockade,...
31.03.2011 07:11:09
Ralf
Guten Morgen,
es handelt sich NICHT um eine Blockade, sondern um eine Frage, sei's drum, muss man so was wirklich in so einem kompeten Forum diskutieren?
Ich lass die Frage mal offen. Vielleicht bekomme ich ja noch die gewünschte Hilfe.
Viele Grüße und einen schönen Tag.
da fehlt einmal das hier: "
31.03.2011 08:07:04
Matthias
Hallo
schau hier ist der Fehler
Worksheets("Eingabe").Range(B55") = strDesktopPath
da fehlt was!
Worksheets("Eingabe").Range("B55") = strDesktopPath
Gruß Matthias
Anzeige
AW: da fehlt einmal das hier: "
31.03.2011 08:14:35
Ralf
Hallo Matthias,
ich bin begeistert. Das habe ich gestern echt übersehen.
Vielen, vielen Dank für die Hilfe.
Gruß
Ralf
'Workbook_Open'-Ereignis nehmen und...
30.03.2011 14:55:48
Luc:-?
…statt Beverlys MsgBox dann die Variable in deine Zelle schreiben, Ralf!
Gruß Luc :-?
AW: 'Workbook_Open'-Ereignis nehmen und...
30.03.2011 14:58:46
Ralf
Hallo Luc,
hört sich vielversprechend an, sagt mir aber nix. Für mich besteht VBA nur aus dem Makrorekorder. :-(
Kannst Du das bitte etwas präziser ausführen?
Vielen Dank im Voraus.
Gruß
Ralf
Anzeige
Du hast mit Worksheet_Change experimentiert,...
30.03.2011 15:13:46
Luc:-?
…Ralf,
das ist eine Ereignis-Reaktionsroutine (Event Procedure). Du bist nur auf der falschen Ereignisschiene, denn du willst das ja beim Mappenöffnen machen. Also lies dir in der VBEditor-Hilfe erst mal Ereignisse des Workbooks (Arbeitsmappe) durch.
Im Dokument-Klassenmodul der Arbeitsmappe (DieseArbeitsmappe im VBE-Strukturbaum auswählen) dann im Codefenster, linker Reiter, Workbook auswählen, auf dem rechten Reiter die Prozedur (idR wird gleich nach liReiter-Wahl _Open angelegt). In diesen Rahmen muss dann der Code.
Gruß Luc :-?
Anzeige
AW: Du hast mit Worksheet_Change experimentiert,...
30.03.2011 15:19:43
Ralf
Hallo Luc,
ich habe unter Microsoft Excel Objekte => Tabelle2 (Eingabe) unter Private Sub Worksheet_Change(ByVal Target As Range) schon Makros drin stehen. Meine Überlegung war nun ein Makro dran zu hängen, welches in Zelle B53 den Pfad schreibt.
Mit Deiner Beschreibung komme ich nicht wirklich zurecht.
Viele Grüße
Ralf
Anzeige
AW: Du hast mit Worksheet_Change experimentiert,...
30.03.2011 15:25:28
JoWE
oder nimm in Deinem Code mal das Hochkomma vor Sheets weg...
Dann sind die nicht von dir! Hilfe LESEN! owT
30.03.2011 15:57:29
dir!
:-?
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Desktoppfad in einer Excel-Zelle ausgeben


Schritt-für-Schritt-Anleitung

Um den Desktop-Pfad in einer Excel-Zelle auszugeben, kannst Du den folgenden VBA-Code verwenden. Dieser Code wird beim Öffnen der Arbeitsmappe automatisch ausgeführt und trägt den Desktop-Pfad in die Zelle B55 des Tabellenblatts "Eingabe" ein.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Wähle im Projekt-Explorer „DieseArbeitsmappe“ aus.
  3. Füge den folgenden Code ein:
Private Sub Workbook_Open()
    Dim WSHShell As Object
    Dim strDesktopPath As String
    Set WSHShell = CreateObject("wscript.Shell")
    strDesktopPath = WSHShell.SpecialFolders.Item("Desktop")

    ' Desktop Pfad in Zelle B55 eintragen
    Worksheets("Eingabe").Range("B55").Value = strDesktopPath
End Sub
  1. Schließe den VBA-Editor und speichere die Arbeitsmappe als Excel-Makro-aktivierte Arbeitsmappe (*.xlsm).
  2. Schließe und öffne die Arbeitsmappe erneut, um den Desktop-Pfad anzuzeigen.

Häufige Fehler und Lösungen

  • Fehler: Der Desktop-Pfad wird nicht in die Zelle geschrieben.

    • Lösung: Überprüfe, ob Du den Code im richtigen Modul (DieseArbeitsmappe) eingefügt hast und dass die Zelle B55 existiert.
  • Fehler: Der Code führt zu einem Laufzeitfehler.

    • Lösung: Stelle sicher, dass der richtige Verweis auf die Zelle erfolgt, indem Du Range("B55") korrekt schreibst. Achte auf die Anführungszeichen.

Alternative Methoden

Falls Du keine VBA-Makros verwenden möchtest, kannst Du den Desktop-Pfad auch manuell in Excel eingeben. Ein einfacher Weg ist, den Pfad über das Windows Explorer-Fenster zu kopieren und in die gewünschten Zellen einzufügen. Für mehr Automatisierung kannst Du auch Excel-Formeln verwenden, um den Speicherort zu ermitteln, aber dies ist nicht so direkt wie die Verwendung von VBA.


Praktische Beispiele

Hier ist ein einfaches Beispiel, das den Desktop-Pfad abruft und in einer Nachricht anzeigt:

Sub ZeigeDesktopPfad()
    Dim WSHShell As Object
    Dim strDesktopPath As String
    Set WSHShell = CreateObject("wscript.Shell")
    strDesktopPath = WSHShell.SpecialFolders.Item("Desktop")
    MsgBox "Der Desktop-Pfad ist: " & strDesktopPath
End Sub

Du kannst diesen Code in einem Modul erstellen und dann ausführen, um den Desktop-Pfad zu sehen.


Tipps für Profis

  • Wenn Du oft mit VBA arbeitest, gewöhne Dir an, den Code ordentlich zu strukturieren und Kommentare hinzuzufügen, um die Lesbarkeit zu verbessern.

  • Nutze die Environ-Funktion für einfache Pfadabfragen, wenn Du keine speziellen Objekte wie wscript.Shell verwenden möchtest.

    Beispiel:

    Dim desktopPath As String
    desktopPath = Environ("UserProfile") & "\Desktop\"
  • Experimentiere mit weiteren SpecialFolders, um andere nützliche Pfade zu ermitteln.


FAQ: Häufige Fragen

1. Wie kann ich den Desktop-Pfad für einen anderen Benutzer ermitteln? Um den Desktop-Pfad für einen anderen Benutzer zu ermitteln, musst Du über die Benutzerprofilumgebungsvariable den spezifischen Benutzer angeben.

2. Funktioniert dieser Code auch in Excel 365? Ja, der VBA-Code funktioniert in Excel 365 sowie in anderen Versionen, die VBA unterstützen.

3. Was mache ich, wenn mein Excel keine Makros akzeptiert? Überprüfe die Sicherheitseinstellungen in Excel und stelle sicher, dass die Ausführung von Makros aktiviert ist. Gehe dazu auf „Datei“ > „Optionen“ > „Trust Center“ > „Einstellungen für das Trust Center“ > „Makroeinstellungen“.

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