Clever-Excel-Forum

Normale Version: VBA Pfad anpassen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo Community,

Ich habe hier eine Tabelle, die als Bild, in die Tabelle Mail kopiert wird.

Hier möchte ich das Bild aus Excel heraus auf den Desktop kopieren.

Habe auch einen VBA Code gefunden der das machen soll. Der Code kopiert auch was, die Frage ist wohin. 
Ich kann den Pfad anpassen, was muss ich dort eingeben, damit das Bild auf dem Desktop abgelegt wird.

sTempPfad = ThisWorkbook.Path & "\Test.gif" ' Pfad anpassen


Wenn Ihr da einen Lösungsvorschlag hättet, wäre ich sehr froh.

Vielen Dank und Gruss

Roger
Hallo,

es gibt den "SpecialFolder" Desktop:

ungeprüft

Code:
Set WshShell = CreateObject("WScript.Shell")
    DesktopPath = WshShell.SpecialFolders("Desktop")

mfg
Hallo Fennek,


Danke für die Antwort, gerade probiert, funktioniert leider nicht.
aber danke dafür.

Mit freundlichen Grüßen
Roger
Hallo, :19:


Code:
sTempPfad = Environ("UserProfile") & "\Desktop\Test.gif"
Mit google hättest Du die beiden Lösungen von Case und Fennek, die übrigens beide funktionieren, gefunden, z.B. hier

Aber es geht auch "komplizierter", auch google

Code:
Option Explicit

Public Enum SpecialFolderIDs
 sfidDESKTOP = &H0
 sfidPROGRAMS = &H2
 sfidPERSONAL = &H5
 sfidFAVORITES = &H6
 sfidSTARTUP = &H7
 sfidRECENT = &H8
 sfidSENDTO = &H9
 sfidSTARTMENU = &HB
 sfidDESKTOPDIRECTORY = &H10
 sfidNETHOOD = &H13
 sfidFONTS = &H14
 sfidTEMPLATES = &H15
 sfidCOMMON_STARTMENU = &H16
 sfidCOMMON_PROGRAMS = &H17
 sfidCOMMON_STARTUP = &H18
 sfidCOMMON_DESKTOPDIRECTORY = &H19
 sfidAPPDATA = &H1A
 sfidPRINTHOOD = &H1B
 sfidProgramFiles = &H10000
 sfidCommonFiles = &H10001
End Enum

Private Type SHITEMID
 cb As Long
 abID As Byte
End Type

Private Type ITEMIDLIST
 mkid As SHITEMID
End Type

Private Declare Function SHGetSpecialFolderLocation Lib "shell32.dll" ( _
 ByVal hwndOwner As Long, _
 ByVal nFolder As Long, _
 pidl As ITEMIDLIST) As Long

Private Declare Function SHGetPathFromIDList Lib "shell32.dll" _
 Alias "SHGetPathFromIDListA" ( _
 ByVal pidl As Long, _
 ByVal pszPath As String) As Long

' Standard Systemordner ermitteln
Public Function GetSpecialFolder(CSIDL As _
 SpecialFolderIDs) As String

 Dim lResult As Long
 Dim IDL As ITEMIDLIST
 Dim sPath As String

 lResult = SHGetSpecialFolderLocation(100, CSIDL, IDL)
 If lResult = 0 Then
   sPath = Space$(512)
   lResult = SHGetPathFromIDList(ByVal IDL.mkid.cb, _
     ByVal sPath)
   GetSpecialFolder = Left$(sPath, InStr(sPath, _
     Chr$(0)) - 1)
 End If
End Function


Sub GetIt()
Dim sPfad
   sPfad = GetSpecialFolder(sfidDESKTOP)
End Sub
Hallo Case, Hallo Storax,



Ja, VBA da muß ich wohl noch viel lernen  damit das funktioniert.
Aber dank eurer Hilfe, habe ich es jetzt hinbekommen.

Danke das Ihr eure Zeit investiert habt.

Mit freundlichen Grüßen
Roger