Macro - Chemin fichier en relatif
Evilapin
-
Evilapin -
Evilapin -
Bonjour,
J'ai le code suivant :
Sub publipostage()
'
' publipostage Macro
' publipostage
'
ActiveDocument.MailMerge.OpenDataSource Name:= _
"C:\Users\User\Desktop\contrat\INTEGRAL DESIGNATION MAKER3\modeleIM3.xlsm" _
, ConfirmConversions:=False, ReadOnly:=False, LinkToSource:=True, _
AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:="", _
WritePasswordDocument:="", WritePasswordTemplate:="", Revert:=False, _
Format:=wdOpenFormatAuto, Connection:= _
"Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin;Data Source=C:\Users\User\Desktop\contrat\INTEGRAL DESIGNATION MAKER3\modeleIM3.xlsm;Mode=Read;Extended Properties=""HDR=YES;IMEX=1;"";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet OLEDB:Engi" _
, SQLStatement:="SELECT * FROM `Données$`", SQLStatement1:="", SubType:= _
wdMergeSubTypeAccess
ActiveDocument.MailMerge.ViewMailMergeFieldCodes = wdToggle
End Sub
Je souhaiterais que les chemins vers les fichiers (en gras) soient relatifs pour que ça puisse fonctionner chez tous les membres de mon services, peut importe le dossier dans lequel ils glissent le fichier.
Pourriez-vous m'aider ?
J'ai essayé avec le ThisWorkbook.Path mais je n'y arrive pas.
Merci beaucoup :) !
J'ai le code suivant :
Sub publipostage()
'
' publipostage Macro
' publipostage
'
ActiveDocument.MailMerge.OpenDataSource Name:= _
"C:\Users\User\Desktop\contrat\INTEGRAL DESIGNATION MAKER3\modeleIM3.xlsm" _
, ConfirmConversions:=False, ReadOnly:=False, LinkToSource:=True, _
AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:="", _
WritePasswordDocument:="", WritePasswordTemplate:="", Revert:=False, _
Format:=wdOpenFormatAuto, Connection:= _
"Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin;Data Source=C:\Users\User\Desktop\contrat\INTEGRAL DESIGNATION MAKER3\modeleIM3.xlsm;Mode=Read;Extended Properties=""HDR=YES;IMEX=1;"";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet OLEDB:Engi" _
, SQLStatement:="SELECT * FROM `Données$`", SQLStatement1:="", SubType:= _
wdMergeSubTypeAccess
ActiveDocument.MailMerge.ViewMailMergeFieldCodes = wdToggle
End Sub
Je souhaiterais que les chemins vers les fichiers (en gras) soient relatifs pour que ça puisse fonctionner chez tous les membres de mon services, peut importe le dossier dans lequel ils glissent le fichier.
Pourriez-vous m'aider ?
J'ai essayé avec le ThisWorkbook.Path mais je n'y arrive pas.
Merci beaucoup :) !
A voir également:
- Vba chemin fichier
- Fichier bin - Guide
- Fichier epub - Guide
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier .dat - Guide
3 réponses
Bonjour,$
"ThisWorkbook.Path", ça ne t'étonnera pas si je te dis que c'est de l'Excel ? Dans Word, il n'y a pas de Workbook même dans un chemin où se trouve un classeur Excel.
Espérant que les fichiers sont au même endroit sur tous les postes, il faut utiliser la fonction Environ.
Par exemple :
A noter que Desktop est une très mauvaise idée.
Normalement les modèles doiivent se trouvent dans le dossier prévu pour les modèles et là on aurait :
ou
selon la version.
m@rina
"ThisWorkbook.Path", ça ne t'étonnera pas si je te dis que c'est de l'Excel ? Dans Word, il n'y a pas de Workbook même dans un chemin où se trouve un classeur Excel.
Espérant que les fichiers sont au même endroit sur tous les postes, il faut utiliser la fonction Environ.
Par exemple :
chemin = Environ("USERPROFILE") & "\Desktop\contrat\INTEGRAL DESIGNATION MAKER3\"
A noter que Desktop est une très mauvaise idée.
Normalement les modèles doiivent se trouvent dans le dossier prévu pour les modèles et là on aurait :
chemin = Environ("USERPROFILE") & "\Documents\Modèles Office personnalisés\INTEGRAL DESIGNATION MAKER3\"
ou
chemin = Environ("USERPROFILE") & "\AppData\Roaming\Microsoft\Templates\INTEGRAL DESIGNATION MAKER3\"
selon la version.
m@rina
Merci pour votre réponse.
Je ne le savais pas merci.
En revanche, je voudrais aussi que le fichier word puisse être déplacé, de même que le fichier Excel (ils resteront toujours tous les deux dans un même dossier, mais le dossier lui peut bouger).
Comment faire ? Quel code utiliser et comment l´implanter dans le code que je vous ai copié collé ci-dessus ?
Merci beaucoup pour votre aide
Je ne le savais pas merci.
En revanche, je voudrais aussi que le fichier word puisse être déplacé, de même que le fichier Excel (ils resteront toujours tous les deux dans un même dossier, mais le dossier lui peut bouger).
Comment faire ? Quel code utiliser et comment l´implanter dans le code que je vous ai copié collé ci-dessus ?
Merci beaucoup pour votre aide
J'ai trouvé une solution !
Pour ceux que ça intéresse :
Pour ceux que ça intéresse :
ActiveDocument.MailMerge.MainDocumentType = wdFormLetters
ActiveDocument.MailMerge.OpenDataSource Name:= _
ActiveDocument.Path & "\modeleIM3.xlsm" _
, ConfirmConversions:=False, ReadOnly:=False, LinkToSource:=True, _
AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:="", _
WritePasswordDocument:="", WritePasswordTemplate:="", Revert:=False, _
Format:=wdOpenFormatAuto, Connection:= _
"Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin;Data Source=ActiveDocument.Path & \modeleIM3.xlsm;Mode=Read;Extended Properties=""HDR=YES;IMEX=1;"";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet OLEDB:Engi" _
, SQLStatement:="SELECT * FROM `Données$`", SQLStatement1:="", SubType:= _
wdMergeSubTypeAccess