Modifier l'adresse d'un fichier à ouvrir dans la fonction Shell

Résolu
Forva Messages postés 2 Date d'inscription mercredi 2 octobre 2013 Statut Membre Dernière intervention 2 octobre 2013 - 2 oct. 2013 à 19:46
Forva Messages postés 2 Date d'inscription mercredi 2 octobre 2013 Statut Membre Dernière intervention 2 octobre 2013 - 2 oct. 2013 à 20:15
Bonjour,

A force de vous lire et de fouiner sur le web j'ai pu créer une macro "magique" pour le boulot (ça n'a l'air de rien mais ça sera plus qu'utile), je bloque cependant sur la dernière ligne.

En fait cette macro me crée un classeur Excel, y copie une plage de cellules et l'enregistre sous un format spécifique à un logiciel. Elle ouvre ensuite ce fichier à l'aide dudit logiciel. Le problème c'est que je souhaite que cette macro soit utilisable sur d'autres PC, donc j'ai évité de mettre des adresses de répertoire fixes en utilisant des "raccourcis".

Voici mon brouillon de macro, basée sur un fichier .txt à la place du fichier du boulot.

Dim Chemin As String
Chemin = ActiveWorkbook.Path & "\"
Workbooks.Add
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:=Chemin & "TEMP.xlsx"
Windows("TEST.xlsm").Activate
Range("A30:A40").Select
Selection.Copy
Windows("TEMP").Activate
ActiveSheet.Paste
Application.CutCopyMode = False
ActiveWorkbook.SaveAs Filename:=Chemin & "HOP.txt",
FileFormat:=xlTextPrinter, CreateBackup:=False
ActiveWorkbook.Save
ActiveWindow.Close
Application.DisplayAlerts = True
Shell "C:\Windows\system32\notepad.exe C:\Users\...\HOP.txt",
vbNormalFocus

Tout fonctionne sauf quand j'essaye de remplacer "C:\Users\...\HOP.txt" par "Chemin".

Je ne sais pas si j'ai été très clair, mais j'espère que oui et que quelqu'un saura m'aider.

Merci d'avance et bonne soirée.

2 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
2 oct. 2013 à 20:03
Bonjour,
Shell utilise une chaîne de caractères
Ta question est donc la même que celle qui consisterait à dire :
comment remplacer "toto" dans la chaîne de caractères :
"blabla toto blibli" par une variable nommée vari ou vari = "toto"
la réponse est : "blabla " & vari & " blibli"
A toi de jouer.
0
Forva Messages postés 2 Date d'inscription mercredi 2 octobre 2013 Statut Membre Dernière intervention 2 octobre 2013
2 oct. 2013 à 20:15
Merci d'avoir répondu si vite, j'ai déjà testé plusieurs fois et je penchais pour une erreur de syntaxe, le message d'erreur était à chaque fois "fichier "vari" introuvable" (pour reprendre ton exemple).

Par contre tout en te répondant ça et en réessayant, en y regardant de plus près j'ai vu que tu mets un espace de plus que moi, après "blabla ", j'ai retesté au cas où : ça MAAAAARCHE !!!

Dire que j'ai passé des heures à chercher la réponse et à faire des essais infructueux, j'ai même forcé l'insertion de l'adresse récupérée dans une cellule et modifié ma chaîne de caractères en mettant la valeur de la cellule en référence. Comme quoi ça tient à peu de choses, un espace....

Encore une fois (et plus encore qu'au début de ce message), UN GRAND MERCI !!!

Vivement demain que je teste ça au boulot :)

Bonne soirée.
0
Rejoignez-nous