Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Macro dans formulaire

11 réponses
Avatar
nadeger
Bonjour,
>
> J'aurai aimé trouver une macro qui vérifie que les champs d'un formulaire soit tous remplis et que cela soit bloquant si un des champs n'est pas rempli. J'ai regardé dans les questions déjà posé et j'ai trouvé un problème similaire mais je n'arrive pas à utiliser la macro. La solution du bouton Macrobutton m'interesse aussi mais je suis nule en macro et je ne comprends pas bien comment faire.


Voici le problème qui avait été posé avec la solution. Si quelqu'un pouvait
m'aider sur le mode opératoire. Merci beaucoup :


"Bien que tu aies posté 3 fois ta question, elle n'est quand même pas
> très précise !!! :D
>
> Quel type de formulaire utilises-tu ?
>
>
> S'il s'agit de champs de formulaire mis avec la barre d'outils
> formulaires, tu peux mettre un truc comme ça dans ton code :
>
> If ActiveDocument.FormFields("Texte1").Result = "" Then
> ActiveDocument.FormFields("Texte1").Select
> remplir = MsgBox("Veuillez compléter blablabla", vbOKOnly, titre)
> End If
>
> Tu peux mettre dans ton document un bouton Macrobutton lié à une macro
> qui imprime (ou qui envoie par mail) mais qui vérifie à l'aide du bout
> de code ci-dessus si chaque champ est correctement rempli.
>
> Circé
> http://faqword.free.fr
>
> Dans son message précédent, jepac a écrit :
> > Bonsoir,
> >
> > Je souhaiterai construire une macro qui informerai l'utilisateur d'un
> > formulaire Word lors de l'enregistrement ou de l'impression que certains
> > champs ne sont pas ou mal remplis.
> >
> > Merci de votre aide.
> > JP "
>
>
>
--
Nadège

10 réponses

1 2
Avatar
Circé
Bonjour nadege,

Il faudrait déjà savoir ce que tu veux bloquer si le champ n'est pas
rempli.

la sortie du champ ?
l'impression ?
l'enregistrement ?
la fermeture du document ?
l'envoi du document ?
... ?

Circé
http://faqword.free.fr


Bonjour,

J'aurai aimé trouver une macro qui vérifie que les champs d'un formulaire
soit tous remplis et que cela soit bloquant si un des champs n'est pas
rempli. J'ai regardé dans les questions déjà posé et j'ai trouvé un problème
similaire mais je n'arrive pas à utiliser la macro. La solution du bouton
Macrobutton m'interesse aussi mais je suis nule en macro et je ne comprends
pas bien comment faire.



Voici le problème qui avait été posé avec la solution. Si quelqu'un pouvait
m'aider sur le mode opératoire. Merci beaucoup :


"Bien que tu aies posté 3 fois ta question, elle n'est quand même pas
très précise !!! :D

Quel type de formulaire utilises-tu ?


S'il s'agit de champs de formulaire mis avec la barre d'outils
formulaires, tu peux mettre un truc comme ça dans ton code :

If ActiveDocument.FormFields("Texte1").Result = "" Then
ActiveDocument.FormFields("Texte1").Select
remplir = MsgBox("Veuillez compléter blablabla", vbOKOnly, titre)
End If

Tu peux mettre dans ton document un bouton Macrobutton lié à une macro
qui imprime (ou qui envoie par mail) mais qui vérifie à l'aide du bout
de code ci-dessus si chaque champ est correctement rempli.

Circé
http://faqword.free.fr

Bonsoir,

Je souhaiterai construire une macro qui informerai l'utilisateur d'un
formulaire Word lors de l'enregistrement ou de l'impression que certains
champs ne sont pas ou mal remplis.

Merci de votre aide.
JP "









Avatar
nadeger
J'aimerai bloquer l'impression si un champ n'est pas rempli. J'ai des champs
avec du texte par défaut. Vaut-il mieux ne rien mettre par défaut sous peine
de fausser le blocage du document?
Dois-je avoir besoin d'une macro pour mettre à jour mes champs dans mon
document où le fait de les saisir suffit?

Merci
--
Nadège



Bonjour nadege,

Il faudrait déjà savoir ce que tu veux bloquer si le champ n'est pas
rempli.

la sortie du champ ?
l'impression ?
l'enregistrement ?
la fermeture du document ?
l'envoi du document ?
.... ?

Circé
http://faqword.free.fr


Bonjour,

