Champ de plus de 256 caractères dans un formulaire

Le
Patrick EVEN
Bonjour,

Dans un formulaire j'ai plusieurs champs texte
dont l'un d'entre eux peut dépasser 256 caractères.
Ce formulaire est protégé comme il se doit.

Par ailleurs, J'ai besoin de mettre à jour les entêtes de ce formulaire,
ce qui est impossible sans déprotéger le formulaire.

Je déprotège donc et je mets à jour les entêtes
puis je protège à nouveau.
Je constate alors que j'ai perdu toutes les données saisies.

Pour éviter ce désagrément, j'ai écrit une macro
qui fait une boucle de sauvegarde des champs dans un tableau de String :

TabValeurs(I) = ActiveDocument.FormFields(I).Result

Déprotection, actualisation des entêtes, Protection à nouveau
puis boucle de réinjection des données sauvegardées :

ActiveDocument.FormFields(I).Result = TabValeurs(I)

En pas à pas, j'observe que tout fonctionne parfaitement
jusqu'au moment de réinjecter le champ contenant plus de
256 caractères (Erreur :4609).

J'aimerais savoir s'il existe un moyen d'aller au delà
de cette limitation à 256 caractères.

Merci d'avance pour vos réponses.

Cordialement,
Patrick EVEN

  • Partager ce contenu :
Vos réponses
Trier par : date / pertinence
Anacoluthe
Le #1143176
Bonjour !

'Patrick EVEN' nous a écrit ...
Je déprotège donc et je mets à jour les entêtes
puis je protège à nouveau.
Je constate alors que j'ai perdu toutes les données saisies.
Pour éviter ce désagrément, j'ai écrit une macro
qui fait une boucle de sauvegarde des champs
Déprotection, actualisation des entêtes, Protection à nouveau
puis boucle de réinjection des données sauvegardées :
En pas à pas, j'observe que tout fonctionne parfaitement
jusqu'au moment de réinjecter le champ contenant plus de
256 caractères (Erreur :4609).
J'aimerais savoir s'il existe un moyen d'aller au delà
de cette limitation à 256 caractères.



Quelle version WORD svp ??????????
Merciiiiiiiiiiiiiii
WD2000 ?

Il est inutile de sauvegarder les valeurs de votre formulaire
- déprotégez avec .Unprotect
- reprotégez avec .Protect NoReset:=True
Avec NoReset les valeurs ne sont pas effacées

Concernant la pseudo-limite des 255 caractères d'un champ de
formulaire c'est un (ancien) bug de vba

Anacoluthe
« C'est un grand malheur de perdre par notre caractère
les droits que nos talents nous donnent sur la société. »
- Nicolas de CHAMFORT

Patrick EVEN
Le #1145379
Anacoluthe,

Je confirme que je suis en Word 2000.
J'ai aussi constaté que le problème est le même en Word XP.

En définitive, sur tes conseils,
j'ai déprotégé puis reprotégé avec .Protect NoReset:=True
et en effet je n'ai plus besoin de sauvegarder et de restaurer les champs du
formulaire.
Les entêtes et les pieds de pages sont actualisés du même coup,
ce qui me convient parfaitement.

En fait, il semble que l'équivalent VBA de Ctrl+A puis F9 en mode normal,
inhibe l'option NoReset=True de la méthode .Protect.
C'est pour cette raison que j'ai été contraint de faire la Sauvegarde /
Restauration
des champs pour pallier cet inconvénient.

Merci de m'avoir mis sur la bonne voie.

Cordialement,
Patrick EVEN

"Anacoluthe"
Bonjour !

'Patrick EVEN' nous a écrit ...
Je déprotège donc et je mets à jour les entêtes
puis je protège à nouveau.
Je constate alors que j'ai perdu toutes les données saisies.
Pour éviter ce désagrément, j'ai écrit une macro
qui fait une boucle de sauvegarde des champs Déprotection, actualisation
des entêtes, Protection à nouveau
puis boucle de réinjection des données sauvegardées :
En pas à pas, j'observe que tout fonctionne parfaitement
jusqu'au moment de réinjecter le champ contenant plus de
256 caractères (Erreur :4609).
J'aimerais savoir s'il existe un moyen d'aller au delà
de cette limitation à 256 caractères.



Quelle version WORD svp ??????????
Merciiiiiiiiiiiiiii
WD2000 ?

Il est inutile de sauvegarder les valeurs de votre formulaire
- déprotégez avec .Unprotect
- reprotégez avec .Protect NoReset:=True
Avec NoReset les valeurs ne sont pas effacées

Concernant la pseudo-limite des 255 caractères d'un champ de
formulaire c'est un (ancien) bug de vba

Anacoluthe
« C'est un grand malheur de perdre par notre caractère
les droits que nos talents nous donnent sur la société. »
- Nicolas de CHAMFORT





Poster une réponse
Anonyme