Professional Documents
Culture Documents
6/28/12
sous-titres du masque
Lobjet Application
Cet objet reprsente l'application Excel. Il est l'objet parent de tous les autres, et contient des proprits, mthodes et vnements trs intressants, que nous allons regarder maintenant.
6/28/12
Evnements
Lobjet Application dispose de 31 vnements qui sont rarement utiliss, car inaccessibles. On prfre grer les vnements au niveau des autres objets Pour pouvoir les utiliser, nous devons ajouter la ligne de code suivante
ActiveCell : cellule active ActiveChart: Graphique actif ActivePrinter: Imprimante par dfaut ActiveSheet: feuille active ActiveWorkbook: le classeur actif
Selection: la slection (peut ne pas Ces proprits sont accessibles directement (comme tre des cellules, utiliser typename) 6/28/12
q
La mthode Evaluate
Utilise pour valuer des formules 1. Sub IsActiveCellVide() Dim sFunctionName As String, sCellReference As String sNomFonction = ISBLANK sCellule= ActiveCell.Address MsgBox Evaluate(sNomFonction & ( & sCellule & )) End Sub 2. [A1].Value =11 3. Range(Evaluate("B2").Value)=14
6/28/12
La mthode InputBox
VBA comme on vient de lavoir possde une fonction InputBox (son inconvnient?) . La mthode InputBox de lobjet Application est une alternative. On spcifie le type.
6/28/12
La proprit StatusBar
Utilise pour afficher une information dans la barre dtat dExcel. Il convient de lutiliser pour informer lutilisateur de ltape de traitement. Surtout lorsque la macro est trs longue (un temps dexcution considrable!) Sub MontrerMessage() Dim Compteur As Long For Compteur = 0 To 100000000 If Compteur Mod 1000000 = 0 Then Application.StatusBar = Traitement du nombre & Compteur End If Next Application.StatusBar = False End Sub
6/28/12
La mthode OnTime()
Utilise pour programmer lexcution dune macro dans un temps futur Application.OnTime Date + TimeSerial(15, 0, 0), MontrerMessage Pour annuler une macro programme: Application.OnTime Date + TimeSerial(15, 0, 0), MontrerMessage, ,False
La mthode OnKey()
Lance une macro en rponse un appuie sur une touche clavier Atelier: Essayez de changer le fonctionnem { }ent 6/28/12 normal associ lappuie sur la touche bas du
La Collection WorkBooks
Cet objet reprsente tous les classeurs ouverts. Cette collection nous servira pour crer dautres classeurs sans devoir en instancier, Excel sen chargera.
Dim classeur as Workbook, wkb1 as Workbook Set classeur = Workbooks.add Set wkb1 = 6/28/12 Workbooks.Open(Filename:=C:\Data\SalesData1.xl
Lobjet Workbook
Cet objet reprsente un classeur Excel.
Les mthodes utilises sont: Open, Save, SaveAs: pour ouvrir, sauvegarder et faire une copie respectivement Close pour fermer le classeur. Dim classeur as Workbook, wkb1 as Workbook Set classeur = Workbooks.add ActiveCell.value =19 Classeur.close(SaveChanges:=True) Atelier: Crer un classeur et enregistrez-le dans le disque (C:) sous le nom essai.xlsx. Crez ensuite dans un autre classeur une macro qui lenregistre sous le mme nom. ? Consulter laide dExcel sur la proprit (saved) de lobjet 6/28/12 workbook.
La Collection WorkSheets
Toutes les feuilles de calcul dun classeur. Pour faire rfrence une feuille particulire, vous pouvez soit utiliser 1. lindex de la feuille (lindex de la premire feuille est 1) 2. Par son Nom NB. Il faut faire attention lors de lutilisation de la mthode de lindex: Worksheets renvoie lindex dans la collection Sheets. Dim feuille1 as Worksheet, feuille2 as Worksheet
6/28/12
Lobjet WorkSheet
Reprsente une feuille de calcul -----Copy and Move :Copier, dplacer et coller -----Comment slectioner plusieurs feuilles la fois?
6/28/12
Lobjet Range
Reprsente une plage de cellule, lobjet Range est de loin celui que vous allez utiliser le plus souvent. Nb: une plage peut ne pas tre contige (voir la proprit Areas)
Suite.
Il faut prfrer de qualifier les plages en spcifiant les feuilles voire les classeurs
Worksheets(feuil1).Range(C10) Workbooks(Sales.xls).Worksheets(Sheet1).Ran ge(C10)
Atelier: Consolidez les donnes de deux classeurs, utiliser lobjet 6/28/12 WorksheetFunction
La proprit Cells
Range(B11).Cells(4,4)=? Range(D10:E11)(2)=? Range(D10:E11)(3)=? Range(D10:E11)(5) = ?
6/28/12
La proprit Offset
Cette proprit est similaire Cells Deux diffrences: . Range(Case).offset(0,0) = Range(Case).Cells(1,1) . Offset renvoie une plage de taille identique la plage de dpart, alors que Cells renvoie toujours une seule cellule.
6/28/12
La proprit SpecialCells
Rcupre les cellules qui ont des commentaires, qui contiennent des formules, des constantes, au choix!. Appuyer sur F5 pour voir les diffrents possibilits Chercher pour la mthode SpecialCells dans lexplorateurtoutes les cellules qui Atelier: Chercher dObjets.
contiennent des nombres et videz-les de leurs contenus!, ne supprimez6/28/12 les pas contenus date!
6/28/12