[VBA] Le Bureau

42 réponses
Avatar
Péhemme
Bonjour à Tous,

J'ai 2 questions sur ce sujet.
Matériel : W7 - XL 2010

1°) Comment en VBA récupérer le chemin du Bureau ?

2°) Comment tester l'existence d'un chemin pour le Bureau ?
J'ai écrit :
Sub TesteChemin()
Dim CheminPDF
CheminPDF = "C:\Users\Michel\Desktop"
If CheminPDF = "" Then
MsgBox "NON"
Else
MsgBox "OK"
End If
CheminPDF = "D:\Bureau"
If CheminPDF = "" Then
MsgBox "NON"
Else
MsgBox "OK"
End If
End Sub

Bête que je suis, cela me revoit toujours OK car ma variable est
renseignée...
Mais comment dois-je rédiger ce test afin d'obtenir la bonne réponse ?
Je ne vois pas par quel bout je dois prendre mon problème.

Merci d'avance à tous ceux qui pourront me (re)mettre sur la voie.
Michel

10 réponses

1 2 3 4 5
Avatar
Geo
Bonjour
Regardez la fonction Dir.
Avatar
Jacquouille
Hello Michel,
Voici un vieux truc que j'avais gardé, au caillou ...
Voye = chemin en Wallon (où l'on retrouve voie et voyage )
----------------
Sub Voye()
Dim chemin1 As String
Dim chemin2 As String
'Sheets("feuil1").Select
chemin1 = Workbooks(ActiveWorkbook.Name).FullName
MsgBox "Chemin complet " & chemin1
chemin2 = Workbooks(ActiveWorkbook.Name).Path
MsgBox "Nom du Dossier " & chemin2
'Sheets("Ecureuil").Select
Range("J1").Value = chemin1
Range("J2").Value = chemin2
End Sub
-----------------
Ce qui donne ceci:
C:UserspcAppDataRoamingMicrosoftExcelXLSTARTPERSO.XLS
C:UserspcAppDataRoamingMicrosoftExcelXLSTART
-----------------------
Si cela peut t'aider .....
Jacques, XL MM III
" Le vin est au repas ce que le parfum est à la femme."
.
"Péhemme" a écrit dans le message de groupe de discussion :
p4rv27$1ks1$
Bonjour à Tous,
J'ai 2 questions sur ce sujet.
Matériel : W7 - XL 2010
1°) Comment en VBA récupérer le chemin du Bureau ?
2°) Comment tester l'existence d'un chemin pour le Bureau ?
J'ai écrit :
Sub TesteChemin()
Dim CheminPDF
CheminPDF = "C:UsersMichelDesktop"
If CheminPDF = "" Then
MsgBox "NON"
Else
MsgBox "OK"
End If
CheminPDF = "D:Bureau"
If CheminPDF = "" Then
MsgBox "NON"
Else
MsgBox "OK"
End If
End Sub
Bête que je suis, cela me revoit toujours OK car ma variable est
renseignée...
Mais comment dois-je rédiger ce test afin d'obtenir la bonne réponse ?
Je ne vois pas par quel bout je dois prendre mon problème.
Merci d'avance à tous ceux qui pourront me (re)mettre sur la voie.
Michel
Avatar
Geo
Bonjour Jacques.
En lisant ta réponse, je m'aperçois que je n'ai pas bien lu les
questions, j'ai juste tenté de répondre à la deuxième.
Je ne suis même pas certain.
Avatar
Jacquouille
Salut Geo,
Décidément, c'est la semaine des retrouvailles:
Hier c'était Modeste et jièl, aujourd'hui c'est Michel et toi.
Ah, mon vieil 2003 comme il se sent bien...
Pour ce qui est de la réponse, moi, j'ai bien tout lu, mais je ne suis pas
certain d'avoir bien répondu . -((
Mettons-nous sur "Pause" . -))
Bonne journée
Jacques
" Le vin est au repas ce que le parfum est à la femme."
.
"Geo" a écrit dans le message de groupe de discussion :
Bonjour Jacques.
En lisant ta réponse, je m'aperçois que je n'ai pas bien lu les
questions, j'ai juste tenté de répondre à la deuxième.
Je ne suis même pas certain.
Avatar
JièL
Hello Péhemme
Le 31/01/2018 à 09:33, Péhemme a écrit :
Matériel : W7 - XL 2010

C'est pas du matériel, c'est du logiciel :-)
1°) Comment en VBA récupérer le chemin du Bureau ?

Regarde ici, y'a tous les chemins possibles et imaginables
https://excel.developpez.com/faq/?page=FichiersDir#RepertoiresSpeciaux
2°) Comment tester l'existence d'un chemin pour le Bureau ?