J'aurai aimé trouver une macro qui vérifie que les champs d'un formulaire
soit tous remplis et que cela soit bloquant si un des champs n'est pas
rempli. J'ai regardé dans les questions déjà posé et j'ai trouvé un problème
similaire mais je n'arrive pas à utiliser la macro. La solution du bouton
Macrobutton m'interesse aussi mais je suis nule en macro et je ne comprends
pas bien comment faire.



Voici le problème qui avait été posé avec la solution. Si quelqu'un pouvait
m'aider sur le mode opératoire. Merci beaucoup :


"Bien que tu aies posté 3 fois ta question, elle n'est quand même pas
très précise !!! :D

Quel type de formulaire utilises-tu ?


S'il s'agit de champs de formulaire mis avec la barre d'outils
formulaires, tu peux mettre un truc comme ça dans ton code :

If ActiveDocument.FormFields("Texte1").Result = "" Then
ActiveDocument.FormFields("Texte1").Select
remplir = MsgBox("Veuillez compléter blablabla", vbOKOnly, titre)
End If

Tu peux mettre dans ton document un bouton Macrobutton lié à une macro
qui imprime (ou qui envoie par mail) mais qui vérifie à l'aide du bout
de code ci-dessus si chaque champ est correctement rempli.

Circé
http://faqword.free.fr

Bonsoir,

Je souhaiterai construire une macro qui informerai l'utilisateur d'un
formulaire Word lors de l'enregistrement ou de l'impression que certains
champs ne sont pas ou mal remplis.

Merci de votre aide.
JP "














Avatar
Circé
Rebonjour,

Il faudra donc une macro événementielle DocumentBeforePrint... Geo sait
très bien les manipuler.... (N'est pas Geo ?...)

On peut bloquer parce que le champ est vide ou parce qu'il contient un
texte particulier (ton remplissage par défaut).

Si c'est pour ton usage perso, càd pour éviter d'imprimer par erreur,
il n'y a pas de soucis... S'il s'agit d'un formulaire à remplir par
d'autres utilisateurs, dis-toi néanmoins qu'ils vont vite comprendre
qu'un champ vide est bloquant, et ils le rempliront n'importe comment
pour ne pas le laisser blanc (aventure vécue !!! :D))

Pas besoin de macro pour mettre les champs à jour... C'est soit ils
sont vides, soit ils remplis. Si des champs de formulaire dépendent
d'autres champs (comme tes calculs), il suffit de cocher l'option
Calculer à la sortie.

Circé
http://faqword.free.fr

nadeger a pensé très fort :
J'aimerai bloquer l'impression si un champ n'est pas rempli. J'ai des champs
avec du texte par défaut. Vaut-il mieux ne rien mettre par défaut sous peine
de fausser le blocage du document?
Dois-je avoir besoin d'une macro pour mettre à jour mes champs dans mon
document où le fait de les saisir suffit?

Merci
--
Nadège



Bonjour nadege,

Il faudrait déjà savoir ce que tu veux bloquer si le champ n'est pas
rempli.

la sortie du champ ?
l'impression ?
l'enregistrement ?
la fermeture du document ?
l'envoi du document ?
.... ?

Circé
http://faqword.free.fr


Bonjour,

J'aurai aimé trouver une macro qui vérifie que les champs d'un formulaire
soit tous remplis et que cela soit bloquant si un des champs n'est pas
rempli. J'ai regardé dans les questions déjà posé et j'ai trouvé un
problème similaire mais je n'arrive pas à utiliser la macro. La solution
du bouton Macrobutton m'interesse aussi mais je suis nule en macro et je
ne comprends pas bien comment faire.



Voici le problème qui avait été posé avec la solution. Si quelqu'un pouvait
m'aider sur le mode opératoire. Merci beaucoup :


"Bien que tu aies posté 3 fois ta question, elle n'est quand même pas
très précise !!! :D

Quel type de formulaire utilises-tu ?


S'il s'agit de champs de formulaire mis avec la barre d'outils
formulaires, tu peux mettre un truc comme ça dans ton code :

If ActiveDocument.FormFields("Texte1").Result = "" Then
ActiveDocument.FormFields("Texte1").Select
remplir = MsgBox("Veuillez compléter blablabla", vbOKOnly, titre)
End If

Tu peux mettre dans ton document un bouton Macrobutton lié à une macro
qui imprime (ou qui envoie par mail) mais qui vérifie à l'aide du bout
de code ci-dessus si chaque champ est correctement rempli.

Circé
http://faqword.free.fr

