Conservation informations saisies dans champ formulaire

Résumé

Cet article décrit des méthodes vous permettant :

de conserver les informations saisies dans un champ de formulaire alors
que le formulaire est protégé ;

d'ôter la protection d'un document de type formulaire, d'effectuer une
vérification orthographique et de conserver les informations dans les
champs du formulaire lorsque vous rétablissez sa protection.


INFORMATIONS COMPLEMENTAIRES :

Les exemples de programmation fournis par Microsoft ne figurent qu'à
titre d'illustration, sans garantie implicite ou explicite, y compris
notamment quant à leur aptitude à la commercialisation et/ou de leur
adéquation à un usage particulier. Cet article suppose que vous êtes
familier avec le langage de programmation dont l'utilisation est
illustrée ici, ainsi qu'avec les outils utilisés pour la création et le
débogage de procédures. Les techniciens du Support technique de Microsoft
peuvent éventuellement vous expliquer le fonctionnement d'une procédure
particulière, mais ils ne pourront pas modifier ces exemples afin de leur
ajouter des fonctionnalités complémentaires ni construire des procédures
destinées à répondre à vos besoins spécifiques. Si votre expérience de la
programmation est limitée, vous avez la possibilité de contacter un
Partenaire Solutions certifié Microsoft ou encore, moyennant facturation,
le service de consultation en ligne de Microsoft au Numero indique a la page http://support.microsoft.com/contactus/. Pour
plus d'informations sur les Partenaires Solutions certifiés Microsoft,
reportez-vous à la page suivante sur le Web :

http://www.microsoft.com/france/partenaires/

Pour plus d'informations sur les formules de support technique proposées
par Microsoft, reportez-vous à la page suivante sur le Web :

http://support.microsoft.com/default.aspx?scid=fh;[LN];CNTACTMS

Méthode 1 : Modification de la fonctionnalité de la commande
Protection/Oter la protection

Les macros suivantes de Microsoft Visual Basic pour Applications
(sous-procédures) vous permettent de protéger votre formulaire sans pour
autant perdre le texte que vous avez saisi dans un de ses champs. Ces
macros peuvent être mémorisées avec le modèle de formulaire courant pour
vous permettre d'ôter et de rétablir la protection du formulaire tout en
préservant le contenu de ses champs.
Les trois macros ci-dessous peuvent être utilisées pour s'assurer que les
champs du formulaire ne seront pas réinitialisés à leurs valeurs par
défaut lorsque vous rétablissez la protection du formulaire.

La première macro s'exécute lorsque vous cliquez sur le bouton Protection
du formulaire dans la barre d'outils Formulaires.

La seconde macro s'exécute lorsque vous cliquez soit sur Protéger le
document, soit sur Oter la protection dans le menu Outils.

La troisième macro vous permet de spécifier quelles sections protéger
tout en conservant les valeurs des champs du formulaire saisies
auparavant.

REMARQUE : Le nom de cette macro doit être ProtectForm.


Sub ProtectForm()

' ******************************************
' Macro ProtectForm .
' Active/désactive la protection du document actif
' lorsque vous appuyez sur le bouton
' Protection du formulaire de la barre d'outils Formulaires.
' ******************************************
If ActiveDocument.ProtectionType = wdNoProtection Then
ActiveDocument.Protect Type:=wdAllowOnlyFormFields,
NoReset:=True
Else
ActiveDocument.Unprotect Password:=""
End If

End Sub


L'exemple de macro Visual Basic suivant protège le document actif sans
afficher la boîte de dialogue Protection du document. Lorsque vous
exécutez cette macro, elle rétablit la protection du document actif tout
en conservant les valeurs des champs du formulaire saisies auparavant.

REMARQUE : Le nom de cette macro doit être ToolsProtectUnprotectDocument.


Sub ToolsProtectUnprotectDocument()

