Avec une macro, comment rediriger un chemin

Résolu/Fermé
robbybasch Messages postés 100 Date d'inscription lundi 14 juillet 2014 Statut Membre Dernière intervention 19 août 2022 - 26 mars 2016 à 07:42
robbybasch Messages postés 100 Date d'inscription lundi 14 juillet 2014 Statut Membre Dernière intervention 19 août 2022 - 28 mars 2016 à 11:47
Bonjour,
J'ai fait une macro (en fouillant sur le net) qui me permette d'enregistrer un nom de fichier pris dans dans mon document non seulement au format word docx mais aussi et directement au format pdf.
Deux soucis : 1- j'ai actuellement la redirection des chemins (je débute en macro) qui ne fonctionne pas. En effet je voudrais que le document word s'enregistre dans le dossier Devis_word et que le document pdf dans le dossier devis_pdf.
2- je voudrais qu'une fois le fichier pdf enregistrer, il s'ouvre avec acrobat. je n'ai pas réussi à trouver une macro pour l'ouvrir après l'enregistrement.
Je vous note la macro ci-dessous :

Private Sub CommandButton1_Click()
'macro écrite par m@rina
Dim nom As String, nom2 As String, nombre
ChangeFileOpenDirectory "E:\_Mes Données\Valentin\Documents administratifs\Devis_Word" 'enregistre bien dans Devis Word
nom = ActiveDocument.Paragraphs(1).Range
nombre = ActiveDocument.Paragraphs(1).Range.Characters.Count
nom2 = (Left(nom, nombre - 1))
ActiveDocument.SaveAs FileName:=nom2 & ".docx"

'enregistrement doc PDF
Dim nfichier As String, nfichier2 As String, intpos As Byte
ChangeFileOpenDirectory "E:\_Mes Données\Valentin\Documents administratifs\Devis_Pdf" 'n'enregistre pas dans devis Pdf mais le fait dans devis Word
nfichier = ActiveDocument.Name
'trouve la position de l'extension
intpos = InStrRev(nfichier, ".")
'remplace l'extension doc par pdf
nfichier = Left(nfichier, intpos - 1)
nfichier2 = nfichier & ".pdf"
'enregistre dans le dossier en cours
ActiveDocument.ExportAsFixedFormat outputFileName:=ActiveDocument.Path & "/" & nfichier2, _
exportFormat:=wdExportFormatPDF

End Sub

Merci de votre aide

A voir également:

6 réponses

tyranausor Messages postés 3545 Date d'inscription jeudi 6 août 2009 Statut Membre Dernière intervention 1 avril 2022 2 031
26 mars 2016 à 12:29
Bonjour, si tu lis l'aide de ExportasfixedFormat tu aurais vu qu'il faut spécifier un répertoire, et chose que tu as faite. Mais en mettant
ActiveDocument.Path
sachant qu'avant tu as enregistré ton document dans un dossier spécifique (Devis Word), le chemin du document actif reste celui que tu as donné même si tu indiques un nouveau chemin, il ne sera pas pris en compte! Un ordi c'est bête, il ne faut pas l'oublier, si tu lui d'aller à droite, il tourne à droite même s'il y a un mur!

Bref, avec
chemin = "E:\_Mes Données\Valentin\Documents administratifs\Devis_Pdf"

ActiveDocument.ExportAsFixedFormat outputFileName:=chemin & "/" & nfichier2, _
exportFormat:=wdExportFormatPDF
ça devrait aller mieux
0
robbybasch Messages postés 100 Date d'inscription lundi 14 juillet 2014 Statut Membre Dernière intervention 19 août 2022
26 mars 2016 à 17:16
Bonjour Tyranausor
Je viens d'essayer et cela m'enregistre toujours dans devis_word. Qu'ai fait qu'il ne faut pas faire ??? je te remets ce que j'ai noté :

Private Sub CommandButton1_Click()
'macro écrite par m@rina
Dim nom As String, nom2 As String, nombre
ChangeFileOpenDirectory "E:\_Mes Données\Valentin\Documents Administratifs\Devis_Word"
nom = ActiveDocument.Paragraphs(1).Range
nombre = ActiveDocument.Paragraphs(1).Range.Characters.Count
nom2 = (Left(nom, nombre - 1))
ActiveDocument.SaveAs FileName:=nom2 & ".docx"


Dim nfichier As String, nfichier2 As String, intpos As Byte
nfichier = ActiveDocument.Name
'trouve la position de l'extension
intpos = InStrRev(nfichier, ".")
'remplace l'extension doc par pdf
nfichier = Left(nfichier, intpos - 1)
nfichier2 = nfichier & ".pdf"
'enregistre dans le dossier en cours
chemin_pdf = "E:\_Mes Données\Valentin\Documents administratifs\Devis_Pdf"

