Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Word
Word Forum d'entraide sur le traitement de texte Microsoft 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 25/07/2011, 14h29   #1
Invité de passage
 
Homme Julien KETTER
Technicien maintenance
Inscription : juillet 2011
Messages : 5
Détails du profil
Informations personnelles :
Nom : Homme Julien KETTER
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 : 5
Points : 1
Points : 1
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
Type de fichier : doc CDI.doc (72,5 Ko, 6 affichages)
halfernet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2011, 13h15   #2
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 594
Points : 1 594
Envoyer un message via MSN à carden752
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 :
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
carden752 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2011, 14h15   #3
Invité de passage
 
Homme Julien KETTER
Technicien maintenance
Inscription : juillet 2011
Messages : 5
Détails du profil
Informations personnelles :
Nom : Homme Julien KETTER
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 : 5
Points : 1
Points : 1
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
halfernet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2011, 20h55   #4
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 324
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

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

Informations forums :
Inscription : février 2006
Messages : 17 324
Points : 29 225
Points : 29 225
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 :
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 !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/07/2011, 09h01   #5
Invité de passage
 
Homme Julien KETTER
Technicien maintenance
Inscription : juillet 2011
Messages : 5
Détails du profil
Informations personnelles :
Nom : Homme Julien KETTER
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 : 5
Points : 1
Points : 1
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 :
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
halfernet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/07/2011, 15h16   #6
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 594
Points : 1 594
Envoyer un message via MSN à carden752
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 :
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
carden752 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2011, 09h58   #7
Invité de passage
 
Homme Julien KETTER
Technicien maintenance
Inscription : juillet 2011
Messages : 5
Détails du profil
Informations personnelles :
Nom : Homme Julien KETTER
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 : 5
Points : 1
Points : 1
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.
halfernet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2011, 11h34   #8
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 324
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

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

Informations forums :
Inscription : février 2006
Messages : 17 324
Points : 29 225
Points : 29 225
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 :
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 :
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 !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 28/07/2011, 15h19   #9
Invité de passage
 
Homme Julien KETTER
Technicien maintenance
Inscription : juillet 2011
Messages : 5
Détails du profil
Informations personnelles :
Nom : Homme Julien KETTER
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 : 5
Points : 1
Points : 1
C'est parfait, Merci ! Affaire résolue
halfernet est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h04.


 
 
 
 
Partenaires

Hébergement Web