' ******************************************
' Macro ToolsProtectUnprotectDocument
' Définit la protection du document actif
' lorsque vous cliquez dans le menu Outils sur
' Protéger le document ou sur Oter la protection
' ******************************************
If ActiveDocument.ProtectionType = wdNoProtection Then
ActiveDocument.Protect Type:=wdAllowOnlyFormFields,
NoReset:=True
Else
ActiveDocument.Unprotect Password:=""
End If

End Sub

L'exemple de macro Visual Basic suivant vous permet de spécifier quelles
sections protéger tout en conservant les valeurs des champs du formulaire
saisies auparavant. Vous pouvez affecter cette macro à un bouton de la
barre d'outils ou à un menu.


Sub ProtectNoReset()


Dim pDoc As Dialog
Dim x As Integer
On Error GoTo ProtectNoResetErr

' Si le document est protégé,
If ActiveDocument.ProtectionType <> wdNoProtection Then


' ôte la protection.
ActiveDocument.Unprotect


End If


' Affiche la boîte de dialogue Protection du document.
Set pDoc = Dialogs(wdDialogToolsProtectDocument)
x = pDoc.Display


' Si Annuler a été sélectionnée, abandonne cette procédure.
If x = 0 Then Exit Sub


' Protection du document.
ActiveDocument.Protect Password:=pDoc.DocumentPassword, _
NoReset:=True, Type:=2


ProtectNoResetErr: 'REMARQUE : Cette ligne DOIT être alignée sur la
gauche.


If Err <> 0 Then MsgBox Err.Description


End Sub


Méthode 2 : Création d'une macro pour protéger un document ou ôter sa
protection

Les exemples suivants protègent les formulaires du document actif sans
réinitialiser le contenu des champs du formulaire. Créez cette macro et
affectez-la à une touche, un menu ou un bouton de la barre d'outils pour
en faciliter l'accès.

If ActiveDocument.ProtectionType = wdNoProtection Then

ActiveDocument.Protect Type:=wdAllowOnlyFormFields, NoReset:=True


End If


Méthode 3 : Désactivation de la protection d'un document, vérification
orthographique ou mise à jour d'un champ, puis rétablissement de la
protection

Sachant que le texte des champs de formulaire est censé être ignoré par
la vérification orthographique, vous pouvez utiliser la macro ci-dessous
pour :

ôter temporairement la protection du formulaire ;

changer la langue des champs du formulaire ;

effectuer une vérification orthographique ou mettre à jour un champ ;

rétablir la protection du formulaire tout en conservant le texte saisi
dans ses champs.

Vous pouvez également utiliser cette macro comme macro exécutée à la
sortie du dernier champ du formulaire afin de vérifier l'orthographe ou
de mettre à jour un champ avant d'enregistrer le formulaire.


Sub FormsSpellCheck()


' Si le document est protégé, désactivation de la protection.
If ActiveDocument.ProtectionType <> wdNoProtection Then
ActiveDocument.Unprotect Password:=""
End If


' Définition de la langue du document.
Selection.WholeStory
Selection.LanguageID = wdFrench


' Vérification orthographique/grammaticale.
If Options.CheckGrammarWithSpelling = True Then
ActiveDocument.CheckGrammar
Else
ActiveDocument.CheckSpelling
End If


' Rétablissement de la protection.
If ActiveDocument.ProtectionType = wdNoProtection Then
ActiveDocument.Protect Type:=wdAllowOnlyFormFields,
NoReset:=True
End If


End Sub


Pour plus d'informations sur l'obtention d'aide sur Visual Basic pour
Applications, reportez-vous à l'article suivant de la Base de
connaissances Microsoft :

226118 OFF2000: Programming Resources for Visual Basic for Applications


MOTS-CLES :

La liste de(s) mot(s) suivant(s) permet une recherche plus efficace de
cette fiche technique : kbmacro vba

Propriétés

ID d'article : 468882 - Dernière mise à jour : 9 avr. 2013 - Révision : 1

Microsoft Word 2000 Standard Edition

Commentaires