La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

1 Présentation rapide de VBA. 2 Objectifs Lobjectif est de découvrir comment modifier lergonomie ou le fonctionnement dune application, voire de lenrichir.

Présentations similaires


Présentation au sujet: "1 Présentation rapide de VBA. 2 Objectifs Lobjectif est de découvrir comment modifier lergonomie ou le fonctionnement dune application, voire de lenrichir."— Transcription de la présentation:

1 1 Présentation rapide de VBA

2 2 Objectifs Lobjectif est de découvrir comment modifier lergonomie ou le fonctionnement dune application, voire de lenrichir de nouvelles fonctionnalités. Ce cours nest quune introduction.

3 3 Caractéristique de VBA VBA est un outil de développement orienté objet. –Les objets sont les éléments de votre application VBA et de ses documents. –Les objets Excel comprennent les cellules, les plages de cellules, les graphiques, les feuilles… Définition : –Un objet est un élément nommé ayant des Propriétés : paramètres que vous vérifier et modifier. Méthodes : actions que lobjet est capable deffectuer. Événements : choses qui arrivent à lobjet, auxquelles celui-ci peut répondre automatiquement par une action.

4 4 Programmation par événements Dans un langage traditionnel, vous pourriez écrire une application pour faire une tasse de café. 1.Remplir une bouilloire deau 2.Allumez le gaz 3.Mettez du café 4.Attendre ébullition 5.Versez eau Dans VB vous formuler les choses comme suit 1.Présenter du café, une bouilloire, du lait et une tasse à lutilisateur 2.Laisser lutilisateur faire son café Vous fournissez les codes pour gérer les événements. Ici lordre des événements est laissé à la discrétion de lutilisateur.

5 5 Exemple dutilisation du langage VB Créer une commande permettant denregistrer une selection de texte dans un fichier séparé. (Nexiste pas comme fonction de base dans Word) Travail : –Copier le texte sélectionné dans le presse papier, créer un nouveau document, coller le texte, puis enregistrer et fermer. Objectif : –Associer à un bouton de commande lensemble de ces étapes.

6 6 Exemple de code Public Sub denis() Selection.Range.Copy 'copie la selction dans le presse papier Documents.Add 'Crée un nouveau doc Selection.Range.Paste ' copie presse papier dans new doc Dialogs(wdDialogFileSaveAs).Show ' affiche boite de dialogue enregistrer sous ActiveDocument.Close 'ferme le new doc End Sub

7 7 Appel de Visual Basic Editor dans Excel

8 8 Faire apparaître le UserForm

9 9 Faire apparaître la fenêtre de propriétés Affichage/fenêtre de propriétés ou F4 ou icône Bouton de droite :

10 10 Boîte à outils Utiliser licône ou affichage/boîte à outils

11 11 Le UserForm Cette fenêtre présente les feuilles, les modules et tous les éléments qui constituent le projet Cette fenêtre donne accès aux propriétés dun contrôle (taille, couleur, …). Voici la boîte standard des composants prêts à être utilisés dans une feuille. _ Option button _ TextBox _ Frame _ Label _ Command Button _ … Voici la boîte standard des composants prêts à être utilisés dans une feuille. _ Option button _ TextBox _ Frame _ Label _ Command Button _ … La réalisation de la partie graphique dun projet Pour lancer lexécution

12 12 Création dun convertisseur Dollar Euro Travail à réaliser : 1.Créer linterface 2.Associer aux boutons des actions en fonction des événements Travail à réaliser : 1.Créer linterface 2.Associer aux boutons des actions en fonction des événements

13 13 1 création de linterface Ajouter des contrôle à la UserForm Vous pouvez modifier directement les propriétés de La Userform : Ex : Apparence/Caption = Convertion dollar Euro

14 14 Modification des propriétés dun bouton Dans Apparence : -Caption -> Calculer -Name-> CommandButtonCalculer

15 15 2 Création du code Public Function DollarToEuro(valeur%) As Integer DollarToEuro = valeur %* 0.9 End Function Private Sub CommandButtonQuitter_Click() End End Sub quitter Private Sub CommandButtonCalculer_Click() LbEuro.Caption = DollarToEuro(TxtDollard.Text) End Sub Calculer Aller dans : Affichage/code ou bouton/droite ou F7

16 16 Inserer un bouton dans la feuille pour afficher Userform

17 17 Ajouter le code

18 18 Autre exemple : Copier dune liste à lautre Clear : La liste2 est vidée de son contenu Init : Initialise la liste1 avec 20 éléments : Copie les données sélectionnées dans la liste1

19 19 Code Private Sub CmdCopie_Click() ListBox2.Clear For i% = 0 To (ListBox1.ListCount - 1) If (ListBox1.Selected(i%) = True) Then ListBox2.AddItem ListBox1.List(i%) End If Next i% End Sub > Private Sub Cmdinit_Click() ListBox1.Clear For i% = 1 To 20 ListBox1.AddItem Trim$(Str(i%)) + "- donnée" Next i% End Sub Init

