|
Publicité ' | ||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : janvier 2012 Messages : 9 ![]() |
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. Code VBA :
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 |
||
|
|
00
|
|
|
#2 | ||
![]() ![]() ![]() Olivier LebeauContrôleur d'industrie Inscription : février 2006 Messages : 17 339 ![]() |
Salut,
Petit mot d'explication. Va bien renvoyer 16/01/12, mais c'est une chaîne et pas une date. Si ru fais : Code :
Donc; si tu veux garder la date en format courtil ne faut pas affecter cette valeur à une date. PS : pour les balises de code, c'est le # dans les outils du message. Tu peux suivre le lien de ma signature aussi.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ? Débutez en VBA Mes articles Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus ! |
||
|
|
00
|
|
|
#3 | ||
|
Invité de passage
![]() Inscription : janvier 2012 Messages : 9 ![]() |
Merci pour cette réponse rapide,
Pour les balises je m'y colle, ![]() Pour ce qui est de la date cela ne m'avance pas. J'avais déjà cette formulation Code :
Le débogeur m'indique MaDate=''dimanche 17 Juillet 2011'' si je déclare comme chaine(string), et il m'indique MaDate = 00:00:00 lorsque je déclare comme date, Il bloque donc lorsque j'appelle la valeur Code :
MaDate= Format(ActiveDocument.MailMerge.DataSource.DataFields(52).Value, "dd/mm/yy") Code :
MaDate = Format(Date(.MailMerge.DataSource.DataFields(46).Value), "dd/mm/yy") Merci pour votre aide. |
||
|
|
00
|
|
|
#4 | ||||
![]() ![]() ![]() Olivier LebeauContrôleur d'industrie Inscription : février 2006 Messages : 17 339 ![]() |
Salut,
Donc, si tu déclares MaDate domme chaîne, tu as une erreur ? Ça me surprend. Je viens de tester : Code :
Par contre, en format de date, j'ai bien une incompatibilité de type. Code :
Autre question, pourquoi vouloir faire cette "mise en forme" par le code ? On peut appliquer un masque au champ de publipostage. http://heureuxoli.developpez.com/off.../champs/#LII-E
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ? Débutez en VBA Mes articles Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus ! |
||||
|
|
00
|
|
|
#5 | ||
|
Invité de passage
![]() Inscription : janvier 2012 Messages : 9 ![]() |
Bonjour,
en déclarant une chaine cela me renvoie bien une date au format dddd dd MMMM yyyy ou dd MMMM yyyy en fonction du masque de saisie mais comment substituer une date provenant de ma source de données a l'expression Date dans le formatage ? (car Date me renvoie la date courante) Code :
|
||
|
|
00
|
|
|
#6 | ||
![]() ![]() ![]() Olivier LebeauContrôleur d'industrie Inscription : février 2006 Messages : 17 339 ![]() |
Salut,
Je ne connais pas ton document ni tes données. Voilà le code que j'ai utilisé pour tester le format. Code :
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ? Débutez en VBA Mes articles Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus ! |
||
|
|
00
|
|
|
#7 | ||
|
Invité de passage
![]() Inscription : janvier 2012 Messages : 9 ![]() |
Bonjour,
Merci pour ton aide Heureux-oli, mais le chemin le plus rapide n'étant pas forcément la ligne droite j'ai donc pris un chemin détourné pour arriver à mes fins. Nota : 46 est la position du champ recherché dans mon fichier source au format txt ( au format "dimanche 17 Juillet 2011") que je souhaite convertir à la forme "17/07/11" Code :
Merci encore pour tout
|
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com