Userforms et VBA -...
Transcript of Userforms et VBA -...
Evènements et UserformsContrôles
Exemple d'un Userform simpleConclusion
Userforms et VBA
A. Ancel
Université de Strasbourg
30/04/2009
Alexandre ANCEL Userforms et VBA
Evènements et UserformsContrôles
Exemple d'un Userform simpleConclusion
Sommaire
1 Evènements et UserformsProgrammation évènementielleUserforms
2 Contrôles
3 Exemple d'un Userform simpleObjectifs et moyensDesignInitialisation et gestion des évènements
4 Conclusion
Alexandre ANCEL Userforms et VBA
Evènements et UserformsContrôles
Exemple d'un Userform simpleConclusion
Programmation évènementielleUserforms
Sommaire
1 Evènements et UserformsProgrammation évènementielleUserforms
2 Contrôles
3 Exemple d'un Userform simpleObjectifs et moyensDesignInitialisation et gestion des évènements
4 Conclusion
Alexandre ANCEL Userforms et VBA
Evènements et UserformsContrôles
Exemple d'un Userform simpleConclusion
Programmation évènementielleUserforms
Sommaire
1 Evènements et UserformsProgrammation évènementielleUserforms
2 Contrôles
3 Exemple d'un Userform simpleObjectifs et moyensDesignInitialisation et gestion des évènements
4 Conclusion
Alexandre ANCEL Userforms et VBA
Evènements et UserformsContrôles
Exemple d'un Userform simpleConclusion
Programmation évènementielleUserforms
Point de départ
Jusqu'à présent :
Fonctions et procédures simples
Interaction avec l'utilisateur limitée
Vers une interaction plus complexe :
Création de fenêtres personnalisées
Programmation évènementielle
Alexandre ANCEL Userforms et VBA
Evènements et UserformsContrôles
Exemple d'un Userform simpleConclusion
Programmation évènementielleUserforms
Point de départ
Jusqu'à présent :
Fonctions et procédures simples
Interaction avec l'utilisateur limitée
Vers une interaction plus complexe :
Création de fenêtres personnalisées
Programmation évènementielle
Alexandre ANCEL Userforms et VBA
Evènements et UserformsContrôles
Exemple d'un Userform simpleConclusion
Programmation évènementielleUserforms
Point de départ
Ensemble d'objets : Userforms + composants
Utilisateur qui souhaite agir sur ces objets
Interactions classiques :
click, double click
focus sur un composant
appui d'une touche si un composant est selectionné
. . .
Comment lier les actions de l'utilisateur et les composants ?
Alexandre ANCEL Userforms et VBA
Evènements et UserformsContrôles
Exemple d'un Userform simpleConclusion
Programmation évènementielleUserforms
Point de départ
Ensemble d'objets : Userforms + composants
Utilisateur qui souhaite agir sur ces objets
Interactions classiques :
click, double click
focus sur un composant
appui d'une touche si un composant est selectionné
. . .
Comment lier les actions de l'utilisateur et les composants ?
Alexandre ANCEL Userforms et VBA
Evènements et UserformsContrôles
Exemple d'un Userform simpleConclusion
Programmation évènementielleUserforms
Programmation Evènementielle
Association d'une action sur un composant à une procédure
⇒ On dé�nit le programme par ses réactions aux di�érentsévènements qui peuvent se produire
Alexandre ANCEL Userforms et VBA
Evènements et UserformsContrôles
Exemple d'un Userform simpleConclusion
Programmation évènementielleUserforms
Procédures ↔ Composants
Exemple
Private Sub Composant_Action()
...
End Sub
Composant : objet provoquant un évènement
Userform, Bouton, Champs de texte, Combobox, . . .
Action : type d'évènement
Click, Activate, Change, Terminate, Resize . . .
Alexandre ANCEL Userforms et VBA
Evènements et UserformsContrôles
Exemple d'un Userform simpleConclusion
Programmation évènementielleUserforms
Sommaire
1 Evènements et UserformsProgrammation évènementielleUserforms
2 Contrôles
3 Exemple d'un Userform simpleObjectifs et moyensDesignInitialisation et gestion des évènements
4 Conclusion
Alexandre ANCEL Userforms et VBA
Evènements et UserformsContrôles
Exemple d'un Userform simpleConclusion
Programmation évènementielleUserforms
Création
Accéder à l'éditeur de macros
Insérer une nouvelle form : Menu Insertion → Userform
Alexandre ANCEL Userforms et VBA
Evènements et UserformsContrôles
Exemple d'un Userform simpleConclusion
Programmation évènementielleUserforms
Lancement
Exécuter le formulaire : Exécuter Sub/UserForm ou F5
Le formulaire est vu comme un objet par votre Application
Alexandre ANCEL Userforms et VBA
Evènements et UserformsContrôles
Exemple d'un Userform simpleConclusion
Programmation évènementielleUserforms
Design
Fenetre de �dessins� oùl'on dépose lescomposants :
Boite à outils contenantles composants :
Alexandre ANCEL Userforms et VBA
Evènements et UserformsContrôles
Exemple d'un Userform simpleConclusion
Programmation évènementielleUserforms
Propriétés
Quelques propriétésimportantes des formulaires :( et des composants )
Name : nom de l'objet
Caption : texte associé
Height : hauteur
Width : largeur
Visible : a�ché ou non
Enabled : activé ou non
...
Alexandre ANCEL Userforms et VBA
Evènements et UserformsContrôles
Exemple d'un Userform simpleConclusion
Programmation évènementielleUserforms
Appeler un Userform
Show / Hide : a�che / cache la fenetre
Directement
Sub Main()
Userform1.Show
End Sub
En passant par la liste des Userforms
Sub Main()
Dim fname As String
fname = "Userform1"
VBA.Userforms.Add(fname).Show
End Sub
Alexandre ANCEL Userforms et VBA
Evènements et UserformsContrôles
Exemple d'un Userform simpleConclusion
Programmation évènementielleUserforms
Modalité (1)
Notion de Modalité :
Alexandre ANCEL Userforms et VBA
Evènements et UserformsContrôles
Exemple d'un Userform simpleConclusion
Programmation évènementielleUserforms
Modalité (2)
Exemples : Userform1.Show <Modalité>
Userform modal
Sub Main()
Userform1.Show
End Sub
Userform non modal
Sub Main()
Userform1.Show False
End Sub
Alexandre ANCEL Userforms et VBA
Evènements et UserformsContrôles
Exemple d'un Userform simpleConclusion
Sommaire
1 Evènements et UserformsProgrammation évènementielleUserforms
2 Contrôles
3 Exemple d'un Userform simpleObjectifs et moyensDesignInitialisation et gestion des évènements
4 Conclusion
Alexandre ANCEL Userforms et VBA
Evènements et UserformsContrôles
Exemple d'un Userform simpleConclusion
Contrôles (1)
Intitulé (Label) : non éditable → informatif
Zone de Texte (Textbox) : éditable → récupérer du texte
Bouton de commande (CommandButton)→ valider une action
Case à cocher (CheckBox) → choix sous la forme d'un booléen
Alexandre ANCEL Userforms et VBA
Evènements et UserformsContrôles
Exemple d'un Userform simpleConclusion
Contrôles (2) : choix
Bouton d'option (OptionButton)
Zone de liste modi�able (ComboBox) → repliable
Zone de Liste (ListBox) → permet la multi-selection
Alexandre ANCEL Userforms et VBA
Evènements et UserformsContrôles
Exemple d'un Userform simpleConclusion
Objectifs et moyensDesignInitialisation et gestion des évènements
Sommaire
1 Evènements et UserformsProgrammation évènementielleUserforms
2 Contrôles
3 Exemple d'un Userform simpleObjectifs et moyensDesignInitialisation et gestion des évènements
4 Conclusion
Alexandre ANCEL Userforms et VBA
Evènements et UserformsContrôles
Exemple d'un Userform simpleConclusion
Objectifs et moyensDesignInitialisation et gestion des évènements
Sommaire
1 Evènements et UserformsProgrammation évènementielleUserforms
2 Contrôles
3 Exemple d'un Userform simpleObjectifs et moyensDesignInitialisation et gestion des évènements
4 Conclusion
Alexandre ANCEL Userforms et VBA
Evènements et UserformsContrôles
Exemple d'un Userform simpleConclusion
Objectifs et moyensDesignInitialisation et gestion des évènements
Objectif
Objectif : Saisie d'informations sur une personne
Nom, prénom
Adresse
Date de naissance
Moyens : Userform
Composants : boutons : Valider, Annuler
Intitulés + Zone de texte
Alexandre ANCEL Userforms et VBA
Evènements et UserformsContrôles
Exemple d'un Userform simpleConclusion
Objectifs et moyensDesignInitialisation et gestion des évènements
Objectif
Objectif : Saisie d'informations sur une personne
Nom, prénom
Adresse
Date de naissance
Moyens : Userform
Composants : boutons : Valider, Annuler
Intitulés + Zone de texte
Alexandre ANCEL Userforms et VBA
Evènements et UserformsContrôles
Exemple d'un Userform simpleConclusion
Objectifs et moyensDesignInitialisation et gestion des évènements
Sommaire
1 Evènements et UserformsProgrammation évènementielleUserforms
2 Contrôles
3 Exemple d'un Userform simpleObjectifs et moyensDesignInitialisation et gestion des évènements
4 Conclusion
Alexandre ANCEL Userforms et VBA
Evènements et UserformsContrôles
Exemple d'un Userform simpleConclusion
Objectifs et moyensDesignInitialisation et gestion des évènements
Design du Userform
Etapes :
Mais . . .
Alexandre ANCEL Userforms et VBA
Evènements et UserformsContrôles
Exemple d'un Userform simpleConclusion
Objectifs et moyensDesignInitialisation et gestion des évènements
Design du Userform
Etapes :
Mais . . .
Alexandre ANCEL Userforms et VBA
Evènements et UserformsContrôles
Exemple d'un Userform simpleConclusion
Objectifs et moyensDesignInitialisation et gestion des évènements
Ergonomie
Attention au placement des composants !
Alexandre ANCEL Userforms et VBA
Evènements et UserformsContrôles
Exemple d'un Userform simpleConclusion
Objectifs et moyensDesignInitialisation et gestion des évènements
Sommaire
1 Evènements et UserformsProgrammation évènementielleUserforms
2 Contrôles
3 Exemple d'un Userform simpleObjectifs et moyensDesignInitialisation et gestion des évènements
4 Conclusion
Alexandre ANCEL Userforms et VBA
Evènements et UserformsContrôles
Exemple d'un Userform simpleConclusion
Objectifs et moyensDesignInitialisation et gestion des évènements
Initialisation du Userform
Accès au code associé au Userform :
click droit sur l'Userform → A�cher le code
Procédure : Private Sub NomUserform_Initialize()
Permet d'initialiser les propriétés du Userform
Permet d'initialiser les propriétés des composants contenus
dans le Userform
Valeur par défaut des champs de texte
Valeurs contenues dans les composants stockant des listes
. . .
Alexandre ANCEL Userforms et VBA
Evènements et UserformsContrôles
Exemple d'un Userform simpleConclusion
Objectifs et moyensDesignInitialisation et gestion des évènements
Composants & gestion des évènements
Penser à renommer les composants :
Facilité d'accès dans le code associé
Exemples :
txtNom : Zone de texte contenant le Nom
btnValider : Bouton permettant de valider le formulaire
Quels évènements sont utiles à gérer ?
Evènements relatifs aux labels ?
Evènements relatifs aux champs de texte ?
Evènements relatifs aux boutons ?
Alexandre ANCEL Userforms et VBA
Evènements et UserformsContrôles
Exemple d'un Userform simpleConclusion
Objectifs et moyensDesignInitialisation et gestion des évènements
Composants & gestion des évènements
Penser à renommer les composants :
Facilité d'accès dans le code associé
Exemples :
txtNom : Zone de texte contenant le Nom
btnValider : Bouton permettant de valider le formulaire
Quels évènements sont utiles à gérer ?
Evènements relatifs aux labels ?
Evènements relatifs aux champs de texte ?
Evènements relatifs aux boutons ?
Alexandre ANCEL Userforms et VBA
Evènements et UserformsContrôles
Exemple d'un Userform simpleConclusion
Objectifs et moyensDesignInitialisation et gestion des évènements
Gestion des évènements : Boutons (1)
Quitter
Private Sub btnQuitter_Click()
Me.Hide
End Sub
Alexandre ANCEL Userforms et VBA
Evènements et UserformsContrôles
Exemple d'un Userform simpleConclusion
Objectifs et moyensDesignInitialisation et gestion des évènements
Gestion des évènements : Boutons (2)
Valider
Private Sub bntValider_Click()
If txtName.Text <> "" And txtAddress.Text <> "" _
And txtBirthDate.Text <> "" Then
WorkSheets(1).Cells( 1, 1 ).value = txtName.Text
WorkSheets(1).Cells( 1, 2 ).value = _
txtAddress.Text
WorkSheets(1).Cells( 1, 3 ).value = _
txtBirthDate.Text
Me.Hide
Else
MsgBox "Un des champs requis n'a pas été rempli"
End If
End Sub
Alexandre ANCEL Userforms et VBA
Evènements et UserformsContrôles
Exemple d'un Userform simpleConclusion
Sommaire
1 Evènements et UserformsProgrammation évènementielleUserforms
2 Contrôles
3 Exemple d'un Userform simpleObjectifs et moyensDesignInitialisation et gestion des évènements
4 Conclusion
Alexandre ANCEL Userforms et VBA