Présentation rapide de VBA

Slides:



Advertisements
Présentations similaires
Produit Gammes Nomenclatures Modules Techniques Prix de Revient Prix de Vente Modules Techniques Client Marges Mise en route Temps Unitaire Prix (Ex:
Advertisements

Microsoft Excel LibreOffice Calc
Portée des variables VBA & Excel
Eléments visuels. 2009/2010L3-Eco - Université de Bordeaux2 Les feuilles La feuille : cest le cadre dans lequel tous les autres éléments (visuels) dune.
Story-board version 1.1 Statut : à valider Rédacteur : Nicole Djuissi
Cours MIAGE « Architectures Orientées Services » Henry Boccon-Gibod 1 Architectures Orientées Services Composants de Service Exemple pratique de développement.
Vocabulaire pour la passage du modèle conceptuel des données au modèle relationnel des données. MCDMRD EntitéTable PropriétésChamps, attribut IdentifiantClé
Cours n°2M2. IST-IE (S. Sidhom) UE 303 Promo. M2 IST-IE 2005/06 Conception dun système d'information multimédia Architecture trois-tiers : PHP/MySQL &
Excel.
Excel. Utilisation possible d un tableur Tenir ses comptes personnels : salaires, impôts, dépenses et recettes diverses... Tenir les comptes d'une (petite)
Structuration d'une feuille de calcul (1) : facture 1.
! 1 CREATION D'UNE MAQUETTE EXPORT / IMPORT
FORMATION OUTILS « FONCTIONS »
TP 2 : Nos premières macros
L ’événement CHANGE est détecté par Vba dès qu ’un caractère est saisi ( ou tapé) dans l ’objet TextBox. Par contre l ’événement AFTERUPDATE laisse le.
Autorisations Utilisation eCATT
La fonction Style Permet de créer des types de texte, par exemple
Principe de défilement du document dans un traitement de texte
Les TABLEAUX Retour au menu principal.
Les requêtes La Requête est une méthode pour afficher les enregistrements qui répondent à des conditions spécifiques. La requête est donc un filtre.
PRÉSENTATION Logiciel de traitement de texte:
Par Fabrice Pasquier Cours III
Générique d’initiales.
Page 1 Introduction à ATEasy 3.0 Page 2 Quest ce quATEasy 3.0? n Ensemble de développement très simple demploi n Conçu pour développer des bancs de test.
Microsoft Excel Avancé
Par Fabrice Pasquier Cours IV
44 Contrôle du déroulement du programme. 4-2 Objectifs A la fin de ce cours, vous serez capables de : Utiliser les constructions de prise de décision.
Traitement de textes WinWord 3 e année Sciences économiques, de gestion et commerciales Présenté par NEHAR Attia.
CLUB DES UTILISATEURS SAS DE QUÉBEC
1 Guide de lenseignant-concepteur Vincent Riff 27 mai 2003.
Mode plan – Table des matières
Introduction à linformatique en gestion 1 Plan de cours Le tableur Lécran Commandes sur les classeurs Les feuilles de calcul La saisie et la.
Publispostage Menu Outils / Lettres et publipostage
A la découverte de la bureautique et des fichiers.
Académie de Créteil - B.C Quest-ce quune Inscription 1)1 action + 1 stagiaire + 1 client 2)Parcours individuel (avec son Prix de Vente) 3)Un financement.
F Copyright © Oracle Corporation, Tous droits réservés. Créer des programmes avec Procedure Builder.
FICHIERS : Définition : Algorithme général:
Support d’accompagnement de l’atelier Excel – les bases
1. 2 PLAN DE LA PRÉSENTATION - SECTION 1 : Code HTML - SECTION 2.1. : CSS (Méthode 1) - SECTION 2.2. : CSS (Méthode 2) - SECTION 3 : JavaScript - SECTION.
Initiation aux bases de données et à la programmation événementielle

