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 :

Obligation de remplir tous les champs [WD-2003]


Sujet :

Word

  1. #1
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2011
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juillet 2011
    Messages : 29
    Points : 16
    Points
    16
    Par défaut Obligation de remplir tous les champs
    Bonjour,

    J'ai créé un contrat CDI avec des champs à remplir, je souhaiterais savoir comment faire pour interdire l'impression du document, tant que tous les champs ne sont pas remplis, et afficher un message l'indiquant.

    ci joint, mon document. Par avance, Merci

    P.S. : je sais modifier et intégrer des bouts de code, mais pas les créer
    Fichiers attachés Fichiers attachés
    • Type de fichier : doc CDI.doc (72,5 Ko, 782 affichages)

  2. #2
    Membre expert

    Homme Profil pro
    Spécialiste progiciel
    Inscrit en
    Février 2010
    Messages
    1 747
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haute Loire (Auvergne)

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

    Informations forums :
    Inscription : Février 2010
    Messages : 1 747
    Points : 3 016
    Points
    3 016
    Par défaut
    Bonjour,

    Il faudrait déjà voir ce que tu appelles remplir les champs?
    Est-ce qu'un contrôle de saisie est actif sur chacun d'eux?

    Je pense qu'il faut utiliser la gestion des évènements et plus particulièrement DocumentBeforePrint qui intercepte la demande d'impression.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub appWord_DocumentBeforePrint _
        (ByVal Doc As Document, _
        Cancel As Boolean)
    'ton code de vérifications
    end sub
    Pour le contrôle des champs, il suffit peut-être de tester si leur valeur est non nulle ou différente de celles par défaut.
    Pour les champs, tu peux regarder ce tutoriel sur les formulaires d'Olivier
    Les formulaires
    Cordialement,
    Christophe

    Merci de ne pas oublier de mettre résolu quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche

  3. #3
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2011
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juillet 2011
    Messages : 29
    Points : 16
    Points
    16
    Par défaut
    Merci Carden pour l'info et le tutoriel (il me servira certainement pour mes futurs formulaires)

    Les champs sont les carrés gris dans le texte (en pièce jointe)
    Et justement je ne vois pas comment activer le controle de saisie.

    Effectivement je pensais aussi a utiliser DocumentBeforePrint

    Cependant, je n'ai pas trouvé dans le tuto comment indiquer dans le code, que des champs sont vides et du coup, annuler l'impression.

    Par avance, Merci

  4. #4
    Rédacteur/Modérateur

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

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

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

    Tu vas devoir faire une boucle sur tous les champs de ton formulaire pour contrôler si ils ont un contenu.

    On peut envisager un code de ce genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim ff As FormField
     
    For Each ff in ActiveDocument.FormFields
      If ff.Result  = "" Then ...
    Next ff
    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 !

  5. #5
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2011
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juillet 2011
    Messages : 29
    Points : 16
    Points
    16
    Par défaut
    Bonjour, Merci pour l'aide précieuse que tu me donnes afin de faire avancer le schmilblick donc j'ai réutilisé ton code en faisant les modifs suivantes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub appWord_DocumentBeforePrint _
        (ByVal Doc As Document, _
        Cancel As Boolean)
            Dim ff As FormField
     
            For Each ff In ActiveDocument.FormFields
            If ff.Result = "" Then Cancel = True: Exit Sub
        Next ff
    End Sub
    Mais cela ne fonctionne pas, je suis un peut en matière de VB, si tu pouvais m'éclairer la lanterne sur mon erreur ?

    Je te remercie.
    A te lire

  6. #6
    Membre expert

    Homme Profil pro
    Spécialiste progiciel
    Inscrit en
    Février 2010
    Messages
    1 747
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haute Loire (Auvergne)

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

    Informations forums :
    Inscription : Février 2010
    Messages : 1 747
    Points : 3 016
    Points
    3 016
    Par défaut
    Bonjour,

    est-ce que tu as déclaré un objet de type évènement et l'a initialisé à l'ouverture du document?
    Quelque chose de ce style

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Public WithEvents appWord as application 
     
    Private sub Document_Open()
    set appWord = Application
    End sub 
     
    Private sub Document_Close()
    set appWord = Nothing
    End sub
    Cordialement,
    Christophe

    Merci de ne pas oublier de mettre résolu quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche

  7. #7
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2011
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juillet 2011
    Messages : 29
    Points : 16
    Points
    16
    Par défaut
    Merci, a vous tous, ça a fonctionné parfaitement, Juste avant de clore ce chapitre, j'aurais besoin d'une petite précision :

    Je n'ai pas trouvé de tutoriel pour l'usage du MsgBox dans Word (sur excel, on en trouve a la pelle) pour afficher un message du type "Tous les champs ne sont pas remplis" avec en entête "Impression impossible". ou toutes les options possibles de cette fonction.

    Merci encore pour votre aide précieuse.

  8. #8
    Rédacteur/Modérateur

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

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

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

    C'est exact, il n'y a pas de tutoriel exclusivement réservé au MsgBox, mais je ne pense pas que ça vaille la peine.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MsgBox Prompt:="", Buttons:=vbCritical, Title:="", HelpFile:="", Context:=""
    Prompt : C'est le texte qui est affiché dans la boîte de dialogue. Si ce texte doit être affiché sur pllusieurs lignes, on peut utiliser en concaténation Chr(13)
    Ex : "La première ligne" & Chr(13) & "La seconde ligne"
    Buttons : ce sont les boutons qui seront utilisés et éventuellement certains pictogrammes d'avertissement. Les boutons disponibles sont proposés par l'IntelliSense.
    Titre : C'est le texte qui va figurer dans la barre de titre de la boîte de message.
    Les deux derniers paramètres sont utilisés conjointement avec un fichier d'aide, on indique le chemin et l'entrée dans ce fichier, ils sont tous deux optionnels.

    On peut utiliser un MsgBox pour récupérer un résultat.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim maRep as Integer
     
    maRep = MsgBox (Prompt:="", Buttons:=vbYesNo, Title:="", HelpFile:="", Context:="")
    Si l'utilisateur clique sur Yes, la valeur renvoyée est 6, s'il clique sur No, c'est 7.

    Voilà, on a fait le tour.
    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 !

  9. #9
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2011
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juillet 2011
    Messages : 29
    Points : 16
    Points
    16
    Par défaut
    C'est parfait, Merci ! Affaire résolue

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Obligation de saisir tous les champs
    Par marcoxavier dans le forum VB.NET
    Réponses: 2
    Dernier message: 20/05/2015, 22h14
  2. Comment obliger un utilisateur à remplir tous les champs d'un Userform
    Par puledad1 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 22/09/2011, 16h20
  3. Comment obliger un utilisateur à remplir tous les champs d'un Userform
    Par Gibé2201 dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 12/08/2011, 11h49
  4. Remplir tous les champs d'un formulaire
    Par SPH1X dans le forum Langage
    Réponses: 3
    Dernier message: 19/10/2008, 18h24
  5. Réponses: 7
    Dernier message: 17/05/2006, 09h09

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