Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Word > VBA Word
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/09/2011, 23h01   #1
Invité régulier
 
Inscription : octobre 2008
Messages : 28
Détails du profil
Informations forums :
Inscription : octobre 2008
Messages : 28
Points : 6
Points : 6
Par défaut Récupérer la valeur d'un champ date pour un calcul en VBA

WD2003
RECUPERER LA VALEUR D'UN CHAMP DATE D'UN FORMULAIRE POUR DES CALCULS EN MACRO VBA

D'AVANCE merci de votre aide précieuse

J'ai besoin de récuperer la date dans un champ texte ou date d'un formulaire word (type date avec un format dd/MM/yy) et de lancer une macro VBA à la sortie et de mettre le résultat du calcul dans un autre champ texte.

Mon problème est que le remplissage du champ texte date me dit à la sortie du champ "UTILISER une date valide", ce que je fais... Je ne comprends pas où est l'erreur. Voici le code vba qui marche SI J'ARRIVE A RECUPERER LE CODE DU CHAMP DateNaissance
Code :
1
2
3
4
5
6
7
8
9
     Sub ImmediatCalculAge()
 ' Calcul l'age du patient
  ' modifiée le 04/09/2011
 ' met à jour instantannément le champ age
Dim DateNais, DateJour, AgeCal  As String
DateNais = ActiveDocument.FormFields("DateNaissance").Result 'Champ du formulaire
deb = Date - CDate(DateNais)
.....
 ActiveDocument.FormFields("AgeEnfant").Result = TA + TM + TJ
COMMENT RECUPERER LA VALEUR D'UN CHAMP DATE OU TEXTE D'UN FORMULAIRE DANS UNE MACRO VBA POUR EFFECTUER UN CALCUL ?

ActiveDocument.FormFields("DateNaissance").Result NE MARCHE PAS

Merci d'avance de m'éclairer
dede tabby est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/09/2011, 00h22   #2
Invité régulier
 
Inscription : octobre 2008
Messages : 28
Détails du profil
Informations forums :
Inscription : octobre 2008
Messages : 28
Points : 6
Points : 6
Par défaut Merci tout de même

J'ai du secouer mes petites celules grises...
Je crois avoir trouvé

Il faut mettre :

Code :
1
2
ActiveDocument.FormFields("DateNaissance").Range.Text
dede tabby est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/09/2011, 08h13   #3
Modérateur
 
Homme Christophe CHAPAT
Spécialiste progiciel
Inscription : février 2010
Messages : 984
Détails du profil
Informations personnelles :
Nom : Homme Christophe CHAPAT
Âge : 25
Localisation : France, Haute Loire (Auvergne)

Informations professionnelles :
Activité : Spécialiste progiciel
Secteur : Service public

Informations forums :
Inscription : février 2010
Messages : 984
Points : 1 597
Points : 1 597
Envoyer un message via MSN à carden752
Bonjour,

Il est possible d'utiliser .range.text comme tu l'as fait.
Pour l'erreur avec .result, c'est peut-être que VB fait une conversion automatiquement en date. Donc la fonction CDATE ne peut plus s'appliquer.
__________________
Cordialement,
Christophe

Merci de ne pas oublier de mettre résolu quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche
carden752 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/09/2011, 13h43   #4
Invité régulier
 
Inscription : octobre 2008
Messages : 28
Détails du profil
Informations forums :
Inscription : octobre 2008
Messages : 28
Points : 6
Points : 6
Par défaut TESTER UN CHAMP TEXTE NON REMPLI

Merci des réponses

WD2003 Formulaire/VBA

Comment tester si le champ (par exemple le mien "DateNaissance") n'a pas été rempli pour éviter un message d'erreur ?

CHX = ActiveDocument.FormFields("DateNaissance").Range.Text si pas rempli donne un message d'erreur CHX = " " MESSAGE ERREUR....

IF Isnull, IF IsEmpty IF CHX=" " ne marche pas...

Bref, je ne sais le faire.

Cordialement
dede tabby est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/09/2011, 15h02   #5
Modérateur
 
Homme Christophe CHAPAT
Spécialiste progiciel
Inscription : février 2010
Messages : 984
Détails du profil
Informations personnelles :
Nom : Homme Christophe CHAPAT
Âge : 25
Localisation : France, Haute Loire (Auvergne)

Informations professionnelles :
Activité : Spécialiste progiciel
Secteur : Service public

Informations forums :
Inscription : février 2010
Messages : 984
Points : 1 597
Points : 1 597
Envoyer un message via MSN à carden752
Bonjour,

Plusieurs possibilités :
Peut-être compter le nombre de caractère avec la fonction Len.

Citation:
Envoyé par dede tabby
IF CHX=" "
Comparaison de CHX avec le caractère espace, voici la bonne syntaxe :
comparaison avec rien donc chaine vide.
__________________
Cordialement,
Christophe

Merci de ne pas oublier de mettre résolu quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche
carden752 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/09/2011, 20h00   #6
Invité régulier
 
Inscription : octobre 2008
Messages : 28
Détails du profil
Informations forums :
Inscription : octobre 2008
Messages : 28
Points : 6
Points : 6
Par défaut WD2003 Champ texte d'un formulaire via VBA

La comparaison IF CHX="" ne marche pas mais IsDate marche.

Je voudrais que le curseur revienne sur le champ DateNaissance (ou que ce champ soit de nouveau selectionné pour rentrer une nouvelle date)... Voici où j'en suis dans le code :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
 
 MaDate = ActiveDocument.FormFields("DateNaissance").Range.Text 
' teste la validité de la date
   MyCheck = IsDate(MaDate)
   If MyCheck = True Then  ' Renvoie True si date valide
       GoTo Continuer
     Else
    MsgBox "Ce n'est pas une date correcte, OPERATION ANNULEE"
   ActiveDocument.FormFields("DateNaissance").Result = "     "
 ActiveDocument.FormFields("DateNaissance").Select 
 GoTo FINIR 
  End If
J'ai essayé .select mais cela ne marche pas

Merci de votre aide

Je précise mais tout le monde aura compris que ma connaissance en informatique n'est pas bonne.

Cordialement
dede tabby est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/09/2011, 15h08   #7
Invité régulier
 
Inscription : octobre 2008
Messages : 28
Détails du profil
Informations forums :
Inscription : octobre 2008
Messages : 28
Points : 6
Points : 6
Par défaut Passage d'un champ formulaire a un autre champ en VBA

WD2003

PLEASE MERCI DE M'AIDER

COMMENT FAIRE POUR PASSER D'UN CHAMP D'UN FORMULAIRE WORD A UN AUTRE CHAMP AVEC LE LANGAGE VBA ?

JE NE SAIS PAS LE FAIRE

J'AI VU .PREVOUIS OU . NEXT DE FIELDS SANS Y ARRIVER...

MERCI DE VOTRE AIDE
dede tabby est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h21.


 
 
 
 
Partenaires

Hébergement Web