Dim objShell As Object
Dim objFolder As Object, objFolderItem As Object
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace(N)
Set objFolderItem = objFolder.Self
Sub essai()
MsgBox "Documents : " & Application.DefaultFilePath & "\" & Chr(10) & _
"Images : " & Replace(Application.DefaultFilePath, "Documents", "Pictures") & "\" & Chr(10) & _
"Musique : " & Replace(Application.DefaultFilePath, "Documents", "Music") & "\" & Chr(10) & _
"Videos : " & Replace(Application.DefaultFilePath, "Documents", "Videos") & "\"
End Sub
Dim objShell As Object
Dim objFolder As Object, objFolderItem As Object
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace(N)
Set objFolderItem = objFolder.Self
Set objFolderItem = objFolder.Self
Sauf si cela m'a échappé dans votre fichier, le problème avec SpecialFolders c'est qu'il ne remonte que Documents, mais pas Images,Musiques et Vidéos.par exemple Téléchargements (Downloads), Documents (Documents), Images (Pictures ?), Musique (Music), Vidéos (Videos)
Option Explicit
Const mes_documents& = &H5
Const ma_musiques& = &HD
Const mes_Images& = &H27
Const mes_videos& = &HE
Const Documents_Public& = &H2E
Const Musique_public& = &H35
Const Images_Public& = &H36
Const Video_public& = &H37
Const DeskTop_Folder& = &H19
Const App_Data_Roaming_Folder& = &H1A
Const App_Data_Local_Folder& = &H1C
Const Windows_Folder& = &H24
Const System32_Folder& = &H25
Const Progamme_file_x86_Folder& = &H26 ' ou &H2A
Const User_Folder& = &H28
Const SysWoW64_Folder& = &H29
Sub testX()
MsgBox getPath(28)
End Sub
Function getPath(x) As String
getPath = ""
On Error Resume Next
getPath = CreateObject("Shell.Application").Namespace(x).self.Path
End Function
Oui c'est correct.Sauf si cela m'a échappé dans votre fichier, le problème avec SpecialFolders c'est qu'il ne remonte que Documents, mais pas Images,Musiques et Vidéos.
oulah !! non mon pauvre amiQue les index soient en hexa ou en décimal, ça n'a pas d'importance
Function getPath(x) As String
getPath = ""
On Error Resume Next
getPath = CreateObject("Shell.Application").Namespace(x).self.Path
On Error GoTo 0
End Function
Sub testX2()
Dim i As Long
For i = 1 To 50
Cells(i, 1) = i
Cells(i, 2) = getPath(i)
Next
End Sub