Là je comprend pas bien la question.
Tu cherches à récupérer le chemin du bureau (voir réponse à la question
1) ou savoir si qqchose existe dedans ?
Dans le second cas ça serait plutôt ça
https://excel.developpez.com/faq/?page=FichiersDir#VerifExistenceFichier
c'est la même réponse que Geo
--
JièL
Avatar
Péhemme
Merci à vous tous de vos réponses.
Pour préciser ma demande, je cherche le chemin du Bureau.
Je ne cherche pas :
. où est sauvegardé un fichier particulier
. ni ce qu'il y a dans (sur) le bureau,
simplement comment récupérer dans une variable le chemin du Bureau.
Le contexte :
J'ai, sur mon ordi, modifié l'emplacement du bureau.
Son emplacement précédent était :
C:UsersMichelDesktop
il est maintenant :
D:Bureau
Pour la faire "longue" :
J'ai une macro qui m'imprime automatiquement un PDF sur le bureau.
Le chemin était écrit en dur et tout fonctionnait parfaitement bien.
J'ai, par inadvertance, utilisé cette macro avant d'en changer le chemin.
M'apercevant de cette erreur, j'ai naturellement modifié le chemin en dur
dans cette macro.
Je n'y suis parvenu qu'après plusieurs tests ; il n'était en effet pas
évident pour moi que le bureau sur le disque C: s'appelle Desktop et que,
déplacé sur le disque D:, il devient Bureau.
Mais se pose ensuite la question : où sont réellement sauvegardés les
différents fichiers de tests ?
Notamment ceux de C:UsersMichelDesktop et ceux de : D:Desktop
sachant que ces chemins n'existent plus/pas sur mon ordi ; peut-être
également que je n'ai pas été capable de les retrouver.
Voili, voilou, maintenant c'est vous qui avez le problème.
;-)
Merci encore de vos aides respectives.
Bien amicalement
Michel
"JièL" a écrit dans le message de groupe de discussion :
5a71a1cf$0$3303$
Hello Péhemme
Le 31/01/2018 à 09:33, Péhemme a écrit :
Matériel : W7 - XL 2010

C'est pas du matériel, c'est du logiciel :-)
1°) Comment en VBA récupérer le chemin du Bureau ?

Regarde ici, y'a tous les chemins possibles et imaginables
https://excel.developpez.com/faq/?page=FichiersDir#RepertoiresSpeciaux
2°) Comment tester l'existence d'un chemin pour le Bureau ?

Là je comprend pas bien la question.
Tu cherches à récupérer le chemin du bureau (voir réponse à la question
1) ou savoir si qqchose existe dedans ?
Dans le second cas ça serait plutôt ça
https://excel.developpez.com/faq/?page=FichiersDir#VerifExistenceFichier
c'est la même réponse que Geo
--
JièL
Avatar
Péhemme
Salut Jièl,
J'ai testé la macro proposée, avec &H19.
Elle me retourne : C:UsersPublicDesktop.
En suivant ce chemin je trouve effectivement un Desktop vide.
Je crains avoir soulevé une difficulté intellectuelle (déjà pour moi le VBA
en est une, alors...) mais j'ai confiance en vous.
:-)
Michel
"JièL" a écrit dans le message de groupe de discussion :
5a71a1cf$0$3303$
Hello Péhemme
Le 31/01/2018 à 09:33, Péhemme a écrit :
Matériel : W7 - XL 2010

C'est pas du matériel, c'est du logiciel :-)
1°) Comment en VBA récupérer le chemin du Bureau ?

Regarde ici, y'a tous les chemins possibles et imaginables
https://excel.developpez.com/faq/?page=FichiersDir#RepertoiresSpeciaux
2°) Comment tester l'existence d'un chemin pour le Bureau ?

Là je comprend pas bien la question.
Tu cherches à récupérer le chemin du bureau (voir réponse à la question
1) ou savoir si qqchose existe dedans ?
Dans le second cas ça serait plutôt ça
https://excel.developpez.com/faq/?page=FichiersDir#VerifExistenceFichier
c'est la même réponse que Geo
--
JièL
Avatar
Geo
Bonjour
Notamment ceux de C:UsersMichelDesktop et ceux de : D:Desktop
sachant que ces chemins n'existent plus/pas sur mon ordi ; peut-être
également que je n'ai pas été capable de les retrouver.

Si vous avez écrit dans ces dossiers, c'est qu'il existent, par contre
ils sont peut-être cachés.
Vérifier si la case ad hoc a été cochée dans l'explorateur de fichiers.
Avatar
HD
Bonjour,
J'utilise ce script:
Private Declare Function SHGetFolderPath& Lib "ShFolder" Alias
"SHGetFolderPathA" (ByVal hwnd&, ByVal csidl&, ByVal handle&, ByVal
flags&, ByVal lpPath$)
Function DeskPath() As String
Dim sPath As String
sPath = String(260, 0)
SHGetFolderPath 0, &H0, 0, 0, sPath
DeskPath = Left(sPath, InStr(sPath, vbNullChar) - 1)
End Function
@+
HD
Avatar
Michd
Bonjour,
Cette macro retourne les chemins disponibles des différents répertoires :
'------------------------------------
Sub test()
Dim A As Long
For A = 1 To 40
Range("A" & A) = Environ(A)
Next
End Sub
'------------------------------------
Toi, ce que tu recherches est représenté par cette ligne de code :
Msgbox MsgBox Environ("USERPROFILE") & "Desk"
Il y a ceci aussi:
'------------------------------------
Sub Test()
Dim WSHShell As Object
Set WSHShell = CreateObject("WScript.Shell")
MsgBox WSHShell.SpecialFolders.Item(4)
Set WSHShell = Nothing
End Sub
'------------------------------------
MichD
1 2 3 4 5