ActiveDocument.ExportAsFixedFormat outputFileName:=chemin_pdf & "/" & nfichier2, _
exportFormat:=wdExportFormatPDF
End Sub
faut-il définir la variable chemin_pdf afin qu'elle soit prise en compte ?
CDL
Robby
0
tyranausor Messages postés 3545 Date d'inscription jeudi 6 août 2009 Statut Membre Dernière intervention 1 avril 2022 2 031
26 mars 2016 à 22:30
Ne serait-il pas plus simple de stocker le nom dans une variable? Et si tu peux joindre ton fichier (sans données perso), ça serait pas plus mal pour voir ce qui va pas.
0
robbybasch Messages postés 100 Date d'inscription lundi 14 juillet 2014 Statut Membre Dernière intervention 19 août 2022
27 mars 2016 à 12:28
Bonjour Tyranausor
Eh ben c'est bien a ce que je pense mais je ne sais pas faire. Si tu peux me dépanner. En faite la variable ou se trouve le nom de fichier pdf est nfichier2 et la variable du chemin est cheminpdf (ce que tu m'as indiqué). Ce que je ne sais pas faire c'est à partir de l'appel d'un programme (acrobat en l'occurence) concatener le tout "logiciel chemin et variable nom de fichier" en vba.
Pour ouvrir acrobat j'ai trouvé ceci :
Shell "cmd /c start acrord32.exe ce qui fonctionne parfaitement, après l'enregistrement du doc word et pdf, acrobat s'ouvre mais ne trouve pas le nom de fichier. Je pense que c'est ma commande qui n'est pas bonne.
La ou cela ne va pas c'est la ligne c'est ou j'ai rajouté le texte en gras
Shell "cmd /c start acrord32.exe outputFilename:=cheminpdf & nfichier2"
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
tyranausor Messages postés 3545 Date d'inscription jeudi 6 août 2009 Statut Membre Dernière intervention 1 avril 2022 2 031
27 mars 2016 à 22:23
Bonjour, c’est expliqué ici comment joindre un fichier. Concernant l'ouverture du fichier après export, je suppose, ce sera
activedocument.ExportAsFixedFormat OutputFileName :=cheminpdf & nfichier2" , ExportFormat:=wdExportFormatPDF, OpenAfterExport:=true


Je te repréciserais cela directement dans ton document
0
robbybasch Messages postés 100 Date d'inscription lundi 14 juillet 2014 Statut Membre Dernière intervention 19 août 2022
28 mars 2016 à 11:47
Bonjour tyranausor
ne cherche plus.. j'ai trouvé ( il suffisait d'ajouter un +).... en fouillant sur le net. (j'avais un peu de temps). Donc si cela intéresse des personnes je mets le code qui sert à :
Pour les nuls en word et pour ceux qui ont du mal avec les chemins, cette macro permet de noter le nom du fichier dans le document word (qui est masqué pour l'impression) et en cliquant sur un bouton (masqué également) à coté, il permet d'enregistrer en word et en pdf et ouvre à la fin le pdf, ce qui permet une vérification. le doc word est dans un dossier word et le doc pdf est dans un dossier pdf.
macro :
Private Sub CommandButton1_Click()
'macro écrite par m@rina
chemindocx = "E:\_Mes Données\Valentin\Documents Administratifs\Devis_Word\"
cheminpdf = "E:\_Mes Données\Valentin\Documents administratifs\Devis_Pdf\"

Dim nom As String, nom2 As String, nombre
nom = ActiveDocument.Paragraphs(1).Range
nombre = ActiveDocument.Paragraphs(1).Range.Characters.Count
nom2 = (Left(nom, nombre - 1))
ActiveDocument.SaveAs FileName:=chemindocx & nom2 & ".docx"

Dim nfichier As String, nfichier2 As String, intpos As Byte
nfichier = ActiveDocument.Name
'trouve la position de l'extension
intpos = InStrRev(nfichier, ".")
'remplace l'extension doc par pdf
nfichier = Left(nfichier, intpos - 1)
nfichier2 = nfichier & ".pdf"
'enregistre dans le dossier en cours

ActiveDocument.ExportAsFixedFormat OutputFileName:=cheminpdf & nfichier2, _
ExportFormat:=wdExportFormatPDF, OpenAfterExport:=True
Shell "cmd /c start acrord32.exe + cheminpdf & nfichier2"

End Sub


Merci à tyranausor pour sa contribution. Si le fichier interesse des personnes, pas de problème pour l'envoyer.
CDL
Robby
0