enregistrer sous en vba

Le
gael.beauverger1
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
JIELPE53
Le #1586800
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




Anacoluthe
Le #1586797
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

gael.beauverger1
Le #1586786
On 19 mar, 19:14, Anacoluthe
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


gael.beauverger1
Le #1586777
On 19 mar, 19:14, Anacoluthe
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


Anacoluthe
Le #1586771
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

gael.beauverger1
Le #1586758
On 20 mar, 13:52, 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


Bonjour Anacoluthe,
Perfeto!
Merci


Publicité
Poster une réponse
Anonyme