Bonsoir,
Je viens chercher un peu d’aide car je bloque sur le formatage d’une date pour obtenir le format court 17/07/11.
Afin de remplir un document Word à l’aide d’une source de données externe (fichier.txt), j’utilisais dans un premier temps les champs de fusion.
Pour formater ma date stockée sous la forme dimanche 17 Juillet 2011 j’employais :
MERGEFIELD MADATE\@''dd/MM/yy'' \*MERGEFORMATpour obtenir 17/07/11
Pour faciliter mes modifications (fréquentes), enregistrement et impression de ces documents fusionnés j’ai donc opté pour du code et un UserForm.
Dans mon formulaire j’obtiens bien 2011 pour l’année mais malgré différentes formulations du style
Code VBA : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 : Sub MaFonction () Dim MADATE As String Dim ANNEE As String With ActiveDocument MADATE = .MailMerge.DataSource.DataFields(46).Value ANNEE = Right(ActiveDocument.MailMerge.DataSource.DataFields(46).Value, 4) End With With MonFormulaire .TbAnnée.Value = ANNEE .TbMaDate.Value = MADATE End With End Sub Sub RangerMesDonnées Application.ScreenUpdating = False With ActiveDocument .Bookmarks("Année").Range.Text = TbAnnée.Value .Bookmarks("MaDate").Range.Text = TbMadate.Value End With Application.ScreenUpdating = True End Sub
MADATE = Format(ActiveDocument.MailMerge.DataSource.DataFields(46).Value, "dd/mm/yy")
Le résultat reste dimanche 17 Juillet 2011.
J’ai envisagé de remplacer les mois ‘’ Juillet ‘’ par ‘’/07/’’ à l’aide d’une routine puis de sélectionner avec Right( ________,10) convertir en date avec CDate et reformater avec Format( _________,’’dd/mm/yy’’) mais cela me parait un peu capylotracté ( je sais il ne me reste déjà plus beaucoup de cheveux alors pourquoi en arracher plus) d’autant que je bloque sur la routine.
Par avance merci pour vos réponses.
PS : Je tente desespérement de mettre des balises de code mais sans effet
Partager