Université Ibn Zohr Faculté des Sciences Economiques et Sociales Notes de cours VBA E. Belahmidi 2007/2008.
Création et présentation d’un tableau avec Word 2007
LES PILES ET FILES.
Introduction Ateliers VBA Cours n°1 – Création d’Interfaces Cours n°2 – Téléchargement de données Cours n°3 – Codage.
PROGRAMMATION INFORMATIQUE D’INGÉNIERIE II PRO-1024.
Représentations graphiques I- Création d’un graphique
DYALOG APL 2006 APL / OLE / Excel / Word : Dyalog APL chef d’orchestre ! 91, rue du Fb St Honoré PARIS tél. : Fax :
1 Formation à l’usage éco-performant de votre pc 1 ère Partie.
Programmation événementielle
Introduction à l’informatique en gestion 1 Plan de la leçon Compagnon office Sections et Mise en page En-têtes et pieds de page Notes de bas.
PROGRAMMATION INFORMATIQUE D’INGÉNIERIE II
Créer des packages.
Lancement de Microsoft Word
Macros Visual Basic sur Excel
Tableur 1.Concept : Un tableur permet de manipuler des données, de le présenter, de les trier et d'effectuer automatiquement des calculs sur des nombres.
Informatique de Gestion part I – Macro begins
Informatique de Gestion part II – the dark macro
Une aide pour débutant éclairé
Conception des pages Web avec
QCM VBA.
Initiation aux bases de données et à la programmation événementielle
Utilisation des formules de base
Flash MX – Séance 2 Interactions & ActionScript David Rapin Si28 P06.
Formation.
CRÉER UNE MACRO SUR EXCEL 2003 POUR COLORER UN TABLEAU Réalisation – Aude Douls.
© Fujitsu Canada Introduction à Minitab Version 14 - Anglais Formation Black Belt Lean Six Sigma.
Algorithmes sur Open Office. 1. Ouvrir Visual Basic de Open Office.
1 Tableur Excel. 2 Introduction Un tableur est un logiciel permettant de manipuler des données numériques et d'effectuer automatiquement des calculs sur.
Présentation Excel Microsoft Excel est le tableur de la suite bureautique propriétaire « Office System ». Développé pour les plateformes Windows et Macintosh.
Transcription de la présentation:

Présentation rapide de VBA

Objectifs L’objectif est de découvrir comment modifier l’ergonomie ou le fonctionnement d’une application, voire de l’enrichir de nouvelles fonctionnalités. Ce cours n’est qu’une introduction.

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 l’objet est capable d’effectuer. Événements : choses qui arrivent à l’objet, auxquelles celui-ci peut répondre automatiquement par une action.

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

Exemple d’utilisation du langage VB Créer une commande permettant d’enregistrer une selection de texte dans un fichier séparé. (N’existe 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 l’ensemble de ces étapes.

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

Appel de Visual Basic Editor dans Excel

Faire apparaître le UserForm

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 :

Boîte à outils Utiliser l’icône ou affichage/boîte à outils

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

Création d’un convertisseur Dollar Euro Travail à réaliser : Créer l’interface Associer aux boutons des actions en fonction des événements

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

Modification des propriétés d’un bouton Dans Apparence : Caption -> Calculer Name -> CommandButtonCalculer

2 Création du code Aller dans : Affichage/code ou bouton/droite ou F7 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

Inserer un bouton dans la feuille pour afficher Userform

Ajouter le code

Autre exemple : Copier d’une liste à l’autre 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

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

Autre Exemple : avec excel Comment sélectionner une donnée à partir d’une liste et la recopier dans une ligne d’un tableau.

Autre Exemple : avec Excel Comment sélectionner une donnée à partir d’une liste et la recopier dans une ligne d’un 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)

Création de message d’avertissement Nous avons le choix entre procédure MsgBox et la fonction MsgBox Msg utilise trois arguments : La chaîne à afficher Les boutons et les icônes L’intitulé de la boîte d’affichage Exemple 3 1 2

Liste des constantes boutons Nom VB Bouton aff Utilisé pour Valeur VbOnly Ok Procédure VbOnlycancel Ok, Annuler Fonction 1 VbAbortRetryIgnore Abandon,répéter, ignorer 2 vbYesNoCancel Oui,Non, Annuler 3 VbYesNO Oui, non 4 VbRetryCancel Répéter,Annuler 5

Liste des constantes icônes NomVB Icônes affichées Valeur VbCritical Icône d’alerte 16 VbQuestion ? 32 VbExclamation ! 48 VbInformation Icône information 64

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

Valeur retournée Nom VB Valeur Description VbOK 1 OK VbCancel 2 Annuler VcAbort 3 Abandonner VbRetry 4 Réessayer VbIgnore 5 Ignorer VbYes 6 Oui VbNo 7 Non

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

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.

Comment référencer des cellules ? Référence Signification 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

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

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. 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

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

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

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).

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.

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.

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

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.

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

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

Machine à calculer

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

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

TD : Création d’un agenda

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 Private Sub CommandButton2_Click() UserForm1.Show