20 20 Autre Exemple : avec excel Comment sélectionner une donnée à partir dune liste et la recopier dans une ligne dun tableau.

21 21 Autre Exemple : avec Excel Comment sélectionner une donnée à partir dune liste et la recopier dans une ligne dun tableau. Private Sub CommandButton1_Click() ComboBox1.Clear For i% = 1 To 10 ComboBox1.AddItem (Str(i%) + " data") Next i End Sub Private Sub CommandButton2_Click() Dim ind As Integer ind = ComboBox1.ListIndex Range("A" & ind + 1) = ComboBox1.List(ind) End Sub

22 22 Création de message davertissement Nous avons le choix entre procédure MsgBox et la fonction MsgBox Msg utilise trois arguments : 1.La chaîne à afficher 2.Les boutons et les icônes 3.Lintitulé de la boîte daffichage Exemple

23 23 Liste des constantes boutons Nom VBBouton affUtilisé pourValeur VbOnlyOkProcédure0 VbOnlycancelOk, AnnulerFonction1 VbAbortRetryIgnoreAbandon,répéter, ignorer Fonction2 vbYesNoCancelOui,Non, AnnulerFonction3 VbYesNOOui, nonFonction4 VbRetryCancelRépéter,AnnulerFonction5

24 24 Liste des constantes icônes NomVBIcônes affichéesValeur VbCriticalIcône dalerte16 VbQuestion?32 VbExclamation!48 VbInformationIcône information64

25 25 Exemple Private Sub CommandButton1_Click() MsgBox "attention aux entrées",0+64,"conversion" End Sub 0 64 Ok i

26 26 Valeur retournée Nom VBValeurDescription VbOK1OK VbCancel2Annuler VcAbort3Abandonner VbRetry4Réessayer VbIgnore5Ignorer VbYes6Oui VbNo7Non

27 27 Autre Exemple Private Sub CommandButton1_Click() Dim retour As Integer retour = MsgBox("Etes-vous sûr de vouloir quitter?", vbDefaultButton2, "Fermeture") If retour = 6 Then End End If End Sub

28 28 Référence à des cellules et des plages Une des tâches courantes dans l'utilisation de Visual Basic consiste à spécifier une cellule ou une plage de cellules, puis d'y effectuer des actions comme saisir une formule ou modifier le format. Il existe une instruction permettant à la fois d'identifier la plage et de modifier une propriété ou d'appliquer une méthode. Un objet Range de Visual Basic peut être soit une seule cellule soit une plage de cellules.

29 29 Comment référencer des cellules ? RéférenceSignification Range("A1") Cellule A1 Range("A1:B5") Cellules A1 à B5 Range("C5:D9,G9:H16") Sélection multi-zones Range("A:A") Colonne A Range("1:1") Ligne 1 Range("A:C") Colonnes A à C Range("1:5") Lignes 1 à 5 Range("1:1,3:3,8:8") Lignes 1, 3 et 8 Range("A:A,C:C,F:F") Colonnes A, C et F

30 30 Exemple La procédure Sub suivante montre comment affecter le style gras à la plage A1:D5 et lui affecter le texte « coucou » Sub FormatRange() Workbooks("Book1").Sheets("Sheet1"). Range("A1:D5").Font.Bold = True Workbooks("Book1").Sheets("Sheet1"). Range("A1:D5").Value= "Coucou" End Sub

31 31 Référence à des cellules par le numéro d'index Vous pouvez utiliser la propriété Cells pour faire référence à une seule cellule à l'aide des numéros d'index de ligne et de colonne. Cette propriété renvoie un objet Range qui représente une seule cellule.Cells La propriété Cells est efficace pour effectuer des boucles sur une plage de cellules car vous pouvez substituer des variables aux numéros d'index

32 32 Exemple Sub EnterValue() Worksheets("Feuil1").Cells(6, 1).Value = 10 End Sub Sub CycleThrough() Dim counter As Integer For counter = 1 To 20 Worksheets("feuil1").Cells(counter, 3).Value = counter Next counter End Sub

33 33 Référence à des cellules à l'aide d'un objet Range Si vous affectez une variable objet à un objet Range, vous pouvez aisément manipuler la plage en utilisant le nom de la variable. La procédure suivante montre comment créer la variable objet maPlage puis l'affecter à la plage A1:D5 de la feuille Sheet1 du classeur actif. Les instructions suivantes modifient les propriétés de la plage en remplaçant l'objet Range par le nom de la variable. Sub Random() Dim myRange As Range Set myRange = Worksheets("Sheet1").Range("A1:D5") myRange.Formula = "=RAND()" myRange.Font.Bold = True End Sub

