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
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 & " "