Utilisation du path (vba) avec variable

Le
j-pascal
Bonsoir,

Si je récupère le path du bureau avec (Merci Isabelle) :

'
Sub CheminRepertoiresBureau()
Dim Chemin_Bureau As String
Dim objShell As Object
Dim objFolder As Object, objFolderItem As Object

Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.NameSpace(&H10)
Set objFolderItem = objFolder.Self
Chemin_Bureau = objFolderItem.Path
End Sub
'

Si dans mon code, j'utilise :

'
()
Call CheminRepertoiresBureau
()
ChDir Chemin_Bureau
'

Le chemin reste vide (je veux dire qu'en mode "pas à pas", à
l'instruction suivante, si je mets le curseur sur la variable, elle
indique "vide").

Peut-être faut-il passer par une variable statique ??

Merci pour votre aide,

JP
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
j-pascal
Le #19149431
Bonjour Daniel,

Merci, c'est noté.

PS : peut-on considérer que cette procédure (la recherche du chemin
pour "bureau") renverra toujours un bon résultat et qu'il n'est donc
pas nécessaire de gérer une erreur possible par un test ...

J'entends par "toujours", le fait que le répertoire "bureau" est un
répertoire system (sauf erreur de ma part).

JP

Bonsoir.
Tu peux faire comme ceci :

Sub CheminRepertoiresBureau(Chemin_Bureau)
Dim objShell As Object
Dim objFolder As Object, objFolderItem As Object

Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace(&H10)
Set objFolderItem = objFolder.Self
Chemin_Bureau = objFolderItem.Path
End Sub

CheminRepertoiresBureau Chemin_Bureau
'(...)
ChDir Chemin_Bureau

Tu peux aussi déclarer "Chemin_Bureau" comme variable publique (en tête de
module :

Public Chemin_Bureau as String

Sub CheminRepertoiresBureau()
Dim objShell As Object
Dim objFolder As Object, objFolderItem As Object

Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.NameSpace(&H10)
Set objFolderItem = objFolder.Self
Chemin_Bureau = objFolderItem.Path
End Sub


Call CheminRepertoiresBureau
(...)
ChDir Chemin_Bureau

Cordialement.
Daniel



Bonsoir,

Si je récupère le path du bureau avec (Merci Isabelle) :

'------
Sub CheminRepertoiresBureau()
Dim Chemin_Bureau As String
Dim objShell As Object
Dim objFolder As Object, objFolderItem As Object

Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.NameSpace(&H10)
Set objFolderItem = objFolder.Self
Chemin_Bureau = objFolderItem.Path
End Sub
'------

Si dans mon code, j'utilise :

'------
(...)
Call CheminRepertoiresBureau
(...)
ChDir Chemin_Bureau
'------

Le chemin reste vide (je veux dire qu'en mode "pas à pas", à l'instruction
suivante, si je mets le curseur sur la variable, elle indique "vide").

Peut-être faut-il passer par une variable statique ??

Merci pour votre aide,

JP




j-pascal
Le #19149421
Bonjour,

J'aime bien l'idée d'une fonction. Merci pour cette proposition.

PS : comme je le demandais à Daniel, j'imagine que cette fonction
renvoit toujours un "bon" résultat (?).
Sinon, dois-je envisager un test pour orienter vers
"DocummentsAndSettings" ?

JP

Bonjour J-Pascal,

Fais comme ceci :

'------------------------------
Sub Test()

ChDir CheminRepertoiresBureau

End Sub
'------------------------------

Function CheminRepertoiresBureau()
Dim Chemin_Bureau As String
Dim objShell As Object
Dim objFolder As Object, objFolderItem As Object

Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace(&H10)
Set objFolderItem = objFolder.Self
CheminRepertoiresBureau = objFolderItem.Path
End Function
'------------------------------






"j-pascal" discussion : Bonsoir,

Si je récupère le path du bureau avec (Merci Isabelle) :

'------
Sub CheminRepertoiresBureau()
Dim Chemin_Bureau As String
Dim objShell As Object
Dim objFolder As Object, objFolderItem As Object

Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.NameSpace(&H10)
Set objFolderItem = objFolder.Self
Chemin_Bureau = objFolderItem.Path
End Sub
'------

Si dans mon code, j'utilise :

'------
(...)
Call CheminRepertoiresBureau
(...)
ChDir Chemin_Bureau
'------

Le chemin reste vide (je veux dire qu'en mode "pas à pas", à
l'instruction suivante, si je mets le curseur sur la variable, elle
indique "vide").

Peut-être faut-il passer par une variable statique ??

Merci pour votre aide,

JP


Daniel.C
Le #19150711
Bonjour.
Je pense que oui, puisque le contenu du dossier est affiché à l'écran.
Windows devrait recréer le dossier, si par hasard il est supprimé (non
testé ;-)))
Cordialement.
Daniel

Bonjour Daniel,

Merci, c'est noté.

PS : peut-on considérer que cette procédure (la recherche du chemin pour
"bureau") renverra toujours un bon résultat et qu'il n'est donc pas
nécessaire de gérer une erreur possible par un test ...

J'entends par "toujours", le fait que le répertoire "bureau" est un
répertoire system (sauf erreur de ma part).

JP

Bonsoir.
Tu peux faire comme ceci :

Sub CheminRepertoiresBureau(Chemin_Bureau)
Dim objShell As Object
Dim objFolder As Object, objFolderItem As Object

Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace(&H10)
Set objFolderItem = objFolder.Self
Chemin_Bureau = objFolderItem.Path
End Sub

CheminRepertoiresBureau Chemin_Bureau
'(...)
ChDir Chemin_Bureau

Tu peux aussi déclarer "Chemin_Bureau" comme variable publique (en tête de
module :

Public Chemin_Bureau as String

Sub CheminRepertoiresBureau()
Dim objShell As Object
Dim objFolder As Object, objFolderItem As Object

Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.NameSpace(&H10)
Set objFolderItem = objFolder.Self
Chemin_Bureau = objFolderItem.Path
End Sub


Call CheminRepertoiresBureau
(...)
ChDir Chemin_Bureau

Cordialement.
Daniel



Bonsoir,

Si je récupère le path du bureau avec (Merci Isabelle) :

'------
Sub CheminRepertoiresBureau()
Dim Chemin_Bureau As String
Dim objShell As Object
Dim objFolder As Object, objFolderItem As Object

Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.NameSpace(&H10)
Set objFolderItem = objFolder.Self
Chemin_Bureau = objFolderItem.Path
End Sub
'------

Si dans mon code, j'utilise :

'------
(...)
Call CheminRepertoiresBureau
(...)
ChDir Chemin_Bureau
'------

Le chemin reste vide (je veux dire qu'en mode "pas à pas", à l'instruction
suivante, si je mets le curseur sur la variable, elle indique "vide").

Peut-être faut-il passer par une variable statique ??

Merci pour votre aide,

JP






Publicité
Poster une réponse
Anonyme