OVH Cloud OVH Cloud

Paramètres à Excel

2 réponses
Avatar
Phil99999
Bonjour, je sais déjà passer des paramètres simples (sans espace) à Excel au
lancement d'un classeur. (ex: Excel.exe /e/Param1/Param2 "c:\test.xls")

Qulqu'un connait-il le moyen de passer des paramètres contenant des espaces ??
(ex: Excel.exe /e/c:\test de rep\fich1.txt "c:\test.xls")

Pour pouvoir passer le chemin complet d'un fichier sans être obligé
d'utiliser les noms courts ....

Merci, Phil

2 réponses

Avatar
Alain CROS
Bonjour.

----------
Copie d'un ancien message.
----------

Il y a effectivement un problème avec les espaces dans le nom du fichier.

Une solution de substitution consiste a remplacer dans la ligne de commande les espaces par un caractère non autorisé dans le nom
d'un fichier tel que le ?.

La ligne de commande s'écrira :
"EXCEL.EXE" /eC:Premier?RepSecond?RepMon?Fichier.xml CheminDeMonClasseur

Et dans le module ThisWorkbook :

Private Declare Function GetCommandLine$ Lib "Kernel32" Alias "GetCommandLineA" ()

Private Sub Workbook_Open()
Dim CmdLine$, Pos1&
CmdLine = GetCommandLine
Pos1 = InStr(CmdLine, ThisWorkbook.FullName)
If Pos1 <> 0& Then CmdLine = Mid$(CmdLine, 1&, Pos1 - 1&) Else Exit Sub
If Right(CmdLine, 1&) = """" Then Pos1 = 2& Else Pos1 = 1&
CmdLine = Mid$(CmdLine, 1&, Len(CmdLine) - Pos1)
CmdLine = Mid$(CmdLine, InStr(1&, CmdLine, " /e") + 3&, Len(CmdLine) - 1&)
MsgBox Application.Substitute(CmdLine, "?", " ")
End Sub 'AC

Alain CROS

"Phil99999" a écrit dans le message de news:

| Bonjour, je sais déjà passer des paramètres simples (sans espace) à Excel au
| lancement d'un classeur. (ex: Excel.exe /e/Param1/Param2 "c:test.xls")
|
| Qulqu'un connait-il le moyen de passer des paramètres contenant des espaces ??
| (ex: Excel.exe /e/c:test de repfich1.txt "c:test.xls")
|
| Pour pouvoir passer le chemin complet d'un fichier sans être obligé
| d'utiliser les noms courts ....
|
| Merci, Phil
Avatar
Phil99999
Merci Alain, j'avais trouvé la solution tout seul, mais ça peut être utile à
d'autres personnes


Bonjour.

----------
Copie d'un ancien message.
----------

Il y a effectivement un problème avec les espaces dans le nom du fichier.

Une solution de substitution consiste a remplacer dans la ligne de commande les espaces par un caractère non autorisé dans le nom
d'un fichier tel que le ?.

La ligne de commande s'écrira :
"EXCEL.EXE" /eC:Premier?RepSecond?RepMon?Fichier.xml CheminDeMonClasseur

Et dans le module ThisWorkbook :

Private Declare Function GetCommandLine$ Lib "Kernel32" Alias "GetCommandLineA" ()

Private Sub Workbook_Open()
Dim CmdLine$, Pos1&
CmdLine = GetCommandLine
Pos1 = InStr(CmdLine, ThisWorkbook.FullName)
If Pos1 <> 0& Then CmdLine = Mid$(CmdLine, 1&, Pos1 - 1&) Else Exit Sub
If Right(CmdLine, 1&) = """" Then Pos1 = 2& Else Pos1 = 1&
CmdLine = Mid$(CmdLine, 1&, Len(CmdLine) - Pos1)
CmdLine = Mid$(CmdLine, InStr(1&, CmdLine, " /e") + 3&, Len(CmdLine) - 1&)
MsgBox Application.Substitute(CmdLine, "?", " ")
End Sub 'AC

Alain CROS

"Phil99999" a écrit dans le message de news:

| Bonjour, je sais déjà passer des paramètres simples (sans espace) à Excel au
| lancement d'un classeur. (ex: Excel.exe /e/Param1/Param2 "c:test.xls")
|
| Qulqu'un connait-il le moyen de passer des paramètres contenant des espaces ??
| (ex: Excel.exe /e/c:test de repfich1.txt "c:test.xls")
|
| Pour pouvoir passer le chemin complet d'un fichier sans être obligé
| d'utiliser les noms courts ....
|
| Merci, Phil