37

Userforms et VBA - dpt-info.u-strasbg.frdpt-info.u-strasbg.fr/~ancel/enseignement/_20082009/L3_ME/VBA_Use… · Evènements et Userforms Contrôles Exemple d'un Userfrmo simple Conclusion

Embed Size (px)

Citation preview

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

Evènements et UserformsContrôles

Exemple d'un Userform simpleConclusion

Conclusion

Fin de la présentation

Démonstration

Alexandre ANCEL Userforms et VBA