Par Fabrice Pasquier Cours IV Formulaires Par Fabrice Pasquier Cours IV
Compléments sur les modules (1) Un module contient des programmes. Un programme possède un début et une fin Pour simplifier, il peux exister au plus un module par objet graphique basique Certains modules peuvent être au niveau du projet (sans appartenance à des objets graphiques: ceux qu'on a fait jusqu'à maintenant) Objet graphique basique: Feuille de calculs (Worksheet) Classeur Formulaire
Compléments sur les modules (2) Chaque objet listé dans l'explorateur de projet possède son propre module Tous les modules peuvent posséder plusieurs programmes Modules différents Ce module est un module pour le projet
Compléments sur les modules (3) Comme vu pour l'objet ThisWorkbook, tous les objets graphiques de base possèdent des entêtes de programmes déjà définis. Ils répondent à des situations et des actions particulières. Pour accéder au module d'un objet graphique, en général, un double-clique sur l'objet suffit. Pour les formulaires, un double-clique ouvre le formulaire et un double clique sur un de ces composants ouvre le module avec la bonne entête. En particulier pour les formulaires, l'entête du programme n'est pas arbitraire
Présentation des formulaires Un formulaire est une boîte de dialogue (MsgBox) complétement paramétrable La plupart des composants Windows peuvent être utilisés. Boutons, Zone de texte, Barre de défilement, Case à cocher, Barre de progression, Menu, Barre d'outils On peut également y inclure des objets plus compliqués, comme des graphiques
Création d'un formulaire Se rendre dans l'environnement Visual Basic d'Excel Menu Insertion -> UserForm Une zone de dessin grise apparaît à l'écran
Boîte à outils pour formulaire Vérifier que la barre d'outils ici à droite est bien présente Sinon: Menu Affichage -> Barre à outils Description des outils de dessin: Outil de sélection: sélectionner des composants Intitulé: inscription de texte ds le formulaire Zone de texte: zone de saisie de texte Zone de liste modifiable (voir exemple) Zone de liste: liste figée, sélectionnable Case à cocher: utilisé pour choix Bouton d'option: case avec contrainte Bouton bascule: bouton à 2 états Cadre: utilisé avec les boutons d'option Bouton: bouton standard Les autres sont plus difficiles à utiliser
Dessiner un formulaire Zone de texte Intitulé Cadre Bouton Bouton d'option
A ne pas oublier En général, il faut au moins un bouton, qui a la fonction du OK traditionnel Dans l'exemple précédent: Saisir Un formulaire en VB n'est pas la même chose qu'un formulaire en Access Lorsque l'on dessine des Bouton d'option, il faut toujours les mettre dans un Cadre et veiller à ce que le cadre soit sélectionner au moment de l'ajout du Bouton d'option
Associer un formulaire à un programme A ce stade, le formulaire ne fait rien. On peut l'afficher avec la touche F5 et le fermer avec le petite croix en haut à droite Chaque composant a des propriétés Propriétés du Bouton
Propriétés générales des composants Tous les composants avec du texte ont la propriété Font En cliquant sur les "…" on change la police Tous les composants ont la propriété Name Permet d'accéder au composant avec VB Le nom doit être clairement choisi Tous les composants ont la propriété Visible Permet d'afficher ou non un composant
Autres propriétés intéressantes Caption: beaucoup de composants ont cette propriété. En général modifie le texte vu sur le formulaire. Typique pour les boutons, boutons d'options, les intitulés, les cadres, les UserForm
Rendre actif le formulaire Un formulaire est par défaut fermé. Il est nécessaire de l’afficher à l’écran Code: Public Sub affiche() Load UserForm1 ‘pas indispensable UserForm1.Show ‘affichage End Sub
Accès aux composants du formulaire Utiliser la syntaxe hiérarchique nom = UserForm1.tb_nom.Value Nom du formulaire Propriété Nom du composant
Récolte des infos du formulaire En général, on utilise les infos introduites dans le formulaire lors du clique sur le bouton OK ou similaire Private Sub bt_saisir_Click() Dim nom As String Dim prenom As String Dim age As Integer Dim sexe As String nom = UserForm1.tb_nom.Value prenom = UserForm1.tb_prenom.Value age = UserForm1.tb_age.Value If UserForm1.ob_1 = True Then sexe = "M" Else sexe = "F" End If Sheets(1).Range("A1").Value = nom Sheets(1).Range("b1").Value = prenom Sheets(1).Range("c1").Value = age Sheets(1).Range("d1").Value = sexe UserForm1.Hide Unload UserForm1 End Sub
Exemples… Voir sur Excel …….
Développement d’une application À voir
Commander d’autres application Possibilité de piloter d’autre application, comme Word ou Internet Explorer Voir exemple