Variable chemin comprenant des Virgules, fait bugger maccro

bonjour à tous

j'ai copié un code vba pour ouvrir des dossier windows depuis excel, qui est très simple c'est celui-ci:

Dim MonDossier As String
MonDossier = "C:\dossier_test\sous_dossier\"

Shell Environ("WINDIR") & "\explorer.exe " & MonDossier, vbNormalFocus

Sauf que malheureusement pour moi je viens d'être confronter à un problème, en lançant ma macro dans certain cas la variable "mon dossier" au lieu de se rendre sur le dossier voulue, m'envois vers Ce PC \ Mes documents.

et j'ai compris pourquoi mais je ne vois pas comment résoudre le problème.

c'est que dans mes noms de dossier variable certain comportent des virgules avec espace dérrière!

exemple:

"C:\Dossier\Nouveau, Dossier"

Shell Environ("WINDIR") & "\explorer.exe " & "Nouveau, Dossier", vbNormalFocus

du coup le l'instruction doit surement confondre la virgule de mon dossier avec la virgule de l'instruction (, vbNormalFocus)

ça me fait l'erreur que sur les dossiers avec virgule justement et même si le chemin se trouve entre guillemet est-il possible de corriger ça?

et ce qui est étonnant c'est que j'utilise ce chemin de fichier avec virgule pour d'autres instructions que celle-ci et ça se passe très bien. il y à juste pour ouvrir le dossier que ça plante.

Merci d'avance pour vos réponses

Bonjour,

Triplez vos double guillemets, comme lorsqu'on utilise des "" dans un Range.Formula pour simuler du vide ou une valeur sous VBA "Excel" :

Sub OUVRIR()
Dim MonDossier As String
MonDossier = """"C:\Dossier\Nouveau, Dossier""""
Shell Environ("WINDIR") & "\explorer.exe " & MonDossier, vbNormalFocus
End Sub

Cdlt,

Bonjour Ergotamine,

Malheureusement ça ne marche pas (dans mon cas) car j'ai essayé l'exemple que vous avez fait et ça marche.

mais moi mon chemin est une variable et se présente comme ceci:

dim Chemin_Vers_Dossier as string
Chemin_Vers_Dossier = Dossier & "\" & Sheets("Données").Range(AdresseTrouvee).Value
Shell Environ("WINDIR") & "\explorer.exe " & Chemin_Vers_Dossier, vbNormalFocus
et le problème je pense est que le résultat de la variable Chemin_Vers_Dossier est:
G:\Dossier\nouveau, Dossier

et non

"G:\dossier\nouveau, Dossier"

donc du coup je triple mes guillemets dans mon instruction Shell, sauf que quand le nombre de guillemet est impair et peu importe le nombre que j'en met 1,3,5,7, je tombe toujours sur le dossier Ce PC\mes documents.

et si pair alors l'instruction se met en rouge avec message d'erreur:

erreur

si la variable Chemin_Vers_Dossier correspond à un chemin sans " , " exemple:

G:\Dossier\Nouveau Dossier

tout ce passe très bien et sans ajout de guillemets

Bonjour,

Dans ce cas comme ça :

Sub OUVRIR()
Dim Chemin_Vers_Dossier$, Dossier$
Dossier = "C:\Users\****\Desktop\"
Chemin_Vers_Dossier = """" & Dossier & "" & Sheets("Données").Range("A1").Value & """"
Shell Environ("WINDIR") & "\explorer.exe " & Chemin_Vers_Dossier, vbNormalFocus
End Sub

N'ayant la totalité de votre code ou de fichier sous la main je vous laisse adapter le chemin de Dossier, et la range("A1") qui retourne votre adresse.

En tout cas chez moi ça fonctionne avec le chemin de Dossier adapté, et le dossier avec ou sans la virgule placé en A1 de mon classeur Excel.

Cdlt,

ha au temps pour moi votre version 2 marche

Sub OUVRIR()
Dim MonDossier As String
MonDossier = """"C:\Dossier\Nouveau, Dossier""""
Shell Environ("WINDIR") & "\explorer.exe " & MonDossier, vbNormalFocus
End Sub

j'ai du me tromper dans le nombre de guillemet

Merci !! quel casse tête

Rechercher des sujets similaires à "variable chemin comprenant virgules fait bugger maccro"