OVH Cloud OVH Cloud

Un problème de macro

1 réponse
Avatar
AB
Salut à tous,
Je galère depuis quelque temps sur le problème suivant :
Lors de la fermeture d'un document, je voudrais afficher une boîte de
dialogue avec les 3 choix suivants (3 boutons) :
- ne pas enregistrer les modifications
- enregistrer les modifications
- enregistrer les modifications et mettre à jour la date

MAIS :

- si le document est nouveau, je voudrais que s'affiche la boîte de dialogue
habituelle permettant de donner un titre au document.

- si le document existait déjà, je voudrais :
a) s'il contient une date dans le titre, qu'elle soit mise à jour
b) s'il ne contient pas de date dans le titre, que la date du jour soit
ajoutée automatiquement

Ce qui me donnerait des fichiers avec un nom du style
"mondocument-02-12-2004.doc"

Mes connaissances en VBA sont bien trop sommaires pour pondre la macro qui
ferait ce boulot. Mais il traîne ici des drogués du VBA qui pourraient
trouver là matière à s'occuper quelque temps. Suivez mon regard...
Si vous trouvez que j'en demande trop, je vous fais excuse par avance.

A toutes fins utiles, je joins le début de code que j'ai bidouillé, à partir
d'une proposition de Geo, qui date de...2001 ! Ca ne répond pas à mes
attentes, bien sûr, mais bon...

Sub AutoClose()
Dim NomActuel As String
Dim NouveauNom As String
If ActiveDocument.Path = "" Then
Application.Dialogs(wdDialogFileSaveAs).Show: Exit Sub
NomActuel = ActiveDocument.Name
NouveauNom = Left(NomActuel, Len(NomActuel) - 10) & Format(Date,
"-dd-mm-yyyy") & ".doc"
ActiveDocument.SaveAs FileName:=NouveauNom
End Sub

A votre bon coeur !

André

1 réponse

Avatar
Anacoluthe
Bonjour André et les AMIS !

Euhhh mieux vaut tard ..... ;-) ))))))))))

Ci-joint une petite étude sur le sujet sous forme d'un modèle global
avec utilisation d'un événement d'application DocumentBeforeClose

http://cjoint.com/?mEw0oiFXcq
- ce lien vers un fichier à télécharger n'est actif que 14 jours -

Bonnes fêtes !

Anacoluthe
« L'ami doit être passé maître dans l'art de deviner
et dans l'art de se taire. »
- Friedrich NIETZSCHE ]


'AB' nous a écrit le 2 décembre dernier ...
Salut à tous,
Je galère depuis quelque temps sur le problème suivant :
Lors de la fermeture d'un document, je voudrais afficher une boîte de
dialogue avec les 3 choix suivants (3 boutons) :
- ne pas enregistrer les modifications
- enregistrer les modifications
- enregistrer les modifications et mettre à jour la date

MAIS :

- si le document est nouveau, je voudrais que s'affiche la boîte de dialogue
habituelle permettant de donner un titre au document.

- si le document existait déjà, je voudrais :
a) s'il contient une date dans le titre, qu'elle soit mise à jour
b) s'il ne contient pas de date dans le titre, que la date du jour soit
ajoutée automatiquement

Ce qui me donnerait des fichiers avec un nom du style
"mondocument-02-12-2004.doc"

Mes connaissances en VBA sont bien trop sommaires pour pondre la macro qui
ferait ce boulot. Mais il traîne ici des drogués du VBA qui pourraient
trouver là matière à s'occuper quelque temps. Suivez mon regard...
Si vous trouvez que j'en demande trop, je vous fais excuse par avance.

A toutes fins utiles, je joins le début de code que j'ai bidouillé, à partir
d'une proposition de Geo, qui date de...2001 ! Ca ne répond pas à mes
attentes, bien sûr, mais bon...

Sub AutoClose()
Dim NomActuel As String
Dim NouveauNom As String
If ActiveDocument.Path = "" Then
Application.Dialogs(wdDialogFileSaveAs).Show: Exit Sub
NomActuel = ActiveDocument.Name
NouveauNom = Left(NomActuel, Len(NomActuel) - 10) & Format(Date,
"-dd-mm-yyyy") & ".doc"
ActiveDocument.SaveAs FileName:=NouveauNom
End Sub

A votre bon coeur !

André