Comment coder la touche ENTRÉE pour vous déplacer entre les champs formulaire dans un formulaire protégé dans Word

Numéro d'article: 211219 - Voir les produits auxquels s'applique cet article
Pour une Microsoft Word 97 version de cet article, reportez-vous 187985.
Agrandir tout | Réduire tout

Sommaire

Résumé

Cet article contient les quatre Microsoft macros Visual Basic pour applications que vous pouvez utiliser pour émuler Microsoft Word 6.0 pour Windows des fonctionnalités de la touche ENTRÉE pour déplacer entre les champs de formulaire dans les documents protégés.

Plus d'informations

Microsoft fournit des exemples de programmation à des fins d'illustration uniquement, sans garantie expresse ou implicite, y compris, mais sans limitation, toute garantie implicite de qualité marchande et/ou d'adéquation à un usage particulier. Cet article suppose que vous êtes familiarisé avec le langage de programmation présenté et les outils utilisés pour créer et déboguer des procédures. Professionnels du support technique Microsoft peuvent vous expliquer la fonctionnalité d'une procédure particulière, mais ils ne modifieront pas ces exemples afin de fournir des fonctionnalités supplémentaires ou des procédures pour répondre à vos besoins spécifiques de construction.
Si vous avez partiellement la programmation, il convient contacter un partenaire certifié Microsoft ou services de conseil Microsoft. Pour plus d'informations, visitez ces sites Web de Microsoft :

Microsoft certifié Partners - https://partner.microsoft.com/global/30000104

Services de conseil Microsoft - http://support.microsoft.com/gp/advisoryservice

Pour plus d'informations sur les options de support sont disponibles et sur la façon de contacter Microsoft, consultez le site Microsoft suivant : http://support.microsoft.com/default.aspx?scid=fh;EN-US;CNTACTMS
Pour plus d'informations sur l'exécution d'exemple de code, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la base de connaissances Microsoft :
212536OFF2000 : Procédure pour exécuter un exemple de code à partir des articles de la base de connaissances

ENTRÉE des fonctionnalités clés dans Word 6.0

Dans Word 6.0 pour Windows, si vous appuyez sur la touche entrée dans un document est protégé pour les formulaires, le point d'insertion se déplace vers le champ de formulaire suivant. En revanche, dans les versions ultérieures de Word, la touche entrée ne déplace pas vers le champ de formulaire suivant mais au lieu de cela insère une marque de paragraphe, comme dans un document non protégé. Cela permet de pouvoir entrer plusieurs lignes de texte dans un champ de formulaire texte.

Macros

Voici quatre Visual Basic pour applications macros qui vous permettent ensemble pour émuler Word 6.0 pour les nouvelles fonctionnalités Windows de l'entrée clé dans protégé des documents de champ de formulaire basés sur un modèle. Voici une brève description de la fonctionnalité de chaque macro :
  • La première macro déplace le point d'insertion dans le champ suivant.
  • La deuxième macro affecte la première macro à l'entrée clé.
  • La troisième macro garantit que la fonctionnalité clée continue lorsque vous ouvrez un document basé sur le modèle de formulaire à l'avenir.
  • La macro quatrième supprime la macro assignée à partir de l'entrée clé, restauration de la fonctionnalité par défaut de la touche ENTRÉE.
IMPORTANT : pour ce code fonctionne comme écrit, le modèle ne doit pas être protégé. Si le modèle est protégé, vous recevez message d'erreur suivantes :
Impossible de modifier le contexte.
Pour ôter la protection du modèle, procédez comme suit :
  1. Ouvrez le modèle contient des macros décrites dans cet article.
  2. Dans le menu Outils , cliquez sur Ôter la protection du document .
  3. Dans le menu fichier , cliquez sur Enregistrer .
  4. Dans le menu fichier , cliquez sur Fermer .

Première macro : Déplacement du point d'insertion vers le champ suivant

Cette macro déplace le point d'insertion dans le champ suivant. Si le champ de formulaire en cours est la dernière dans le document, il déplace le point d'insertion dans le premier champ de formulaire.

Cette macro utilise les signets collection pour récupérer le nom du champ de formulaire en cours. Le nom de chaque champ de formulaire est également le nom d'un signet inséré pour le champ de formulaire. Si vous avez tous les autres signets dans votre document, vous devrez peut-être ajouter du code plus ici pour gérer les erreurs potentielles. La macro suppose également que tous les champs de formulaire dans les documents permettent l'entrée d'utilisateur. Si ce n'est pas le cas dans votre document, vous devez ajouter du code dans votre macro.

