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

Pb de mise au format Hidden dans un signet contenant des Formfield

4 réponses
Avatar
JMV
Je suis sous Word 2003 SP2.
J'utilise un document word de type formulaire.

Il contient donc des formfields, et des macros. Certains formfields sont des
champs de travail qui ne doivent pas être imprimés au final.

Lors de la dernière modification des macros, un bug est apparu.
J'utilise un signet (nommé Zone_de_Travail), la macro d'initialisation du
document (à l'ouverture) force ce signet à Hidden.

Et cela ne marche pas.
J'ai rajouté des lignes pour voir ce qui se passait, et cela semble bien
être un bug Word.

Cela semble être un bug Word car la macro peut être circonscrite sur
quelques lignes.
'**************************************
Dim v_Bug_Volontaire As Document
v_Bug_Volontaire.Activate ' Cette ligne permet de faire planter la macro
pour prendre la main pas à pas..... après avoir commenter cette ligne.
'
' la zone qui déconne au niveau du masqué est dans le With.....
' En executant pas à pas, vous voyez bien
With ActiveDocument.Bookmarks("Zone_de_Travail").Range
.Font.Hidden = True
.Font.Color = wdColorYellow ' toute la zone passe bien en Jaune
.Font.Color = wdColorBlue ' toute la zone passe bien en bleu
.Font.Hidden = False ' toute la zone passe bien en Non
Masqué
' Le bug est là
.Font.Hidden = True ' Une partie de la zone ne passe pas
en Masqué
' Seule cette ligne pose problème.
.Font.Color = wdColorYellow ' toute la zone passe bien en Jaune
.Font.Color = wdColorBlue ' toute la zone passe bien en bleu
End With
'************************

C'est vraiment bloquant, j'ai essayé de séparer la zone en deux signets. de
la déplacer dans le document.

Sans Résultat. je suis perdu.

4 réponses

Avatar
Anacoluthe
Bonjour !

'JMV' nous a écrit ...
Je suis sous Word 2003 SP2.
J'utilise un document word de type formulaire.
With ActiveDocument.Bookmarks("Zone_de_Travail").Range
.Font.Hidden = True


De toute façon ceci n'est pas possible sur un formulaire en utilisation
réelle c'est-à-dire protégé. Le signet n'est pas remis à jour et Word a
du mal a savoir s'il doit ou non compter ce qui est masqué. Masquez
tout le champ une fois pour toute avant protection. Ou alors puisque
vous avez esssayé toutes les couleurs, mettez le texte en blanc pour
qu'il ne soit pas imprimé...

Anacoluthe
« Mettre de la couleur sur les mots »
- Paul ELUARD

Avatar
JMV
merci pour la réponse prompte....

Hélas, cela ne répond que partiellement au problème.

En effet, juste avant la macro, je déprotège le document, et en fin de macro
je le reprotège. Donc le problème reste entier.

Deuxième remarque: Je force la remise à Hidden, car Word a de temps en temps
des problèmes avec les renvois sur signets. le texte dans la zone de travail
est issu de liens vers d'autres fichiers (qui sont insérés lors de la
création du document à partir du document modèle.

Dernière remarque: la différence entre le Hidden et la couleur blanche vient
du fait que la couleur blanche fait partie de l'impression. la zone de
travail fait plus d'une page, et le document est un contrat de travail. Il
est alors préférable que le nombre de pages indiqué soit le bon et que la
page hidden ne vienne pas polluer le document.

Je tiens si nécessaire le fichier word avec les macros à disposition.

"Anacoluthe" wrote:

Bonjour !

'JMV' nous a écrit ...
Je suis sous Word 2003 SP2.
J'utilise un document word de type formulaire.
With ActiveDocument.Bookmarks("Zone_de_Travail").Range
.Font.Hidden = True


De toute façon ceci n'est pas possible sur un formulaire en utilisation
réelle c'est-à-dire protégé. Le signet n'est pas remis à jour et Word a
du mal a savoir s'il doit ou non compter ce qui est masqué. Masquez
tout le champ une fois pour toute avant protection. Ou alors puisque
vous avez esssayé toutes les couleurs, mettez le texte en blanc pour
qu'il ne soit pas imprimé...

Anacoluthe
« Mettre de la couleur sur les mots »
- Paul ELUARD
.




Avatar
Anacoluthe
Bonjour !

'JMV' nous a écrit ...
En effet, juste avant la macro, je déprotège le document, et en fin de macro
je le reprotège. Donc le problème reste entier.


Ok si vous déprotégez et reprotégez (sans perte des données).
Comme je le disais, n'utilisez pas le signet interne du formfield.
Placez tout votre champ dans un autre signet et masquez tout le range
contenant le formfield. Par ailleurs j'ai des doutes : vous parlez
de 'page hidden' et de formfields. Que des ennuis avec les formfields
trop grandes. Les formulaires Word sont de très vieux machins à peine
encore conservés pour garder une compatibilité historique.

Anacoluthe
« Le monde est un grand bal où chacun est masqué. »
- VAUVENARGUES

Avatar
JMV
"Anacoluthe" wrote:

Bonjour !

'JMV' nous a écrit ...
En effet, juste avant la macro, je déprotège le document, et en fin de macro
je le reprotège. Donc le problème reste entier.


Ok si vous déprotégez et reprotégez (sans perte des données).
Comme je le disais, n'utilisez pas le signet interne du formfield.
Placez tout votre champ dans un autre signet et masquez tout le range
contenant le formfield. Par ailleurs j'ai des doutes : vous parlez
de 'page hidden' et de formfields. Que des ennuis avec les formfields
trop grandes. Les formulaires Word sont de très vieux machins à peine
encore conservés pour garder une compatibilité historique.

Anacoluthe
« Le monde est un grand bal où chacun est masqué. »
- VAUVENARGUES

Le cas qui pose problème ne concerne pas un signet interne au formfield. Il

s'agit d'un signet normal qui englobe des formfields (et des tableaux). Le
signet définit (Zone_de_Travail) et un signet (bookmark) qui englobe la zone
que je veux être sûr d'avoir masquée, et c'est la macro (appliquée au signet)
qui ne fonctionne pas correctement.

j'ai essayé quelques manips sans aucun résultat, une partie du texte reste
non masquée après l'opération Font.fidden = true.

Cordialement,