IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Word Discussion :

Formulaire champ date limité


Sujet :

Word

  1. #1
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    1 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 1 064
    Points : 175
    Points
    175
    Par défaut Formulaire champ date limité
    Bonjour,
    Est-il possible de limiter la saisie d'une date dans un champ date d'un formulaire word à des dates postérieures à celle du jour?

  2. #2
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 086
    Points : 42 925
    Points
    42 925
    Par défaut
    Salut,

    A la saisie, non, mais à la sortie du champ, oui.
    Il faut un peu de VBA et faire une comparaison avec la date du jour.

  3. #3
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    1 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 1 064
    Points : 175
    Points
    175
    Par défaut
    Je suis preneur, comment ça se traduira dans les faits?

  4. #4
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 086
    Points : 42 925
    Points
    42 925
    Par défaut
    Salut,

    Une piste de départ là : http://heureuxoli.developpez.com/off...ormulaires/#L4

    Et comme code, il faut récupérer le contenu de ton champ.

    ActiveDocument.FormFileds("MonChamp").ResultFaire une comparaison

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If ActiveDocument.FormFields("MonChamp").Result < Date() Then 
    MsgBox "La date entrée n'est pas correcte !"
    End If

  5. #5
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    1 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 1 064
    Points : 175
    Points
    175
    Par défaut
    J'ai un peu modifié le code, intégré dans un module puis dans la propriété, à la sortie, rien ne se passe.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub Verifdatesaisie()
     
     
     
    If ActiveDocument.FormFields("DatedeCreation").Result < Date And ActiveDocument.FormFields("DatedeCreation").Result > Date Then
    MsgBox "La date entrée ne doit pas être différente de celle du jour de saisie"
    End If
     
     
    End Sub

  6. #6
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    1 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 1 064
    Points : 175
    Points
    175
    Par défaut
    l'idée paraît judicieuse.

    Est-il possible de mettre la date du champ par défaut à celle du jour?

  7. #7
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    1 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 1 064
    Points : 175
    Points
    175
    Par défaut
    C'est OK avec Or, évidemment.

    Peut on rendre la manœuvre blocante?
    Bloquer l'utilisateur sur le champ jusqu'a avoir la bonne date entrée?

  8. #8
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    1 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 1 064
    Points : 175
    Points
    175
    Par défaut
    Et, ce qui conclurait le projet, existe-t-il un moyen de protéger le code VBA avec le document comme on restreint les modification du document avec un code?

  9. #9
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    1 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 1 064
    Points : 175
    Points
    175
    Par défaut
    Quelque chose qui pourrait m'aider: comment sélectionne-t-on un champ en VBA?

    ainsi, je pourrais mettre ce code à la fin du et tant que la bonne date n'est pas entrée, le champ serait re sélectionné?

  10. #10
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    1 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 1 064
    Points : 175
    Points
    175
    Par défaut
    J'ai tenté ça:

    Code : 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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    Sub Verifdatesaisie()
     
     
     
     
     
     
    ' Macro créée le 15/01/2014 par
    '
    ' Code WordBasic
     
       On Error GoTo fError
     
          Select Case MsgBox("Veuillez renseigner le champ DATE avec une date conforme", vbOKOnly)
          Case vbOK
     
          End Select
          If ActiveDocument.FormFields("DatedeCreation").Result < Date Or ActiveDocument.FormFields("DatedeCreation").Result > Date Then
    MsgBox "La date entrée ne doit pas être différente de celle du jour de saisie"
     
          Dim DATECREATION As String
     
     
     
    DATEDECREATION = InputBox("Inscrivez la date" & vbCrLf & vbCrLf & "DATE")
    MsgBox DATEDECREATION
    ActiveDocument.FormFields("DatedeCreation").Result = DATEDECREATION
     
    Selection.GoTo wdGoToBookmark, Name:="MOIS"
     
     
     
     
    Else
     
          Selection.GoTo wdGoToBookmark, Name:="DatedeCreation"
     
     
     
     
     
     End If
    fError:
       MsgBox Err.Description
     
     
     
     
     
     
    Exit Sub
    End Sub

    Sans succès

  11. #11
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    1 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 1 064
    Points : 175
    Points
    175
    Par défaut
    Avec, en entrée:

    Code : 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
    22
    23
    24
    25
    26
    27
    28
    29
    Sub Verifdatesaisie()
     
     
    If ActiveDocument.FormFields("DatedeCreation").Result < Date Or ActiveDocument.FormFields("DatedeCreation").Result > Date Then
    MsgBox "La date entrée ne doit pas être différente de celle du jour de saisie"
     
          Dim DATECREATION As String
     
     
     
    DATEDECREATION = InputBox("Inscrivez la date" & vbCrLf & vbCrLf & "DATE")
    'MsgBox DATEDECREATION
    ActiveDocument.FormFields("DatedeCreation").Result = DATEDECREATION
     
    Selection.GoTo wdGoToBookmark, Name:="INSEE"
     
     
     
     
    Else
     
          Selection.GoTo wdGoToBookmark, Name:="MOIS"
     
     
     
     
     
     End If
    End Sub
    et, en sortie:

    Code : 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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    Sub VerificationDate()
     
     
     
     
     
     
    ' Macro créée le 15/01/2014 par
    '
    ' Code WordBasic
     
       'On Error GoTo fError
     
       Dim DATECREATION As String
     
     
     
    DATEDECREATION = InputBox("Inscrivez la date" & vbCrLf & vbCrLf & "DATE")
    'MsgBox DATEDECREATION
    ActiveDocument.FormFields("DatedeCreation").Result = DATEDECREATION
     
          'Select Case MsgBox("Veuillez renseigner le champ DATE avec une date conforme", vbOKOnly)
          'Case vbOK
     
         ' End Select
          If ActiveDocument.FormFields("DatedeCreation").Result < Date Or ActiveDocument.FormFields("DatedeCreation").Result > Date Or ActiveDocument.FormFields("DatedeCreation").Result = "" Then
    MsgBox "La date entrée ne doit pas être différente de celle du jour de saisie"
     
     
     
    Selection.GoTo wdGoToBookmark, Name:="INSEE"
     
     
     
     
    Else
     
          Selection.GoTo wdGoToBookmark, Name:="MOIS"
     
     
     
     
     
     End If
    'fError:
       'MsgBox Err.Description
     
     
     
     
     
     
    Exit Sub
    End Sub
    J'arrive à retourner en arrière dans mes champs en cas de mauvaise saisie (ce qui ne bloque pas vraiment puisqu'il suffit de sélectionner un autre champ à la souris....), si quelqu'un voit autre chose???

    Et enfin, comment protéger mon code VBA d'intrusion?

Discussions similaires

  1. [Débutant] Validation formulaire champ date
    Par titom59280 dans le forum Développement Web avec .NET
    Réponses: 1
    Dernier message: 26/02/2014, 19h18
  2. Calendrier pour le champ date d'un formulaire
    Par leloup84 dans le forum Général JavaScript
    Réponses: 17
    Dernier message: 02/01/2013, 15h52
  3. docmd Applyfilter sur formulaire (champ Date)
    Par kimha dans le forum VBA Access
    Réponses: 2
    Dernier message: 15/06/2010, 18h13
  4. Effacer un champ dans un formulaire, Test Dates
    Par sylvaindenisbe dans le forum Modélisation
    Réponses: 21
    Dernier message: 19/05/2007, 16h30
  5. controle sur un champ date dans un formulaire
    Par fraizas dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 22/03/2007, 14h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo