× Aidez la recherche contre le COVID-19 avec votre ordi ! Rejoignez l'équipe PC Astuces Folding@home
 > Tous les forums > Forum Bureautique
 Word2003 Formulaire avec champs datesSujet résolu
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
maryloo2005
  Posté le 19/09/2007 @ 09:07 
Aller en bas de la page 
Astucienne

Bonjour,

Dans un formulaire, je dois remplir des champs texte avec des dates (format date).

J'ai 2 champs à remplir : l'une avec une date actuelle et la suivante avec une date (exactement 6 mois plus tard que la première).

Par exemple si je mets 19/09/07, la suivante doit faire apparaître 19/03/08.

Je vois qu'on peut mettre un champ texte calcul, j'ai fait des essais mais ça ne marche pas. On peut aussi faire une macro à la sortie d'un champ mais je ne sais pas faire. Qui peut m'aider ? merci.

Publicité
gilbert_rgi
 Posté le 19/09/2007 à 10:30 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Bonjour

si le champ du formulaire est le n° 1

voilà le code

Private Sub Document_Open()
mydate = Date + 180
ActiveDocument.FormFields(1).Result = Format(mydate, "dddd d mmm yyyy")
End Sub

et on obtient à l'ouverture du document

lundi 17 mars 2008

oups six mois =182jours à rectifier donc

et on obtient bien mercredi 19 mars 2008

Cdlt



Modifié par gilbert_rgi le 19/09/2007 10:35
DjiDji59430
 Posté le 19/09/2007 à 11:19 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Tu es obligée de faire ton formulaire dans word ?

Pour ma part, j'aurais pris Excel qui seul peut faire ton calcul !

date dans a1

et dans a2 =date(année(a1);mois(a1) +6;jour(a1))

Le reste est de la mise en forme.

gilbert_rgi
 Posté le 19/09/2007 à 11:22 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Le titre indique word 2003 ?

maryloo2005
 Posté le 19/09/2007 à 12:20 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucienne

Merci pour vos réponses.

Oui je suis obligée de le faire dans Word car j'ai plein d'autres champs texte, listes, cases à cocher à mettre dans un doc texte.

En fait, je me suis trompée de version : moi je travaille sur Word 2003 mais les gens qui utiliseront mon formulaire ont Word 2000. C'est pas grave, j'espère !

La macro que Gilbert m'indique va-t-elle marcher quand même avec W2000 ?

Où faut-il que je l'écrive cette macro ? Je dois affecter cette macro au 2e champ texte je suppose ? à la sortie ?

Merci. Je ne suis pas du tout experte en macro. Je bidouille.

Mary

gilbert_rgi
 Posté le 19/09/2007 à 12:26 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

regardes ICI

http://cjoint.com/?jtmCme3nGH



Modifié par gilbert_rgi le 19/09/2007 12:28
m@rina
 Posté le 19/09/2007 à 12:30 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucienne

Bonjour,

Pour un petit calcul dans un formulaire Word, on peut se passer d'Excel (une fois n'est pas coutume !).

En calcul de date avec les champs, Word est nul ! C'est néanmoins faisable mais extrêmement compliqué. A titre indicatif et pour le fun, vous pouvez observer ce fichier :
http://faqword.free.fr/dwnld.php?lng=fr&pg=1474

Donc, effectivement le plus simple est de faire une macro de sortie. Maryloo n'a pas besoin d'une macro qui s'exécute à l'ouverture du document, mais à la sortie d'un champ, càd une fois que la date est saisie dans ce champ.
Par ailleurs, 6 mois ce n'est ni 180 ni 182 jour
Tout dépend si on inclut juillet+août (31 jours tous les deux), ou si on inclut février, et si c'est février d'une année bissextile, ça va encore différer, etc.
Donc, quand on veut +6 mois, on veut le même jour 6 mois après...

Voici donc la macro de sortie, partant du principe que le champ texte qui contient la première date a pour signet "texte1" et que celui qui devra contenir la date de fin a pour signet "texte2" :

Sub calculdate()
Dim datedebut As Date, datefin As Date
datedebut = ActiveDocument.Bookmarks("texte1").Range.Text
datefin = DateAdd("m", 6, datedebut)
ActiveDocument.FormFields("Texte2").Result = datefin
End Sub

gilbert_rgi
 Posté le 19/09/2007 à 13:07 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

donc il est possible de faire ceci aussi

Private Sub Document_Open()
mydate = DateAdd("m", 6, Date)
ActiveDocument.FormFields(1).Result = Format(mydate, "dddd d mmm yyyy")
End Sub

m@rina
 Posté le 19/09/2007 à 13:20 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucienne

Ben...

Disons que

1) je ne sais pas si Maryloo veut la date du jour ou bien une date saisie par un utilisateur (c'est à elle de voir)
2) avec la macro auto_open, le champ se mettra à jour et la date changera donc à chaque ouverture du fichier... Je ne suis pas certaine que ce soit ce que veut Maryloo

Quant au format, on peut le mettre directement dans le champ.

Publicité
maryloo2005
 Posté le 19/09/2007 à 13:59 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucienne

Merci ! ca marche. J'ai recopié la macro de Marina !

Problème résolu.

Page : [1] 
Page 1 sur 1

Vous devez être connecté pour poster des messages. Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !


Les bons plans du moment PC Astuces

Tous les Bons Plans
139,80 €Haut-parleurs Logitech G560 avec éclairage RGB Synchronisé à 139,80 €
Valable jusqu'au 01 Novembre

Amazon fait une belle promotion sur les  haut-parleurs Logitech G560 qui passent à 139,80 € livrés gratuitement alors qu'on les trouve ailleurs à partir de 189 €. Ces haut-parleurs dédiés aux joueurs offrent un son surround DTS:X Ultra positionnel en 3D, pour une perception de votre environnement de jeu sous tous les angles. L'éclairage LIGHTSYNC RGB intégré projette des couleurs d'éclairage piloté par le jeu et des effets activés par le son de nombreux jeux populaires. Connectez et basculez entre quatre dispositifs grâce à la connectivité polyvalente USB, 3,5 mm et sans fil Bluetooth pour les jeux, la musique et bien plus encore.


> Voir l'offre
4,41 €Assortiment de mèches hélicoïdales à bois Bosch (3/4/5/6/7/8/10 mm) à 4,41 €
Valable jusqu'au 04 Novembre

Amazon fait une promotion sur l'assortiment de mèches hélicoïdales à bois Bosch - Ø 3/4/5/6/7/8/10 mm qui passe à 4,41 € au lieu de 8,39 €. La livraison est gratuite en point relais.


> Voir l'offre
8 €Jeu de 4 tournevis Stanley Cushion Grip à 8 €
Valable jusqu'au 02 Novembre

Amazon fait une promotion sur le lot de 4 tournevis Stanley Cushion Grip qui passe à 8 € au lieu de 19 €. Lame plaquée chrome anti-corrosion. Manche soft grip pour un confort et un contrôle parfait. Les extrémités sont aimantées.


> Voir l'offre

Sujets relatifs
Comment créer un questionnaire/formulaire avec champs de saisie
calculs avec champs texte dans formulaire
Formulaire sur requête avec champs calculés
Insérer un texte dans plusieurs champs avec Word
Calcul avec excel entre 2 dates sur plusiuers années
comment vider les champs d'un formulaire Word?
imprimer le grisé des champs de formulaire
remplire formulaire avec adobe reader9
Formulaire avec Gmail ou Google docs..
Formule avec dates
Plus de sujets relatifs à Word2003 Formulaire avec champs dates
 > Tous les forums > Forum Bureautique