Masquer un contrôle de contenu non complété [Résolu]

Signaler
Messages postés
1
Date d'inscription
dimanche 27 octobre 2019
Statut
Membre
Dernière intervention
27 octobre 2019
-
 Janka -
Bonjour,

Pour masquer un contrôle de contenu non complété j'ai utilisé la macro de m@rina

Sub masquer2()
'macro écrite par m@rina
Dim controle As ContentControl
Dim cont_texte
For Each controle In ActiveDocument.ContentControls
cont_texte = controle.Range
If cont_texte = controle.PlaceholderText Then
controle.Range.Font.Hidden = True
Else: controle.Range.Font.Hidden = False
End If
Next
End Sub

Chez moi ça ne fonctionne pas.
Lors de l'exécution j'ai le message :
Variable objet ou variable bloc With non définie

Je ne connais rien en VBA.
J'utilise Office 365.

Je vous remercie pour votre aide !

Configuration: Windows / Firefox 70.0

4 réponses

Messages postés
16290
Date d'inscription
mardi 12 juin 2007
Statut
Contributeur
Dernière intervention
15 juillet 2020
9 566
Bonjour,

La macro vérifie si les contrôles ont été complétés. Il faut donc que ce soit des contrôles que l'on puisse compléter...

Et donc probablement que vous avez dans vos contrôles des cases à cocher... Une case à cocher peut être cochée ou non. Si elle n'est pas cochée, on ne peut pas savoir si c'est volontairement non cochée ou bien si c'est parce que ça n'a pas été "complété"... "Complétée" ne signifie donc rien pour une case à cocher.

La macro fonctionnera avec les contrôles de contenu de texte, de listes déroulantes et de sélecteur de date. Ça ne fonctionnera pas non plus avec des images.

m@rina
Messages postés
23384
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
12 juillet 2020
6 236
Bonjour à tous,

un essai en sécurisant :
Sub masquer2()
    'macro écrite par m@rina
    Dim controle As ContentControl
    For Each controle In ActiveDocument.ContentControls
        If controle.Type = wdContentControlRichText Or controle.Type = wdContentControlText Then
            controle.Range.Font.Hidden = controle.Range = controle.PlaceholderText
        End If
    Next
End Sub

eric

Oui, super merciiii ! ça fonctionne maintenant :)
Bonjour,

Je rencontre le même problème que vous, est-ce que vous avez entre-temps résolu le problème ? Et si oui, pourriez-vous m'indiquer comment svp ?

D'avance, merci pour votre aide !
Merci pour votre réponse.
Mais il s'agit bien de contrôle de contenus de texte... Il y a aussi des cases à cocher et des dates, mais je souhaite bel bien masquer les contrôles de textes non complétés uniquement.

Auriez-vous une autre idée d'où peut provenir le problème ???