La macro vérifie si la section en cours est protégée ou non protégées puis se déplace dans le champ de formulaire suivant (dans une section protégée) ou insère une marque de paragraphe (dans une section non protégée). Cette fonctionnalité est nécessaire pour les documents qui contiennent les deux sections qui sont protégées de formulaire d'entrée et sans protection sections.
Sub EnterKeyMacro()
' Check whether the document is protected for forms
' and whether the protection is active.
   If ActiveDocument.ProtectionType = wdAllowOnlyFormFields And _
   Selection.Sections(1).ProtectedForForms = True Then
      ' Retrieve the bookmark of the current selection.
      ' This is equivalent to the name of the form field.
      myformfield = Selection.Bookmarks(1).Name
      ' Go to the next form field if the current form field
      ' is not the last one in the document.
      If ActiveDocument.FormFields(myformfield).Name <> _
      ActiveDocument.FormFields(ActiveDocument.FormFields.Count) _
      .Name Then
         ActiveDocument.FormFields(myformfield).Next.Select
      Else
         ' If the current form field is the last one,
         ' go to the first form field in the document.
         ActiveDocument.FormFields(1).Select
      End If
   Else
   ' If the document is not protected for forms,
   ' insert a tab stop character.
      Selection.TypeText Chr(13)
   End If
End Sub
				

Deuxième macro : Affectation de la Macro EnterkeyMacro à la touche entrée

Cette macro attache la macro EnterKeyMacro à la touche entrée, reprogrammation ainsi la fonction de la clé lorsqu'il est utilisé dans les champs de formulaire document protégé. Lorsque vous utilisez cette macro dans un modèle personnalisé, nommez-le AutoNew. Cela modifie la fonctionnalité de la touche entrée dans tous les nouveaux documents de formulaire basé sur le modèle.
Sub AutoNew()
 ' Do Not protect the template containing these macros.
   CustomizationContext = ActiveDocument.AttachedTemplate
   ' Bind the ENTER key to the EnterKeyMacro.
   KeyBindings.Add KeyCode:=BuildKeyCode(wdKeyReturn), _
   KeyCategory:=wdKeyCategoryMacro, Command:="EnterKeyMacro"
   ' Reprotect the document with Forms protection.
   ActiveDocument.Protect Type:=wdAllowOnlyFormFields, NoReset:=True
End Sub
				

Troisième macro : Affectation de la Macro AutoOpen à la touche entrée

Ajouter une macro AutoOpen avec le code suivant. Cela garantit que la fonctionnalité clée continue lorsque vous ouvrez un document basé sur le modèle de formulaire à l'avenir.
Sub AutoOpen()
' This macro will reassign the ENTER key when you open an existing
' Word form fields document.
   CustomizationContext = ActiveDocument.AttachedTemplate
   ' Bind the Enter key to the EnterKeyMacro.
   KeyBindings.Add KeyCode:=BuildKeyCode(wdKeyReturn), _
   KeyCategory:=wdKeyCategoryMacro, Command:="EnterKeyMacro"
End Sub
				
Remarque : exécution de ces macros peut désactiver certaines fonctionnalités, telles que la correction automatique et insertion automatique et peut affecter les autres fonctionnalités qui dépendent de la touche ENTRÉE pour un fonctionnement correct. Vous devez exécuter la macro quatrième pour restaurer la fonctionnalité par défaut de la touche ENTRÉE ou redémarrez Microsoft Word.

Macro quatrième : Suppression de la commande associée à la touche entrée

Cette macro restaure la fonctionnalité par défaut de la touche ENTRÉE. Lorsque vous utilisez cette macro dans un modèle personnalisé, nommez-le AutoClose.
Sub AutoClose()
   CustomizationContext = ActiveDocument.AttachedTemplate
   FindKey(KeyCode:=BuildKeyCode(wdKeyReturn)).Disable
   ' Disables prompt to save template changes.
   Templates(1).Save
End Sub
				
Remarque : la propriété CustomizationContext définit l'emplacement où la personnalisation du clavier doit être enregistré, dans ce cas le modèle attaché au document actif.

Références

Pour plus d'informations sur les ressources disponibles pour créer des solutions personnalisées à l'aide de Visual Basic pour applications et Microsoft Word 2000, cliquez sur les numéros ci-dessous pour afficher les articles correspondants dans la base de connaissances Microsoft :
212623WD2000 : Ressources de programmation de macro
226118OFF2000 : Ressources de programmation pour Visual Basic pour applications

Propriétés

Numéro d'article: 211219 - Dernière mise à jour: jeudi 23 novembre 2006 - Version: 2.7
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Word 2002 Standard Edition
  • Microsoft Word 2000 Standard Edition
Mots-clés : 
kbmt kbautomation kbmacro kbprogramming kbhowto kbinfo kbinterop KB211219 KbMtfr
Traduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 211219
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires