Université Ibn Zohr Faculté des Sciences Economiques et Sociales Notes de cours VBA E. Belahmidi 2007/2008
Introduction - VBA : Visual Basic for Applications Langage pour programmation des applications Dérive de VB : Visual Basic VBA à utiliser avec une application sous-jacente (MS : Excel, Access…)
Rappel Excel Excel : logiciel pour la gestion des données numériques Manupule des entités appelées : Objet · L’objet application Il s’agit de Excel lui-même. · L’objet classeur. Désigné sous VBA par workbook · L’objet feuille. Désigné sous VBA par Worksheet L’objet plage. Désignée sous VBA par Range + cellule active. (ActiveCell) Les objets boîtes de dialogues
Introduction VBA Macro : MacroCommand Un ensemble de commande effectuant une tâche quelconque Utilité : pour ne pas refaire le même travail sur les document Exp: Mise en forme Créée avec le Menu : Outils -> Macro -> nouvelle Macro Faire les mises en forme ou autres Puis Stop enregistrement Pour réexécuter : Play !
Ecriture du code VBA Dans des procédure ou fonctions Qui sont dans des modules Menu : Insertion -> Module Une procédure : un ensemble d’action de commande Sub proc1( ) MsgBox “Hi” End Sub Une fonction : un ensemble de commande retournant un résulat Function Calcul(Nbre1 As Integer, Nbre2 As Integer) Calcul = Nbre1 + Nbre2 End Function
Objets Exp: Application.Workbooks(1).Worksheets("Feuil2").Range("A1") Définition : les entités manipulées par VBA Actions sur les objets : Propriétés : C’est un attribut de l’objet Syntaxe : Objet.propriété Exp. Range(« A1 :A3 »).Height=1 Méthodes : action de l’objet ou sur l’objet Méthodes renvoyant un objet : Selection Méthode sans argument : Clear Méthode avec argument :
Variables Définition : un conteneur pour stocker des valeurs ou des objet -Chaque variable a un type : c’est le type des valeurs qu’elle contient Types : · Integer : entiers, de –32 768 à 32 767 · Long : entiers va de –2 147 483 648 à 2 147 483 647 · Single : réels de –3,4.10308 à –1,4.10-45 · Double : décimaux encore plus grands · String : chaînes de caractères · Object : ce sont les objets Variant : universel, contient les autres
Affectation Constantes: - Une valeur : nomvariable = valeur Exp . S = “bonjour” option explicit : forcer la declaration, au lieu de variant Dim nomvar as type Exp. Nbr as integer Objet : Exp. Set a = Range("A1:B6") a.Value=2 Constantes: Exp. Const pi as long=3.14
Tableaux Un tableau : une matrice (multi dimension) Syntaxe : Dim nomtab(dim1, dim2…) Exp. Dim montab(25,2) Affectation : montab(1,1) = 34
Structures de contrôle - If condition then … else ….endif - Do condition … Loop - For I= … to … Next For Each…in…
Dialogue avec l’utilisateur Les MsgBox : Parametres : prompt, bouton, titre Prompt : texte à afficher Bouton : vbCritical, vbExclamation, vbInforation, vbQuestion Titre :titre de la boîte Bouton spéciaux : vbAbortRetryIgnore, vbOkCancel, vbRetryCancel, vbYesNo, vbYesNoCancel Exemple : MsgBox (“voulez vous continuer” , vbYesNo + vbQuestion) Valeur de retour : vbOk = 1, vbCancel = 2, vbAbort=3, vbRetry =4, vbIgnore=5, vbYes=6, vbNo=7 Exemple : Reponse = Msgbox (“On continue?”, vbYesNo) If Reponse = 7 then MsgBox “Bye”
Dialogue avec l’utilisateur InputBox : sert à lire des valeurs Parametres : prompt, titre, valeur par défaut Exemple : Valeur=InputBox(“votre nom ?”, “mon programme”, “user”)
Les UserForms Rôle : Structure : Exemple : Ajouter des contrôles personalisables sur l’application cible Structure : Un userform (feuille utilisateur) est un conteneur d’objets Donc : a des propriétés et des méthodes Exemple :
Les UserForms : Création Menu Insertion -> Userform Apparition d’un formulaire + une boîte de contrôles Propriétés : Gérées par une boîte propriétés (à droite) Name : nom (servira dans le code VBA) Caption : titre Couleurs, image de fond…
Les UserForms : Contrôles Load Nomdelafeuille : charge la feuilles Nondelafeuille.affiche : rendre visible Nomdelafeuille.hide : rendre invisible Unload Nomdelafeuille : détruit la feuille Exemple : Sub AfficheUF() Load Maboite Maboite.Show MsgBox "ok?" Maboite.Hide Unload Maboite End Sub
Les UserForms : Les objets Frame (cadre) : regrouper des objets Button : lancer un traitement Label (etiquette) : afficher un texte OptionButton : faire un choix Checkbox : case à cocher TextBox : saisie d’un text Exemple : Private Sub Valider_Click() Range("A1").Value = TextBox1.Value End Sub