34 34 Syntaxe VisualBasic Range("C23").Select ActiveCell.FormulaR1C1 = "=RC[-2]+RC[-1]" ActiveCell.FormulaR1C1 = "=RC[-5]+R23C2" RiCj Référence absolue R[+-i]C[+-j]Par rapport à la cellule sélectionnée à droite (+) ou à gauche (-) de i case(s) et en bas(+) ou en haut (-) de j case(s).

35 35 Exemple Sub ref() ' ' ref Macro ' Macro enregistrée par DUPONT ' Range("D23").Select ActiveCell.FormulaR1C1 = "=R23C23+ R[-2]C" Selection.AutoFill Destination:=Range("D23:D28"), Type:=xlFillDefault End Sub AutoFill exécute une recopie incrémentée sur les cellules de la plage Spécifiée. Destination Objet Range obligatoire. Les cellules à remplir. La destination doit inclure la plage source. Type Argument de type Variant facultatif. Spécifie le type de recopie incrémentée.

36 36 Sélection et activation de cellules Lorsque vous utilisez Microsoft Excel, vous sélectionnez généralement une ou plusieurs cellules puis exécutez une action telle que la mise en forme des cellules ou l'affectation d'une valeur à ces cellules. Avec Visual Basic, il n'est en général pas nécessaire de sélectionner les cellules avant de les modifier.

37 37 Exemple Si vous voulez entrer une formule dans la cellule D6 avec Visual Basic, il est inutile de sélectionner cette cellule. Renvoyez simplement l'objet Range puis affectez votre formule à la propriété Formula. Sub EnterFormula() Worksheets("Sheet1").Range("D6").Formula="=SUM(D2:D5)" End Sub

38 38 Utilisation de la méthode Select La méthode Select active des feuilles et des objets dans des feuilles. La propriété Selection renvoie un objet qui représente la sélection en cours dans la feuille active du classeur actif. Avant d'utiliser la propriété Selection, vous devez activer un classeur, activer ou sélectionner une feuille, puis sélectionner une plage (ou un autre objet) à l'aide de la méthode Select. L'enregistreur de macro crée souvent des macros utilisant la méthode Select et la propriété Selection.

39 39 Exemple Sub Macro1() Sheets("Sheet1").Select Range("A1").Select ActiveCell.FormulaR1C1 = "Name" Range("B1").Select ActiveCell.FormulaR1C1 = "Address" Range("A1:B1").Select Selection.Font.Bold = True End Sub Procedure équivalente : Sub Labels() With Worksheets("Sheet1").Range("A1") = "Name".Range("B1") = "Address".Range("A1:B1").Font.Bold = True End With End Sub

40 40 Sélection de cellules sur la feuille de calcul active Si vous utilisez la méthode Select pour sélectionner des cellules, n'oubliez pas que Select ne fonctionne que sur la feuille de calcul active. Si vous lancez votre procédure Sub à partir du module, la méthode Select échoue à moins que votre procédure n'active la feuille de calcul avant d'utiliser la méthode Select sur une plage de cellules. Sub CopyRow() Worksheets("Sheet1").Rows(1).Copy Worksheets("Sheet2").Select Worksheets("Sheet2").Rows(1).Select Worksheets("Sheet2").Paste End Sub

41 41 Machine à calculer

42 42 Dim va As Integer Dim vb As Integer Private Sub CommandButton1_Click() TextBox1.Text = TextBox1.Text & 1 End Sub Private Sub CommandButton2_Click() TextBox1.Text = TextBox1.Text & 2 End Sub

43 43 code Private Sub CommandButton3_Click() TextBox1.Text = TextBox1.Text & 6 End Sub Private Sub CommandButton4_Click() va = TextBox1.Text TextBox1.Text = "" End Sub Private Sub CommandButton5_Click() vb = TextBox1.Text va = va * vb TextBox1.Text = va End Sub Private Sub CommandButton6_Click() va = 0 vb = 0 TextBox1.Text = "" End Sub

44 44 TD : Création dun agenda

45 45 code Private Sub Calendar_Click() UserForm1.Label1.Caption = Calendar.Value Label3.Caption = Calendar.Value End Sub Private Sub CommandButton1_Click() If CommandButton1.Caption = "CalVisible" Then Calendar.Visible = True CommandButton2.Visible = True CommandButton1.Caption = "CalInvisible" Else Calendar.Visible = False CommandButton2.Visible = False CommandButton1.Caption = "CalVisible" End If End Sub Private Sub CommandButton2_Click() UserForm1.Show End Sub


Télécharger ppt "1 Présentation rapide de VBA. 2 Objectifs Lobjectif est de découvrir comment modifier lergonomie ou le fonctionnement dune application, voire de lenrichir."

Présentations similaires


Annonces Google