Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

enregistrer sous en vba

6 réponses
Avatar
gael.beauverger1
Bonjour,
Gr=E2ce =E0 Geo et Anacoluthe, j'ai pu cr=E9er un formulaire s'enregistrant
=E0 partir d'un champ texte. Cependant je souhaite, maintenant, que le
nom du fichier s'enregistre =E0 partir du contenu d'une liste d=E9roulante
et de 2 champs texte. J'ai =E9crit ceci:
Public Sub FileSaveAs()
' Pr=E9nomme le fichier avec le champ liste d=E9roulante1, texte 4, texte5
et la date
Dim NomFichier As String
NomFichier =3D
ActiveDocument.Bookmarks("ListeD=E9roulante1""Texte4""Texte5").Range.Text
NomFichier =3D NomFichier & Format(Date, "-dd-MM-yy") & ".doc"
With Application.Dialogs(wdDialogFileSaveAs)
.Name =3D NomFichier
.Show
End With
End Sub
Cependant cela ne fonctionne pas. Quelle est mon erreur?
Bonne journ=E9e
Ga=EBl

6 réponses

Avatar
JIELPE53
Hello Gael,

dis-moi après avroi récupéré le nom de ton fichier dans ta variable
Nomfichier, pourquoi passes-tu par une boite de dialogue (Enregistrer sous) ?

Ne peux-tu pas directement exécuter la commande :

ActiveDocument.SaveAs NomFichier

à la place du bloc

With Application.Dialogs(wdDialogFileSaveAs)
.Name = NomFichier
.Show
End With

A+


Bonjour,
Grâce à Geo et Anacoluthe, j'ai pu créer un formulaire s'enregistrant
à partir d'un champ texte. Cependant je souhaite, maintenant, que le
nom du fichier s'enregistre à partir du contenu d'une liste déroulante
et de 2 champs texte. J'ai écrit ceci:
Public Sub FileSaveAs()
' Prénomme le fichier avec le champ liste déroulante1, texte 4, texte5
et la date
Dim NomFichier As String
NomFichier > ActiveDocument.Bookmarks("ListeDéroulante1""Texte4""Texte5").Range.Text
NomFichier = NomFichier & Format(Date, "-dd-MM-yy") & ".doc"
With Application.Dialogs(wdDialogFileSaveAs)
.Name = NomFichier
.Show
End With
End Sub
Cependant cela ne fonctionne pas. Quelle est mon erreur?
Bonne journée
Gaël




Avatar
Anacoluthe
Bonjour !

'' nous a écrit ...

ActiveDocument.Bookmarks("ListeDéroulante1""Texte4""Texte5").Range.Text


Cette ligne est erronée : vous ne pouvez pas concaténer ainsi les signets !
Si vous souhaitez concaténer le contenu des 3 signets écrivez :
NomFichier = ActiveDocument.Bookmarks("ListeDéroulante1").Range.Text _
& ActiveDocument.Bookmarks("Texte4").Range.Text _
& ActiveDocument.Bookmarks("Texte5").Range.Text

Votre macro pré-nomme le fichier mais laisse l'utilisateur libre
de choisir un autre nom. Si vous voulez enregistrer le fichier avec
le nom concaténé ci-dessus utilisez SaveAs comme a dit JIEL (autre JièL ?)

Anacoluthe
« Nommer, c'est aussi sauver. »
- Claudio MAGRIS

Avatar
gael.beauverger1
On 19 mar, 19:14, Anacoluthe wrote:
Bonjour !

'' nous a écrit ...

ActiveDocument.Bookmarks("ListeDéroulante1""Texte4""Texte5").Range.Te xt


Cette ligne est erronée : vous ne pouvez pas concaténer ainsi les sig nets !
Si vous souhaitez concaténer le contenu des 3 signets écrivez :
NomFichier = ActiveDocument.Bookmarks("ListeDéroulante1").Range.Text _
& ActiveDocument.Bookmarks("Texte4").Range.Text _
& ActiveDocument.Bookmarks("Texte5").Range.Text

Votre macro pré-nomme le fichier mais laisse l'utilisateur libre
de choisir un autre nom. Si vous voulez enregistrer le fichier avec
le nom concaténé ci-dessus utilisez SaveAs comme a dit JIEL (autre Ji èL ?)

Anacoluthe
« Nommer, c'est aussi sauver. »
- Claudio MAGRIS


Bonsoir,
Merci Anacoluthe pour la syntaxe. Je suis obligé de suggérer le nom du
fichier. Mais la commande de JIELP53 va aussi me servir.
Gaël


Avatar
gael.beauverger1
On 19 mar, 19:14, Anacoluthe wrote:
Bonjour !

'' nous a écrit ...

ActiveDocument.Bookmarks("ListeDéroulante1""Texte4""Texte5").Range.Te xt


Cette ligne est erronée : vous ne pouvez pas concaténer ainsi les sig nets !
Si vous souhaitez concaténer le contenu des 3 signets écrivez :
NomFichier = ActiveDocument.Bookmarks("ListeDéroulante1").Range.Text _
& ActiveDocument.Bookmarks("Texte4").Range.Text _
& ActiveDocument.Bookmarks("Texte5").Range.Text

Votre macro pré-nomme le fichier mais laisse l'utilisateur libre
de choisir un autre nom. Si vous voulez enregistrer le fichier avec
le nom concaténé ci-dessus utilisez SaveAs comme a dit JIEL (autre Ji èL ?)

Anacoluthe
« Nommer, c'est aussi sauver. »
- Claudio MAGRIS


Bonjour à tous,
Anacoluth a écrit
Si vous souhaitez concaténer le contenu des 3 signets écrivez :
NomFichier = ActiveDocument.Bookmarks("ListeDéroulante1").Range.Text _
& ActiveDocument.Bookmarks("Texte4").Range.Text _
& ActiveDocument.Bookmarks("Texte5").Range.Text
Cela fonctionne pour les champs textes mais renvoie un symbole carré

pour "ListeDéroulante1" et ce qui a été saisi. Ne faut il pas en fait
passer par un champ "ref" reprenant la liste.
Cordialement,
Bonne journée


Avatar
Anacoluthe
Bonjour !

'' nous a écrit ...
Cela fonctionne pour les champs textes mais renvoie un symbole carré
pour "ListeDéroulante1" et ce qui a été saisi. Ne faut il pas en fait
passer par un champ "ref" reprenant la liste.


Champs de formulaire Word : remplacez dans votre code
ActiveDocument.Bookmarks("ListeDéroulante1").Range.Text
par
ActiveDocument.FormFields("ListeDéroulante1").Result

Valable aussi pour les champs Texte :
ActiveDocument.FormFields("Texte1").Result

Anacoluthe
« Bienheureux les travailleurs des champs. »
- VIRGILE

Avatar
gael.beauverger1
On 20 mar, 13:52, Anacoluthe wrote:
Bonjour !

'' nous a écrit ...

Cela fonctionne pour les champs textes mais renvoie un symbole carré
pour "ListeDéroulante1" et ce qui a été saisi. Ne faut il pas en fait
passer par un champ "ref" reprenant la liste.


Champs de formulaire Word : remplacez dans votre code
ActiveDocument.Bookmarks("ListeDéroulante1").Range.Text
par
ActiveDocument.FormFields("ListeDéroulante1").Result

Valable aussi pour les champs Texte :
ActiveDocument.FormFields("Texte1").Result

Anacoluthe
« Bienheureux les travailleurs des champs. »
- VIRGILE


Bonjour Anacoluthe,
Perfeto!
Merci