« Macros-commandes VBA/Création de Formulaire » : différence entre les versions

Contenu supprimé Contenu ajouté
m Robot : Remplacement de texte automatisé (- d'en + d’en )
m Robot : Remplacement de texte automatisé (- l'utilisation + l’utilisation , - d'asile + d’asile , - s'inspirer + s’inspirer , - l'expression + l’expression , - d'usage + d’usage , - d'autre + d’autre , - d'important + d’important...
Ligne 47 :
Il récupère alors un 'Userform vierge' qui apparait qu’il va personnaliser en fonction de ce qu’il veut effectuer avec ce formulaire (saisie de données, contrôles des données, proposition à l’utilisateur…). Cette personnalisation va notamment s’effectuer via 'les propriétés' et 'la boite à outils'.
[[FileFichier:Userform Vierge.png|center|Userform Vierge]]
 
=== Les propriétés ===
 
Grâce aux propriétés du formulaire, il est possible de modifier un certain nombre de choses. Par souci de simplicité, nous n’abordons que quelques propriétés du formulaire dans cette leçon mais sachez qu’il en existe beaucoup d’autres. Nous aborderons les propriétés les plus courantes telles que :
Ligne 62 :
Pour 'afficher les propriétés', dans la même logique qu’avec Excel ou Windows, je place mon curseur sur le UserForm, j’effectue un clic droit et je vais afficher les propriétés.La fenêtre de propriété du UserForm s’affiche à droite en dessous de notre fenêtre projet, une multitude de propriété apparait.
 
[[FileFichier:Fenêtre des propriétés.png|center|Fenêtre des propriétés]]
 
Par souci de simplicité, nous ne présentons que quelques illustrations de l’utilisation des propriétés les plus utilisées permettant d’apporter plus d’esthétique (police, couleur…), mais également plus d'interactivité avec l'utilisateur.
Ligne 72 :
De manière générale, et par souci d’efficacité, il est recommandé de nommer les objets en expliquant à quoi ils servent. Dans l’exemple que nous avons choisi, le formulaire va permettre à l’utilisateur l’allocation d’une charge de travail de chaque acteur en fonction du projet sur lequel il travaille. Il est donc recommandé de renommer le UserForm1 de base par UserFormProjet. Ce simple nommage permettra à l’utilisateur de s’y retrouver beaucoup plus facilement dans son code par la suite, de gagner du temps et d’éviter de nombreuses erreurs d’inattention.
 
[[FileFichier:Propriété name du userform.png|center|Propriété name du userform]]
 
==== Caption ====
Ligne 79 :
Toujours avec notre même exemple de formulaire pour la saisie de projet :
 
[[FileFichier:Propriété Caption.png|center|Propriété Caption]]
[[FileFichier:Changement de la caption.png|center|Changement de la caption]]
 
==== Font ====
Ligne 86 :
Cette propriété va permettre à l’utilisateur de modifier la police de la caption que nous avons abordée précédemment. L’utilisateur va ainsi avoir la possibilité de choisir un type de police particulier, sa taille, si cette police sera en italique, en gras … Il suffit de se positionner sur font dans les propriétés, puis d’appuyer sur le bouton qui apparait à l’extrémité droite de la ligne.
 
[[FileFichier:Propriété Front.png|center|Propriété Front]]
 
Une fois cette étape effectuée, une boite de dialogue « police » apparait, il vous suffit ensuite de choisir la police qui vous convient.
 
[[FileFichier:Modifier la propriété Front.png|center|Modifier la propriété Front]]
 
==== Backcolor – Bordercolor - Border style ====
Ligne 97 :
Ces propriétés fonctionnent de la même façon que la propriété Font, en effet, il suffit de se placer sur la ligne de ces propriétés, cliquer sur le bouton qui apparait à l’extrémité droite, puis une liste de choix apparait.
 
[[FileFichier:Propriété backcolor - Bordercolor.png|center|Propriété backcolor - Bordercolor]]
 
[[FileFichier:BorderStyle.png|center|BorderStyle]]
 
La taille 0 correspond à une bordure invisible alors que la taille 1 correspond à une bordure simple.
Ligne 107 :
Pour aller encore plus loin dans l’esthétisme, vous avez également la possibilité de placer une photo en image de fond de votre formulaire. Il suffit de se placer dans le propriété Picture, cliquer sur le bouton placé à l'extrémité de la ligne.
 
[[FileFichier:Propriété picture.png|center|Propriété picture]]
 
Une fois cette manipulation effectuée, une boite de dialogue charger une image apparaitra, il vous suffira alors d’aller chercher dans vos dossiers l’image que vous souhaitez sélectionner en image de fond pour votre formulaire.
Ligne 113 :
Voilà à quoi ressemble votre formulaire une fois que vous avez effectué toutes ces modifications, simplement en ayant modifié quelques propriétés.
 
[[FileFichier:1er aperçu avec l'image en fond.png|center|1er aperçu avec l'image en fond]]
 
==== ControlSource ====
Ligne 132 :
 
=== Les contrôles de la boîte à outils ===
[[ImageFichier:Microsoft Excel 2010-fr-Boite à outils.PNG|Boite à outils]]
Pour afficher la boite à outils, si elle ne s’affiche pas automatiquement, il faut se rendre dans affichage et sélectionner « boite à outils ».
 
Ligne 143 :
Le contrôle label permet généralement de placer un intitulé (libellé) à côté d’un contrôle ne procédant pas cet attribut, à côté d’une zone de texte par exemple, afin de permettre à l’utilisateur d’en identifier le contenu.
 
[[FileFichier:Le label.png|center|Le label]]
 
À partir de là, vous pouvez utiliser l’ensemble des propriétés que nous avons vu précédemment notamment renommer votre label afin d’aider l’utilisateur dans la compréhension du formulaire. Et voici ce à quoi votre formulaire pourrait ressembler si vous ajoutez 18 labels que vous renommez.
 
[[FileFichier:2 ème aperçu.png|center|2 ème aperçu]]
 
==== Le TextBox ====
Ligne 153 :
Le contrôle TextBox permet de placer des zones de saisie de texte sur la feuille, dans laquelle l’utilisateur pourra renseigner des informations. Les propriétés d’un contrôle TextBox permettent de contrôler le nombre de caractères maximum que pourra entrer l’utilisateur, l’affichage sur plusieurs lignes du texte ou encore le type d’alignement du texte dans la zone de texte...
 
[[FileFichier:Le Textbox.png|center|Le TextBox]]
 
Voici le formulaire obtenu une fois ajoutées 12 x 6 = 22 TextBox pour la saisie des utilisateurs. Afin que l’utilisateur aie l’impression de saisir ses informations dans un tableau, nous avons modifié l’une des propriétés des TextBox, la propriété BackStyle, en appliquant BackStyleOpaque.
 
[[FileFichier:Aperçu avec les textbox.png|center|Aperçu avec les TextBox]]
 
==== La ComboBox ====
Ligne 165 :
Ce contrôle n’inclue pas d’intitulé, par conséquent il est recommandé d’ajouter un LabelBox pour que l’utilisateur s’y retrouve dans le formulaire.
 
[[FileFichier:La combobox.png|center|La ComboBox]]
 
Les alternatives sont la ListBox (liste défilante), et dans Excel la cellule liste (Données, Validation des données, Autoriser = Liste).
Ligne 173 :
Il est possible d’ajouter à votre formulaire un bouton permettant à l’utilisateur d’effectuer diverses actions. Il peut par exemple servir à valider les informations entrées dans la feuille (bouton OK) afin de passer à l’étape suivante du programme, ou au contraire d’interrompre le programme (bouton Annuler).
 
[[FileFichier:CommandButton.png|center|CommandButton]]
[[FileFichier:Aperçu final du formulaire.png|center|Aperçu final du formulaire]]
 
''Il est important de garder à l’esprit lorsque que vous manipulez les contrôles ActiveX, que chaque ActiveX dispose de ses propres propriétés que vous pouvez manipuler à votre guise.''
Ligne 182 :
La taille d'un formulaire est fixe ; il ne s'adapte donc pas automatiquement à la taille ou à la résolution de l'écran. Si le formulaire est utilisé sur un autre PC, en fonction des dimensions de ce dernier, il y aura certaines différences.
 
Il est possible de redimensionner le formulaire ainsi que tous les contrôles par code VBA mais ce n’est pas évident. Dans ce cas, il vaut mieux réaliser de petits formulaires afin d’anticiper l’usage d’un écran de plus petite taille que celui initialement utilisé.
 
Il est important de savoir que les contrôles onglet et surtout multi-pages permettent de répartir les différents contrôles sur plusieurs pages successives : c’est une bonne méthode pour permettre de saisir de façon plus simple un nombre conséquent de données.
Ligne 249 :
==== Via VBA ====
Il s’agit de la méthode AddItem qui consiste en l’affectation d’une propriété à la plage de donnée voulue.
 
La méthode AddItem ajoute les éléments les uns après les autres. Pour cela, la macro doit être écrite dans le UserForm ‘UserForm Initialize’. Pour cette première méthode, il y a différentes étapes à suivre :
Ligne 306 :
** 1ère option : les références de la feuille Excel comme ceci : Feuil1A1 : A3 – Il s’agit tout simplement de la source des données affichées dans la ComBox / l'adresse de la plage contenant les données ou,
** 2{{e}} option : un nom défini (onglet formules/définir un nom) faisant référence à la plage souhaitée ou,
** 3{{e}} option : la référence à une colonne d'un tableau Excel : par exemple Projet [Nucléaire] si le tableau s’appelle Projet et le titre de la colonne est Nucléaire. Pour cela il faut que les données source soient sous forme de tableau.
( Cette option présente un avantage comparé aux précédentes : elle permet d’intégrer automatiquement dans la liste sur le formulaire s’il y a ajout de données dans la colonne en question. )
 
Ligne 517 :
http://bdiemert.free.fr/wikiversity/VBA/IDEFenetrePropriete.jpg
 
Dans la liste des Propriétés => Affichage "Par catégorie" => Menu "Apparence" => Propriété "BackColor" pour la couleur du fond (ou Propriété "ForeColor" Pour la couleur du texte) => Dans la liste déroulante à droite => Affichage "Palette" et sélection de la couleur
 
http://bdiemert.free.fr/wikiversity/VBA/IDEFenetrePaletteCouleurs.jpg
Ligne 538 :
 
* Placer 2 intitulés sur le formulaire, (le contrôle avec un « A ») l'une à côté de l'autre, dans la propriété "Caption" de la première taper : « Nom », dans la deuxième : « Prénom », puis utiliser les propriétes "BackColor, ForeColor, Font ou autres pour la mise en forme ==> http://bdiemert.free.fr/wikiversity/VBA/IDEBoiteOutilsLabel.jpg
* Sous chaque intitulé nous placerons 2 zones de texte (le contrôle avec « ab| ») ==> http://bdiemert.free.fr/wikiversity/VBA/IDEBoiteOutilsTexte.jpg
* Faire un double-clic sur la première (pour afficher le code) et taper le code suivant :
 
Ligne 583 :
Placer un intitulé sur l'UserForm, rentrer dans la propriété "Caption" : « Où habites-tu ? » puis utiliser les propriétés de mise en forme « BackColor, ForeColor, Font » etc.
 
==== Zone de liste (ComboBox) ====
 
Dans les cellules A1 à A15 de la feuille 2 (Feuil2) du classeur entrer des noms de ville. ''''11{{e}} image'''' http://imageshack.com/a/img89/4760/5wnz.jpg
Ligne 648 :
Tant qu'au moins une lettre du prénom ne sera pas saisie, le focus replacé sur la TextBox1, sinon le prénom s'affichera en A1 ==> ''''18{{e}} image'''' http://imageshack.com/a/img51/1829/2z3r.jpg
 
== Transfert de données du fomulaire dans le feuille ==
 
=== Boîtes de texte ===
Ligne 861 :
 
=== Création ===
[[ImageFichier:Form vide VB.JPG|thumb|Il suffit de faire glisser les objets de la boite à outils pour remplir un formulaire vierge]]
 
Access et Excel permettent l'utilisationl’utilisation de formulaires, en plus de leurs bases de données et feuilles de calcul.
 
Pour créer un userform dans Excel, il faut passer en vision du code : ALT + F11. Ensuite dans l'arborescence à gauche, le clic droit permet la création de trois type d'objets : feuille, userform et module.
Ligne 876 :
End Sub
</source>
* On désigne donc le formulaire par son nom (MonFormulaire1 ci-dessus). Mais dans le code du formulaire, on peut utiliser ''Me'' à la place.
* Supprimer la mention ''vbModeless'' ci-dessus entraine l'impossibilité d'ouvrir d'autres fichiers Excel pendant l'utilisationl’utilisation du formulaire.
 
Le code suivant initialise le userform qui le contient, en effet le nom de cette fonction est connu et la lance automatiquement au lancement :
Ligne 906 :
=== Frame ===
Cadre permettant de subdiviser le formulaire en plusieurs sous-parties.
[[ImageFichier:Icone Frame VB.JPG]]
 
=== Button ===
[[ImageFichier:Icone CommandButton VB.JPG]]
* Name
* Backcolor
Ligne 923 :
 
=== Label ===
[[ImageFichier:Icone Label VB.JPG]]
Intitulé.
 
Ligne 930 :
 
=== TextBox ===
[[ImageFichier:Icone TextBox VB.JPG]]
Champ pouvant être complété par l'utilisateur.
 
=== CheckBox ===
[[ImageFichier:Icone CheckBox VB.JPG]]
Case à cocher pour questionnaire à choix multiple.
 
=== OptionButton ===
[[ImageFichier:Icone OptionButton VB.JPG]]
 
Le bouton d'option (ou bouton radio) permet de ne choisir qu'une seule réponse dans une liste.
Ligne 945 :
 
=== ListBox ===
[[ImageFichier:Icone ComboBox VB.JPG]]
Menu déroulant. La différence avec ComboBox est qu'elle n'est pas modifiable.
 
=== Image ===
[[ImageFichier:Icone Image VB.JPG]]
[[Fichier:Icone_Image_VB.JPG]]
 
Ligne 989 :
Pour créer une application .exe standard avec Visual Basic, il faut réer un nouveau projet ActiveX EXE.
 
Les applications [[w:Multiple document interface|MDI]] permettent l'utilisationl’utilisation de sous-fenêtres, par opposition aux [[w:Single document interface|SDI]] (une seule fenêtre) aux [[w:TDI|TDI]] (plusieurs onglets).
 
== Références ==