Ouvrir fichier Aurtocad

Bonjour,

Je cherche à ouvrir un fichier Autocad. Chose que j'arrive à faire avec le code si dessous.

ID = Shell("""C:\Program Files\Autodesk\AutoCAD 2014\acad.exe"" ""M:\Commercial\2016\1 - Commande\Client\P-99999-99999.dwg""", vbMaximizedFocus)

Mon soucis est que le chemin et le nom du fichier est contenue dans une variable

Nomfichier = Dossier & "\" & "P-" & Cible & "-" & Cible2 & ".dwg"

Il faudrait que j'arrive a remplacer "M:\Commercial\2016\1 - Commande\Client\P-99999-99999.dwg" par "Nomfichier" ou directement par "Dossier & "\" & "P-" & Cible & "-" & Cible2 & ".dwg""

Lorsque j'utilise la variable Monfichier, au moment d'ouvrir le fichier,Autocad me met un message d'erreur :

Impossible de trouver le fichier dessin spécifié

Assurez-vous que le lecteur réseau est disponible et que le fichier existe.

Lorsque je cherche à utiliser "Dossier & "\" & "P-" & Cible & "-" & Cible2 & ".dwg"" là c'est directement la syntaxe du code vba qui ne passe pas.

Merci d'avance.

Cdt

Bonjour Harissa23,

Si je comprend bien la syntaxe:

ID = Shell("""C:\Program Files\Autodesk\AutoCAD 2014\acad.exe"" ""M:\Commercial\2016\1 - Commande\Client\P-99999-99999.dwg""", vbMaximizedFocus)
fonctionne?

As-tu essayé de décomposer ce code?

Dim commande as string
Dim fichier as String
commande = chr(34) & chr(34) & "C:\Program Files\Autodesk\AutoCAD 2014\acad.exe" & chr(34) & chr(34) & " "
fichier = chr(34) & chr(34) & Nomfichier  & chr(34) & chr(34)
commande = commande & fichier

ID = Shell(commande, vbMaximizedFocus)

Bonjour et merci de t'intéresser à mon problème.

J'avais pensé a une solution du genre mais sans savoir quoi faire pour y arriver.

Cela ne fonctionne pas mais je pensais avoir trouvé la raison, il manquait 2 "

J'avais en Msgbox (commande) :

""C:\Program Files\Autodesk\AutoCAD 2014\acad.exe"" ""M:\Commercial\2016\1 - Commande\Client\P-99999-99999.dwg""

A lieu d'avoir comme dans l'exemple :

"""C:\Program Files\Autodesk\AutoCAD 2014\acad.exe"" ""M:\Commercial\2016\1 - Commande\Client\P-99999-99999.dwg"""

Cela m'a permis de comprendre le principe que tu as utilisé et l'utilité de chr()

Mais bon cela ne fonctionne pas, la souris passe en mode "patienter" et redevient normal mais rien ne s'est passé.

Cdt

Hmmmm c'est vraiment étrange ce que tu m'avances.

En effet si le code suivant fonctionne:

Shell("""C:\Program Files\Autodesk\AutoCAD 2014\acad.exe"" ""M:\Commercial\2016\1 - Commande\Client\P-99999-99999.dwg""", vbMaximizedFocus)

, il suffira de remplacer

"""C:\Program Files\Autodesk\AutoCAD 2014\acad.exe"" ""M:\Commercial\2016\1 - Commande\Client\P-99999-99999.dwg"""

par une variable qui elle contiendra

""C:\Program Files\Autodesk\AutoCAD 2014\acad.exe"" ""M:\Commercial\2016\1 - Commande\Client\P-99999-99999.dwg""

(ie un " en moins de chaque côté)

Si tu as une erreur, elle doit venir de la façon dont tu génères ton nom de fichier!

Autre solution:

Remplace

ID = Shell(commande, vbMaximizedFocus)

par

Debug.Print commande

Récupère le résultat généré (la console débeugage apparait/disparait avec le raccourci controle + G)

Retire un " en début et en fin de commande

Copie/colle ce résultat modifié dans la console windows directement (clique droit + coller, controle+v ne fonctionnera pas)

Vois si tu as un message d'erreur qui apparait !

Re,

Le résultat dans la console de commande est :

"La syntaxe du nom du fichier, de répertoire ou de volume est incorrecte"

J'ai testé simplement :

C:\Program Files\Autodesk\AutoCAD 2014\acad.exe

même résultat, alors j'ai testé comme cela :

C:\Progra~1\Autodesk\AutoCA~1\acad.exe

Autocad s'ouvre mais crash aussitôt...

Au vu du résultat, pas besoin d'aller plus loin je pense, même si j'arrivai à réécrit les chemins avec une macro, si autocad est instable a ce point autant abandonner.

Merci en tout cas,

J'aurais tout de même appris quelques trucs.

Cdt

Tu abandonnes peu être un peu trop rapidement ^^

As-tu pensé à utiliser un fichier batch?

J'ai également eu des difficultés sur la ligne de commande, et je les ai résolus par l'utilisation d'un exécutable batch.

Serais-tu intéressé?

Le fichier batch c'est juste un fichier texte avec comme extension ".bat" au lieu de ".txt" et qui permet de lancer des actions.

Ton fichier batch devrait ressembler à ça:

SET repertoireCAD=C:\Program Files\Autodesk\AutoCAD 2014\acad.exe
SET repertoireFichier=%~1
"%repertoireMEDIAexe%" "%repertoireFichier%"

Si si cela m'intéresse !

Je vais regarder cela. Par contre je vais devoir freiner sur le sujet car bien que j’apprécie ton aide et arriver à mes fins en vba j'ai mon vrai travail qui prend du retard ! Autant quand j'ai que du Excel, je le fait chez moi, autant si ya un rapport avec autocad...Je refuse d'avoir ce logiciel chez moi

Edit :

Je te remercie, tu m'as bien orienté, je pense avoir la solution !

Macro :

1° Je crée un fichier .txt

2° J'inscris dans le txt la ligne de commande

3° Je renomme en .bat

4° Je lance le .bat

5° Je supprime le .bat

Je vais tenté comme cela ce soir, je n'aurai pas besoin d'autocad pour savoir si cela fonctione.

Il n'y a que l'étape 1 et 2 que je doit trouver comment faire.

Merci encore.

Nomfichier = Dossier & "\" & "P-" & Cible & "-" & Cible2 & ".dwg"
'création du fichier txt avec la commande
  Close
  Chemin = "C:\"
  Open Chemin & "Fichier.txt" For Output As #1
  Print #1, "Start" & Chr(32) & Chr(34) & Chr(34) & Chr(32) & Chr(34) & Nomfichier & Chr(34)
  Close
'passer le txt en bat
Dim AncienNom As String, NouveauNom As String
AncienNom = "C:\Fichier.txt"
NouveauNom = "C:\Fichier.bat"
Name AncienNom As NouveauNom
'lancer le .bat
Call Shell("C:\Fichier.bat")

Application.Wait Time + TimeSerial(0, 0, 5)
'supprimer le .bat
Kill "C:\Fichier.bat"

Merci !!!

Bon et bien ce soir je cuisinerai plutôt du macro que d'en faire !

Merci encore pour ton aide

Rechercher des sujets similaires à "ouvrir fichier aurtocad"