Macro enregistrement fichier avec contenu TextBox [Résolu]

Signaler
Messages postés
16
Date d'inscription
jeudi 25 juin 2020
Statut
Membre
Dernière intervention
26 juin 2020
-
Messages postés
16
Date d'inscription
jeudi 25 juin 2020
Statut
Membre
Dernière intervention
26 juin 2020
-
Bonjour,

J'ai créé un formulaire Word et je souhaite créer une macro permettant de l'enregistrer à l'emplacement souhaité et en changeant le nom du fichier pour chaque formulaire (en y intégrant l'ID client situé dans une TextBox). Je parviens à enregistrer mon fichier où je le souhaite avec la macro ci dessous :

ChangeFileOpenDirectory "U:\DESTINATION"
ActiveDocument.SaveAs FileName:="Fiche test" & ".docm"


J'ai ensuite tenté d'insérer TextBox1.Value ou TextBox1.Text entre "Fiche test" et ".docm" mais j'ai un message d'erreur m'indiquant "Objet requis". Une idée pour résoudre ce problème?

Merci d'avance,

1 réponse

Messages postés
11460
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
3 juillet 2020
655
bonjour,
merci d'utiliser les balises de code: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
pourquoi ne pas nous montrer comment tu as tenté cette insertion?
plus simple:
ActiveDocument.SaveAs FileName:="U:\DESTINATION\Fiche test" & ".docm"
Messages postés
16
Date d'inscription
jeudi 25 juin 2020
Statut
Membre
Dernière intervention
26 juin 2020
>
Messages postés
11460
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
3 juillet 2020

Non je ne l'avais pas fait, je vais le rajouter. Et oui je vais pouvoir partager le fichier, ce sera plus clair! Je vais aussi refaire un point sur ce que je veux et où on est pour qu'on s'y retrouve!

Encore merci pour ton aide, c'est super
Messages postés
16
Date d'inscription
jeudi 25 juin 2020
Statut
Membre
Dernière intervention
26 juin 2020
>
Messages postés
11460
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
3 juillet 2020

Ci-joint le formulaire Word : https://www.cjoint.com/c/JFAkijIF4YC

Pour résumer, l'idée de base est de mettre à disposition ce formulaire dans un espace commun. Une fois rempli, en appuyant sur le bouton "enregistrez" (lié à la macro ENREGISTREMENT), il faudrait que le formulaire soit enregistré à l'emplacement spécifié dans la macro au format Word et PDF (afin de le reprendre en pj par la suite).

A l'heure actuelle, cette macro fonctionne mais en donnant toujours le même nom aux fichiers ce qui pose problème puisque ce formulaire sera rempli plusieurs fois par semaine (pour des clients différents), il faudrait donc que la macro aille chercher le contenu de la TextBox correpondant à l'ID Client (TextBox1) pour différencier les noms de fichiers.

Après avoir enregistré, l'objectif est d'envoyer par mail ce formulaire au format pdf en appuyant sur le bouton "envoyez" (lié à la macro EnvoiMail). Nous avons réussi à rendre cette macro opérationnelle dans notre autre discussion mais il faudrait juste que la pj soit le PDF que l'on vient de créer. (dans le pire des cas, la pj pourrait être au format Word, donc le document actif).

Encore merci pour ton aide et ton temps,

PS : en utilisant ce lien, as-tu accès seulement aux 2 macros propres à ce document ou aussi à mes macros enregistrées dans "Normal"?
Messages postés
11460
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
3 juillet 2020
655 >
Messages postés
16
Date d'inscription
jeudi 25 juin 2020
Statut
Membre
Dernière intervention
26 juin 2020

je n'aurai pas accès aux macros enregistrées dans "normal".

je ne vois pas le code avec TextBox1.

il suffit peut-être d'utiliser
ThisDocument.TextBox1
Messages postés
16
Date d'inscription
jeudi 25 juin 2020
Statut
Membre
Dernière intervention
26 juin 2020
>
Messages postés
11460
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
3 juillet 2020

OK parfait.

Au temps pour moi, ci-joint le fichier avec le code TextBox : https://www.cjoint.com/c/JFAmcvPeG5C

En rajoutant
ThisDocument.TextBox1
, j'ai une erreur de compilation : membre de méthode ou de données introuvable qui me renvoie à mon TextBox1
Messages postés
16
Date d'inscription
jeudi 25 juin 2020
Statut
Membre
Dernière intervention
26 juin 2020
>
Messages postés
11460
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
3 juillet 2020

Solution trouvée! Avec la macro suivante, tout fonctionne comme je le voulais :

Sub ENREGISTREMENT()

Dim TextBox1 As Variant
Dim IDClient As Variant
IDClient = ActiveDocument.TextBox1.Value

If MsgBox("Enregistrer cette fiche dans le dossier '2020 - IARD?'", vbYesNo, "Demande de confirmation") = vbYes Then

ChangeFileOpenDirectory "U:\LBPCS_DONNEES_UTIL\2020 - IARD"
ActiveDocument.SaveAs FileName:="Fiche apport IARD - " & IDClient & ".docm"

ChangeFileOpenDirectory "U:\LBPCS_DONNEES_UTIL\2020 - IARD\"
ActiveDocument.ExportAsFixedFormat OutputFileName:= _
        "Fiche apport IARD - " & IDClient & ".pdf", _
        ExportFormat:=wdExportFormatPDF, OpenAfterExport:=False, OptimizeFor:= _
        wdExportOptimizeForPrint, Range:=wdExportAllDocument, From:=1, To:=1, _
        Item:=wdExportDocumentContent, IncludeDocProps:=True, KeepIRM:=True, _
        CreateBookmarks:=wdExportCreateNoBookmarks, DocStructureTags:=True, _
        BitmapMissingFonts:=True, UseISO19005_1:=False
        
MsgBox "La fiche a bien été enregistrée"

End If

End Sub


Merci pour les nombreuses pistes que tu m'as donné!

Toute dernière chose à régler : aller chercher le pdf qui vient d'être créé pour le joindre au mail. Pour l'instant, j'ai cette macro qui fonctionne avec un chemin classique dans
 .Attachments.Add
et j'ai donc essayé cela :

Sub EnvoiMail()

Dim ObjOutlook As Outlook.Application
Dim OBjMail As Outlook.MailItem
 
        Set ObjOutlook = Outlook.Application
        Set OBjMail = ObjOutlook.CreateItem(olMailItem)
        
        With OBjMail
            .To = "florian.delatouche@labanquepostale.fr"
            .CC = "sandrine.delacroix@labanquepostale.fr"
            .Subject = "Fiche test"
            .Body = "Bonjour"
            .Attachments.Add "U:\LBPCS_DONNEES_UTIL\2020 - IARD\"Fiche apport IARD - " & IDClient & ".pdf""

            .Display
        End With
        
End Sub


Message d'erreur de syntaxe pour la ligne de la pj... Une simple question de ponctuation peut-être?