Over.Slash
Messages postés10Date d'inscriptionlundi 24 mars 2014StatutMembreDernière intervention20 août 2014
-
Modifié par Over.Slash le 24/03/2014 à 22:53
Whismeril
Messages postés18619Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention27 septembre 2023
-
24 mars 2014 à 23:11
Bonsoir,
suivant mon code
Sub Macro1()
'Enregistrement auto du fichier
attention = ActiveDocument.MailMerge.DataSource.DataFields(1).Value contact = ActiveDocument.MailMerge.DataSource.DataFields(3).Value fonction = ActiveDocument.MailMerge.DataSource.DataFields(4).Value designation = ActiveDocument.MailMerge.DataSource.DataFields(5).Value agence = ActiveDocument.MailMerge.DataSource.DataFields(6).Value service = ActiveDocument.MailMerge.DataSource.DataFields(7).Value
le nom de fichier à parfois des espaces de trop due au champs vide si ils ne sont pas renseignés.
je pensais ajouté une fonction If de cette façon.
ActiveDocument.SaveAs FileName:=... & If (attention="" then "" else attention & " ") ... & ".doc"
si le champ attention est vide vba le désigne comme "".
si c'est le cas je voudrais que " " aprés attention devienne "" dans mon nom de fichier,
et si le texte du champ attention est renseigné il apparait et je veux qu'il soit suivit d'un " ".
et ainsi de suite pour tous les autres champs inclus dans mon nom de fichier.
je sais utiliser la fonction SI sous excel et IF en basic mais pas en vba, quelqu'un pourrais me renseigner ?
je pensais également réécrire le code comme cela
attention = If ActiveDocument.MailMerge.DataSource.DataFields(1).Value = "" then "" else ActiveDocument.MailMerge.DataSource.DataFields(1).Value & " " contact = If ActiveDocument.MailMerge.DataSource.DataFields(3).Value = "" then "" else ActiveDocument.MailMerge.DataSource.DataFields(3).Value & " " fonction = If ActiveDocument.MailMerge.DataSource.DataFields(4).Value = "" then "" else ActiveDocument.MailMerge.DataSource.DataFields(4).Value & " " designation = If ActiveDocument.MailMerge.DataSource.DataFields(5).Value = "" then "" else ActiveDocument.MailMerge.DataSource.DataFields(5).Value & " " agence = If ActiveDocument.MailMerge.DataSource.DataFields(6).Value = "" then "" else ActiveDocument.MailMerge.DataSource.DataFields(6).Value & " " service = If ActiveDocument.MailMerge.DataSource.DataFields(7).Value = "" then "" else ActiveDocument.MailMerge.DataSource.DataFields(7).Value & " "
ActiveDocument.SaveAs FileName:="C:\Users\Corsaire 98\Documents\Courriers\Courrier " & attention & contact & fonction & designation & agence & service & ".doc"
mais j'ai une erreur de compilation sur IF
ou encore comme cela
Active Document.SaveAs FileName:="C:\Users\Corsaire 98\Documents\Courriers\Courrier " & attention & " " & If contact = "" Then "" else contact & " " If end & If fonction = "" Then "" else fonction & " " If end & If designation = "" Then "" else designation & " " If end & If contact = "" Then "" else contact & " " If end & " " If end & If agence = "" Then "" else agence & " " If end & " " If end & If service = "" Then "" else service & " " If end & " - " & Objet & " - " & Envoie & " - " & Format(Date, "dd-mm-yyyy") & ".doc"
mais là encore j'ai une erreur de compilation sur IF
merci par avance de votre aide.
A voir également:
Enregistrement fichier, supprimer les " " entre 2 champs vides
Over.Slash
Messages postés10Date d'inscriptionlundi 24 mars 2014StatutMembreDernière intervention20 août 20141 24 mars 2014 à 23:06
au finale je me suis débrouillé comme un grand voici le résultat
attention = ActiveDocument.MailMerge.DataSource.DataFields(1).Value If ActiveDocument.MailMerge.DataSource.DataFields(1).Value = "" Then attention = "" Else attention = ActiveDocument.MailMerge.DataSource.DataFields(1).Value & " "
contact = ActiveDocument.MailMerge.DataSource.DataFields(3).Value If ActiveDocument.MailMerge.DataSource.DataFields(3).Value = "" Then contact = "" Else contact = ActiveDocument.MailMerge.DataSource.DataFields(3).Value & " "
fonction = ActiveDocument.MailMerge.DataSource.DataFields(4).Value If ActiveDocument.MailMerge.DataSource.DataFields(4).Value = "" Then fonction = "" Else fonction = ActiveDocument.MailMerge.DataSource.DataFields(4).Value & " "
designation = ActiveDocument.MailMerge.DataSource.DataFields(5).Value If ActiveDocument.MailMerge.DataSource.DataFields(5).Value = "" Then designation = "" Else designation = ActiveDocument.MailMerge.DataSource.DataFields(5).Value & " "
agence = ActiveDocument.MailMerge.DataSource.DataFields(6).Value If ActiveDocument.MailMerge.DataSource.DataFields(6).Value = "" Then agence = "" Else agence = ActiveDocument.MailMerge.DataSource.DataFields(6).Value & " "
service = ActiveDocument.MailMerge.DataSource.DataFields(7).Value If ActiveDocument.MailMerge.DataSource.DataFields(7).Value = "" Then service = "" Else service = ActiveDocument.MailMerge.DataSource.DataFields(7).Value & " "