Un premier formulaire (userform) pas à pas Vous pouvez télécharger un exemple a
Un premier formulaire (userform) pas à pas Vous pouvez télécharger un exemple associé à ce tutoriel. • Introduction • Un premier userform ultrasimple • Un exemple plus élaboré • Créer l'interface • Initialisation du userform • Validation de données • Transfert de données du userform vers la feuille • Transfert de données de la feuille vers le formulaire Introduction Beaucoup d'utilisateurs d'excel pensent spontanément que leur "niveau en informatique" n'est pas assez bon pour se lancer dans un langage de programmation et de ce fait laissent tomber les merveilleux outils que sont les macros (langage VBA) et les userforms. Au tout début de ce pas à pas, je leur propose de créer un userform ultrasimple juste pour démontrer que ce n'est vraiment pas insurmontable. Cependant, la création d'un userform nécessite quelques notions de base en langage macro ou VBA. La lecture du pas à pas sur ces notions est donc vivement recommandée à ceux qui n'ont jamais écrit une ligne de code. Mon premier userform ultrasimple Mettons directement les mains dans le cambouis ! Ouvre un nouveau classeur excel et affiche l'éditeur VBA (alt+F11). Tu vois à gauche VBA project (classeur1). Fais un clic droit sur ce mot, insertion/userform. Tu vois apparaître : à gauche, un classeur nommé feuilles avec dedans un userform1 ; à droite un carré gris tristounet et une boite à outil. Si celle ci n'apparaissait pas, regarde dans le menu affichage/boite à outils. Dans cette boite se trouvent différents objets ou "contrôles" que l'on peut placer sur un userform. Chacun de ces contrôles permet d'effectuer un type d'opération. Les étiquettes (labels) permettent d'afficher du texte, les boites de texte (textbox) de faire entrer du texte à un utilisateur, les listes (listbox et combobox) de choisir un item dans une liste pré remplie, modifiable ou non, les boutons permettent de déclencher une action comme par exemple une validation de saisie. Il y a bien d'autres contrôles disponibles. Certains sont affichés par défaut mais en faisant un clic droit sur cette boite à outils tu peux accéder à d'autres contrôles. Pour le moment, nous allons juste placer un textbox et un bouton. Pour voir ce que l'utilisateur aura en face de lui, appuie sur la touche F5. A ce stade tu as un textbox avec le curseur placé dedans, et un bouton. Tu peux saisir du texte dans ton textbox mais si tu cliques sur le bouton, il ne se passe... RIEN. Pour qu'il se passe quelque chose, il faut associer des instructions à ce userform. Ferme le userform avec la croix rouge et reviens dans l'éditeur VBA. Clique sur le bouton du userform pour le sélectionner. A gauche tu vois apparaître la fenêtre propriétés (si ce n'est pas le cas, affichage, fenêtre propriétés ou touche F4). Cette fenêtre liste les propriétés associées à l'objet sélectionné. Par défaut, excel appelle CommandButton les boutons. Tu peux changer ce nom (name) pour que ce soit plus parlant. Mais attention, pas d'espace et pas certains caractères particuliers dans le nom. Mais cela ne change pas le texte du bouton. Pour ça il faut modifier la propriété caption. Mets OK dedans par exemple. Les propriétés peuvent être modifiées de cette façon, mais également par programmation (à voir plus tard !). Nous allons maintenant faire en sorte que lorsque l'utilisateur appuie sur le bouton, le texte saisi dans le textbox soit entré dans la cellule A1 de la feuille 1. Si je double clique dans l'éditeur VBA sur le bouton, une nouvelle fenêtre s'ouvre avec dans la partie centrale ceci : Private Sub CommandButton1_Click() End Sub Les instructions associées au clic sur ce bouton seront insérées entre ces deux lignes. La fenêtre qui s'est ouverte comporte en haut deux menus déroulants. Celui de droite comporte des actions. On parle plutôt d'événements. Chaque type de contrôle dispose d'une série d'événements qui lui sont associés. Sur un bouton, on peut cliquer, double cliquer, passer la souris dessus... Le menu de gauche permet de sélectionner les différents contrôles du userform ou le userform lui même. En jouant avec ces deux menus on a donc accès à l'ensemble des opérations que l'on peut piloter avec les contrôles présents sur le userform. On peut également accéder à cette fenêtre de programmation en faisant un clic droit sur le mot userform1 dans l'explorateur de projet puis afficher le code. Pour s'y retrouver dans les différentes propriétés et méthodes ou événements associés à un contrôle, lorsque l'on programme, on associe les deux comme on le fait en bon français en mettant un nom et un adjectif qualificatif. Pour que ce soit encore plus simple, on met un point entre les deux : CommandButton1.Caption permet de manipuler le texte affiché sur le bouton. Chaque objet a une propriété par défaut. Par exemple pour un textbox c'est value. Cette propriété peut être omise mais personnellement, je préfère à des fins de clarté la mettre systématiquement même si c'est plus lourd. Si l'utilisateur entre coucou dans le textbox1, la valeur du textbox (value) est coucou. Je peux récupérer cette valeur et la mettre dans la feuille de calcul. Ça donne : Sheets("Feuil1").Range("A1").Value=TextBox1.Value Il me suffit de placer cette ligne de code dans la macro associée au bouton et lorsque l'utilisateur cliquera sur ce bouton, cette ligne de code sera effectuée ce qui mettra coucou en A1. Private Sub CommandButton1_Click() Sheets("Feuil1").Range("A1").Value=TextBox1.Value End Sub Et voilà ! Lance le userform (F5) et vérifie que tout fonctionne. C'est bon ? Alors tu es paré pour passer à la suite ! On va juste ajouter une petite chose pratique dans ce userform : comment l'afficher et comment le masquer ? Pour le masquer c'est très simple. Dans le code de ton bouton, il te suffit de rajouter l'instruction userform1.hide. Tu peux aussi, pour le cas ou la feuille 1 n'aurait pas été la feuille active au moment ou le userform a été lancé, faire afficher cette page : Sheets("Feuil1").Activate. Pour permettre à l'utilisateur de lancer le userform, tu peux aussi ajouter un bouton sur la page avec les barres d'outils contrôles ou formulaires et mettre dans le code de ce bouton l'instruction userform1.show. Voilà. Si tu as compris ça, le reste n'est que variation autour du même principe. Un contrôle, des propriétés, des événements et un peu de code pour lier tout ça. Après on peut mettre de la couleur, soigner la présentation, optimiser le code pour faire pro et qu'il soit rapide mais fondamentalement il n'y a rien de bien plus sorcier. L'exemple qui suit est un peu plus complexe. Il reprend aussi plus en détail les différents notions rapidement abordées dans ce premier exemple. Un userform plus élaboré Vous voulez gérer avec excel une petite base de données, pour collecter par exemple vos recettes de cuisine préférées. En effet, outre la recette à proprement parler, vous voulez pouvoir trier vos recettes par type de plat (viande, dessert..) ou par niveau de difficulté. Bien sur vous pouvez faire un simple tableau dans excel avec des colonnes pour chaque rubrique (titre, type de plat, difficulté, temps de préparation...). Mais l'interface n'est guère sympathique, que ce soit pour faire la saisie ou pour visualiser vos recettes, voire les imprimer. Les userforms (nom anglophone) ou formulaires sont justement faits pour cela. Le terme de formulaire faisant très administratif en français est je trouve très mal choisi pour cette interface qui peut être très soignée et réussie. Vous trouverez quelques exemples à télécharger sur excelabo, notamment de Michel Pierron, qui vous en convaincront aisément ! Une petite remarque : bien que l'interface Visual basic (l'éditeur) soit francisée, le VBA (le code) nécessaire pour utiliser les userforms reste en anglais. Du coup les outils sont désignés dans l'interface par le nom français, dans le code par le nom anglais et dans l'aide en ligne tantôt par l'un tantôt par l'autre. Bien qu'aimant la langue de Molière, je ferai (hélas) de même dans ce texte. Le terme de "contrôle" est synonyme d'outils. Le classeur exemple à télécharger peut vous sembler très complexe au premier abord. Cependant chaque notion peut être étudiée séparément. La première partie, associée au userform UsfNew est la plus simple. Les userforms UsfSelection et UsfSelect2 vous montrent comment faire choisir des critères à un utilisateur. Enfin le USfAffichage vous montre comment afficher dans un formulaire des données de la feuille excel. Pour suivre la démarche nécessaire à la création de notre premier userform, je vais honteusement pomper des recettes sur http://recettes-de-sylvie.fr/, le site de mon amie Sylvie, site que je vous recommande plus que chaleureusement, non seulement parce que c'est mon amie, mais aussi (et surtout pour vous qui ne la connaissez pas) parce que ses recettes sont délicieuses, qu'elle les a toutes testées chez elle et que, pour en avoir goûté un certain nombre, je sais de quoi je parle ! En prime, Sylvie est diététicienne alors on peut se laisser aller à la gourmandise presque sans complexe ! Prenons une recette simple, celle du gâteau de T'cil. Celle-ci je la connais bien, T'cil c'est ma fille et uploads/S4/ un-premier-formula-ire-userform 1 .pdf
Documents similaires
-
28
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Mai 14, 2022
- Catégorie Law / Droit
- Langue French
- Taille du fichier 0.5118MB