Bonsoir,

Je souhaiterai construire une macro qui informerai l'utilisateur d'un
formulaire Word lors de l'enregistrement ou de l'impression que certains
champs ne sont pas ou mal remplis.

Merci de votre aide.
JP "
















Avatar
nadeger
Bonjour Circé,

En fait, il s'agit d'un formulaire à usage collectif qui permet d'élaborer
un contrat de travail, donc s'ils remplissent n'importe quoi dans un champ
afin d'éviter que cela bloque, le contrat de travail sera faux. Ils seront
donc obliger de me contacter pour les aider à remplir. Le but c'est d'avoir
un contrat bon avec un contrôle dessus.

C'est pour cela que j'aimerai avoir une macro qui bloque l'impression et qui
met un message comme "Impression impossible, des champs ne sont pas
remplis!".
Peut être que j'en demande un peu trop, moins en tous les cas je suis
dépassée!
--
Nadège



Rebonjour,

Il faudra donc une macro événementielle DocumentBeforePrint... Geo sait
très bien les manipuler.... (N'est pas Geo ?...)

On peut bloquer parce que le champ est vide ou parce qu'il contient un
texte particulier (ton remplissage par défaut).

Si c'est pour ton usage perso, càd pour éviter d'imprimer par erreur,
il n'y a pas de soucis... S'il s'agit d'un formulaire à remplir par
d'autres utilisateurs, dis-toi néanmoins qu'ils vont vite comprendre
qu'un champ vide est bloquant, et ils le rempliront n'importe comment
pour ne pas le laisser blanc (aventure vécue !!! :D))

Pas besoin de macro pour mettre les champs à jour... C'est soit ils
sont vides, soit ils remplis. Si des champs de formulaire dépendent
d'autres champs (comme tes calculs), il suffit de cocher l'option
Calculer à la sortie.

Circé
http://faqword.free.fr

nadeger a pensé très fort :
J'aimerai bloquer l'impression si un champ n'est pas rempli. J'ai des champs
avec du texte par défaut. Vaut-il mieux ne rien mettre par défaut sous peine
de fausser le blocage du document?
Dois-je avoir besoin d'une macro pour mettre à jour mes champs dans mon
document où le fait de les saisir suffit?

Merci
--
Nadège



Bonjour nadege,

Il faudrait déjà savoir ce que tu veux bloquer si le champ n'est pas
rempli.

la sortie du champ ?
l'impression ?
l'enregistrement ?
la fermeture du document ?
l'envoi du document ?
.... ?

Circé
http://faqword.free.fr


Bonjour,

J'aurai aimé trouver une macro qui vérifie que les champs d'un formulaire
soit tous remplis et que cela soit bloquant si un des champs n'est pas
rempli. J'ai regardé dans les questions déjà posé et j'ai trouvé un
problème similaire mais je n'arrive pas à utiliser la macro. La solution
du bouton Macrobutton m'interesse aussi mais je suis nule en macro et je
ne comprends pas bien comment faire.



Voici le problème qui avait été posé avec la solution. Si quelqu'un pouvait
m'aider sur le mode opératoire. Merci beaucoup :


"Bien que tu aies posté 3 fois ta question, elle n'est quand même pas
très précise !!! :D

Quel type de formulaire utilises-tu ?


S'il s'agit de champs de formulaire mis avec la barre d'outils
formulaires, tu peux mettre un truc comme ça dans ton code :

If ActiveDocument.FormFields("Texte1").Result = "" Then
ActiveDocument.FormFields("Texte1").Select
remplir = MsgBox("Veuillez compléter blablabla", vbOKOnly, titre)
End If

Tu peux mettre dans ton document un bouton Macrobutton lié à une macro
qui imprime (ou qui envoie par mail) mais qui vérifie à l'aide du bout
de code ci-dessus si chaque champ est correctement rempli.

Circé
http://faqword.free.fr

Bonsoir,

Je souhaiterai construire une macro qui informerai l'utilisateur d'un
formulaire Word lors de l'enregistrement ou de l'impression que certains
champs ne sont pas ou mal remplis.

Merci de votre aide.
JP "





















Avatar
Geo

En fait, il s'agit d'un formulaire à usage collectif qui permet d'élaborer
un contrat de travail, donc s'ils remplissent n'importe quoi dans un champ
afin d'éviter que cela bloque, le contrat de travail sera faux.


