Proposer du texte par défaut
Une macro n'a d'intérêt que si elle permet à un utilisateur de renseigner plus rapidement un document. Aussi est-il important de lui simplifier au maximum la saisie en lui suggérant des réponses types.
Nous allons donc apprendre à suggérer une réponse par défaut.
Notre premier objectif va consister à pré-remplir le champ "Ville" avec "Paris" (ou toute autre ville de votre choix).
Pour affecter une réponse-type à un contrôle, il suffit tout simplement de respecter la syntaxe :
nom_du_contrôle="valeur texte" (avec guillemets)
ou
nom_du_contrôle=valeur nombre (sans guillemets)
Attention ! Il est primordial de respecter scrupuleusement cette syntaxe et de ne jamais encadrer vos nombres avec des guillemets. montant="123"serait en effet considéré comme une chaîne de texte et la formule montant * 2 retournerait par conséquent un message d'erreur.
Je vous rappelle que nous avions fait simple et que nous avions nommé la zone de texte appelée à recevoir le nom de la ville "ville"...
Pour affecter à ce contrôle la valeur "Paris" , il suffit donc d'écrire :
ville="Paris"
Une question reste cependant en suspens : où placer ce code ?
ce code ne peut être rattaché ni au bouton "Valider", ni au bouton "Annuler". ce texte doit apparaître lors du chargement de la Userform (boîte de dialogue) : c'est donc la procédure UserForm_Initialize() qu'il convient d'utiliser :
-
Cliquez sur le bouton "Afficher le code"
si le code n'est pas apparent ;
-
Dans la liste déroulante, sélectionnez "Userform" ;
-
Par défaut, le logiciel insère une procédure "Click" : ignorez-la et, dans la seconde liste déroulante, sélectionnez "Initialize".
-
Il ne vous reste plus qu'à insérer l'instruction ville="Paris", ce qui nous donne :
Private Sub UserForm_Initialize()
ville = "Paris"
End Sub
Vous pouvez à présent supprimer la procédure Private Sub UserForm_Click() et tester votre nouvelle boîte de dialogue !
Définir l'ordre de remplissage de la boîte de dialogue
-
Cliquez à nouveau sur
puis sur la touche F5 ou l'icône
pour tester votre macro.
-
Déplacez-vous de zone en zone à l'aide de la touche tabulation (à gauche de votre clavier, au-dessus de la touche "blocage majuscule").
Il est probable que le déplacement soit un peu aléatoire. En effet, chaque pression sur la touche tabulation déplace le curseur vers le contrôle suivan,t dans l'ordre où ce dernier a été placé sur la UserForm.
Rassurez-vous : cette propriété peut néanmoins être corrigée. Précisons toutefois avant de commencer, qu'il n'est pas nécessaire de modifier l'ordre de tabulation pour les étiquettes et pour les images, ces éléments étant statiques.
-
Pour modifier l'ordre d'un contrôle, activez-le en cliquant une fois dessus.
-
Dans la fenêtre de propriétés, repérez TabIndex et modifiez tout simplement le nombre.