Dans cette situation il me semble qu'il vaut mieux faire un UserForm
C'est plus souple et plus puissant.
Par exemple, vous mettez des boutons radio pour les statuts et en
fonction du statut choisi, vous affichez une grille indiciaire ou une
autre. Ce qui évite le "n'importe quoi".
Vous pouvez conserver toutes les données sur une feuille Excel, ce qui
vous permet ensuite de faire un suivi des retours, des embauches etc.
Vous pouvez mettre un bouton "imprimer".
Amha l'investissement en vaut la peine.

--
A+

Avatar
Geo
Voici la méthode Anacholutienne pour interdire l'impression de votre
document:

Dans le projet VBA correspondant à votre formulaire, mettre ce code
dans le ThisDocument:
-----------
Dim X As New NonImprimer
' 1er événement de document Open : on instancie le module de classe
Private Sub Document_Open()
Set X.appWord = Word.Application
End Sub
-----------
Créer un module de classe toujours dans le projet que vous nommerez
"NonImprimer"
et placez-y ce code :
---------
Public WithEvents appWord As Word.Application

Private Sub appWord_DocumentBeforePrint _
(ByVal Doc As Document, Cancel As Boolean)
MsgBox "Impression interdite !"
Cancel = True
End Sub
--------
Il faut évidemment adapter cette procédure en ajoutant une condition
sur le fait que les conditions soient réalisées ou non pour
l'impression.
Ca suppose donc une ou des variables publiques déclarées dans un module
(normal) VBA, lesquelles variables sont affectées dans votre
formulaire.

--
A+
Avatar
nadeger
Merci beaucoup, mais j'ai dû mal a tout saisir. Est-ce que vous pouvez
m'aider au niveau de la procédure car je suis perdue.

1/Pour le projet VBA : il est accessible quand je créé une macro et après
j'ouvre Microsoft Visual Basic pour la modifier et du coup je copie votre
formule :

Dim X As New NonImprimer
' 1er événement de document Open : on instancie le module de classe
Private Sub Document_Open()
Set X.appWord = Word.Application
End Sub


2/Créer un module de classe : alors là je ne sais pas du tout de quoi il
s'agit

Merci de m'éclairer
--
Nadège



Voici la méthode Anacholutienne pour interdire l'impression de votre
document:

Dans le projet VBA correspondant à votre formulaire, mettre ce code
dans le ThisDocument:
-----------
Dim X As New NonImprimer
' 1er événement de document Open : on instancie le module de classe
Private Sub Document_Open()
Set X.appWord = Word.Application
End Sub
-----------
Créer un module de classe toujours dans le projet que vous nommerez
"NonImprimer"
et placez-y ce code :
---------
Public WithEvents appWord As Word.Application

Private Sub appWord_DocumentBeforePrint _
(ByVal Doc As Document, Cancel As Boolean)
MsgBox "Impression interdite !"
Cancel = True
End Sub
--------
Il faut évidemment adapter cette procédure en ajoutant une condition
sur le fait que les conditions soient réalisées ou non pour
l'impression.
Ca suppose donc une ou des variables publiques déclarées dans un module
(normal) VBA, lesquelles variables sont affectées dans votre
formulaire.

--
A+





Avatar
Geo

Merci beaucoup, mais j'ai dû mal a tout saisir. Est-ce que vous pouvez
m'aider au niveau de la procédure car je suis perdue.


Ce n'est pas très étonnant.
Je suis en train d'écrire un papier sur le sujet (gestion des
événements) pour la faq, je peux vous le faire parvenir.
Mais comme ce n'est pas terminé je préférerais le faire par message
privé.
Vous pouvez me joindre à :
geo point le point du at free point fr

--
A+

Avatar
Circé
Bonjour nadege,

Je comprends bien ta demarche...
J'ai connu le même type de problème : formulaire de demande de matériel
pour les nouveaux arrivants...

Il y avait un userform à remplir avec envoi automatique par mail, et
impossibilité d'envoyer la userform si les champs n'étaient pas
remplis.

Je finissais par recevoir les formulaires avec des champs
incorrectement remplis, qui fait que l'on pouvait pas traiter le
formulaire, et qu'il fallait recontacter l'expéditeur.

De toutes façons, rien n'est parfait !!! :D

Pour les macros événementielles, tu es chanceuse car tu vas pouvoir
tester en avant première les écrits de Geo ! C'est vrai que ce n'est
pas évident et que l'aide de Word est plutôt floue...

En tous les cas, tiens nous au courant de la suite des événements ! ;)

Circé

nadeger avait énoncé :
Bonjour Circé,

En fait, il s'agit d'un formulaire à usage collectif qui permet d'élaborer
un contrat de travail, donc s'ils remplissent n'importe quoi dans un champ
afin d'éviter que cela bloque, le contrat de travail sera faux. Ils seront
donc obliger de me contacter pour les aider à remplir. Le but c'est d'avoir
un contrat bon avec un contrôle dessus.

C'est pour cela que j'aimerai avoir une macro qui bloque l'impression et qui
met un message comme "Impression impossible, des champs ne sont pas
remplis!".
Peut être que j'en demande un peu trop, moins en tous les cas je suis
dépassée!
--
Nadège



Rebonjour,

Il faudra donc une macro événementielle DocumentBeforePrint... Geo sait
très bien les manipuler.... (N'est pas Geo ?...)

On peut bloquer parce que le champ est vide ou parce qu'il contient un
texte particulier (ton remplissage par défaut).

Si c'est pour ton usage perso, càd pour éviter d'imprimer par erreur,
il n'y a pas de soucis... S'il s'agit d'un formulaire à remplir par
d'autres utilisateurs, dis-toi néanmoins qu'ils vont vite comprendre
qu'un champ vide est bloquant, et ils le rempliront n'importe comment
pour ne pas le laisser blanc (aventure vécue !!! :D))

Pas besoin de macro pour mettre les champs à jour... C'est soit ils
sont vides, soit ils remplis. Si des champs de formulaire dépendent
d'autres champs (comme tes calculs), il suffit de cocher l'option
Calculer à la sortie.

Circé
http://faqword.free.fr

nadeger a pensé très fort :
J'aimerai bloquer l'impression si un champ n'est pas rempli. J'ai des
champs avec du texte par défaut. Vaut-il mieux ne rien mettre par défaut
sous peine de fausser le blocage du document?
Dois-je avoir besoin d'une macro pour mettre à jour mes champs dans mon
document où le fait de les saisir suffit?

Merci
--
Nadège



Bonjour nadege,

Il faudrait déjà savoir ce que tu veux bloquer si le champ n'est pas
rempli.

la sortie du champ ?
l'impression ?
l'enregistrement ?
la fermeture du document ?
l'envoi du document ?
.... ?

Circé
http://faqword.free.fr


Bonjour,

J'aurai aimé trouver une macro qui vérifie que les champs d'un
formulaire soit tous remplis et que cela soit bloquant si un des champs
n'est pas rempli. J'ai regardé dans les questions déjà posé et j'ai
trouvé un problème similaire mais je n'arrive pas à utiliser la macro.
La solution du bouton Macrobutton m'interesse aussi mais je suis nule
en macro et je ne comprends pas bien comment faire.



Voici le problème qui avait été posé avec la solution. Si quelqu'un
pouvait m'aider sur le mode opératoire. Merci beaucoup :


"Bien que tu aies posté 3 fois ta question, elle n'est quand même pas
très précise !!! :D

Quel type de formulaire utilises-tu ?


S'il s'agit de champs de formulaire mis avec la barre d'outils
formulaires, tu peux mettre un truc comme ça dans ton code :

If ActiveDocument.FormFields("Texte1").Result = "" Then
ActiveDocument.FormFields("Texte1").Select
remplir = MsgBox("Veuillez compléter blablabla", vbOKOnly, titre)
End If

Tu peux mettre dans ton document un bouton Macrobutton lié à une macro
qui imprime (ou qui envoie par mail) mais qui vérifie à l'aide du bout
de code ci-dessus si chaque champ est correctement rempli.

Circé
http://faqword.free.fr

Bonsoir,

Je souhaiterai construire une macro qui informerai l'utilisateur d'un
formulaire Word lors de l'enregistrement ou de l'impression que
certains champs ne sont pas ou mal remplis.

Merci de votre aide.
JP "























Avatar
nadeger
Géo,

J'ai essayé de vous envoyer un message à : mais ça ne passe pas
, je pense que je n'ai pas tout compris!
--
Nadège




Merci beaucoup, mais j'ai dû mal a tout saisir. Est-ce que vous pouvez
m'aider au niveau de la procédure car je suis perdue.


Ce n'est pas très étonnant.
Je suis en train d'écrire un papier sur le sujet (gestion des
événements) pour la faq, je peux vous le faire parvenir.
Mais comme ce n'est pas terminé je préférerais le faire par message
privé.
Vous pouvez me joindre à :
geo point le point du at free point fr

--
A+






1 2