| | Chapitre 2 | |
| | Author | Message |
---|
Blind Dragon Perl encoder
Number of posts : 341 Age : 32 Localisation : Here, as usual Emploi : Admin. Registration date : 2007-05-13
| Subject: Chapitre 2 Wed Jun 27, 2007 6:39 am | |
| Chapitre 2 : objets, proprietes et methodes
Objets et collections d'objets
VB est un langage oriente objets. Pour ce langagem tous les elements d'Excel sont des objets. Il existe une hierarchie entre les objets. Par exemple, l'objet Application contient des classeurs, qui eux-memes contiennent des feuilles de calcul,qui elles-memes contiennent des plages de cellules. Chaque groupe d'objets de meme type est appele "collection". Chaque objet dans une collection porte un numero ou un nom. On accede aux objets avec ce numero ou ce nom. Par exemple, la premiere feuille d'un classeur est accessible par Sheets(1) ou Sheets("Feuil1"). [Objet et collection d'objets portent le meme nom, seul le S final permet de les distinguer (une Sheet, une collection de Sheets).] -Tapez Ctrl F11 pour inserer une nouvelle feuille -Cliquez le menu Fenetre 2 Classeur2.xls -Cliquez le menu Outils Macro Nouvelle macro -Cliquez sur OK pour accepter le nom Macro2 -Cliquez le menu Fenetre 1 MACRO.XLS -Cliquez sur l'onglet Feuil1 -Cliquez la cellule A1 pour la selectionner -Cliquez Arreter l'enregistrement -Cliquez le menu Outils Macro Macros -Cliquez Classeur2.xls!Macro2 dans la liste Nom de la macro puis cliquez Modifier La premiere ligne active la fenetre contenant le classeur Macro.xls a l'interieur de la collection des fenetres. La seconde ligne selectionne la feuille Feuil1 a l'interieur de la collection des feuilles disponibles. La derniere ligne selectionne la plage de cellules A1. Pour VB, une cellule n'est pas un objet. C'est l'objet Range qui designe les cellules d'une feuille de calcul, meme si cette plage fait reference a une cellule unique.
Organisation des modules
La partie de gauche de la fenetre Visual Basic affiche la liste des objets et des modules des classeurs ouverts. -Double-cliquez <odule1 dans l'arborescence du classeur Macro.xls La fenetre Macro.xls – Module1 affiche les procedures de ce classeur. Les macros sont visibles une a une ou les unes a la suite des autres. -Cliquez Affichage complet du module en bas a gauche de la fenetre Macros.xls – Module1 | |
| | | Blind Dragon Perl encoder
Number of posts : 341 Age : 32 Localisation : Here, as usual Emploi : Admin. Registration date : 2007-05-13
| Subject: Re: Chapitre 2 Wed Jun 27, 2007 6:40 am | |
| Types d'objets
Objet Application L'objet Application represente l'ensemble de l'application, c'est-a-dire Excel. Cet objet permet d'acceder aux objets actifs ActiveWorkbook (classeur actif), ActiveSheet (feuille active), ActiveCell (cellule active), etc. Il donne aussi acces aux fonctions Excel qui ne sont pas disponibles dans VB. Pour notre fonction PerimetreCercle nous avons utilise la valeur 3,14159 car Pi() n'est pas une fonction VB alors qu'elle existe dans Excel. -Utilisez la barre de defilement verticale pour voir la fonction PerimetreCercle -Remplacez 3,14159 par Application.Pi(). Ne validez pas avec ¿ pour eviter d'ajouter la proposition PivotSelection -Tapez Alt ⇆ pour revenir a la Feuil1. -Remplacez le 5 dans la formule de la cellule A2 par 7 ¿ Bien souvent l'objet Application est implicite. Il est donc inutile de le preciser. Par exemple, Application.ActiveSheet equivaut a ActiveSheet.
Objet Workbook L'objet Workbook represente un classeur ouvert dans l'application. La collection Workbooks permet d'acceder a tous les classeurs ouverts. Comme un classeur peut etre ouvert dans plusieurs fenetres differentes, les classeurs sont aussi accessibles par la collection d'objets Windows.
Objet Sheet La collection d'objets Sheets represente toutes les feuilles d'un classeur quel que soit leur type. On peut aussi acceder aux feuilles graphiques avec la collection d'objets Charts et aux macros Excel 4 avec la collection Excel4MacroSheet.
Objet Range L'objet Range designe une cellule, une selection de cellules, une selection multiple, une ligne, une colonne, un groupe de lignes ou un groupe de colonnes. Cet objet permet d'acceder au contenu des cellules et a leur mise en forme.
Autres objets Tous les autres elements d'Excel non cites sont aussi des objets. C'est le cas des controles (boutons de commande, listes deroulantes, etc.), des objets dessines (lignes, cercles, etc.) et des objets incorpores (objets OLE, graphiques, etc.).
Acces aux objets
On accede aux objets Excel avec VB en donnant leur nom a l'interieur d'une collection ou les references des cellules pour l'objet Range. -Enregistrez et fermez le classeur MACRO.XLS -Cliquez Microsoft Visual Basic dans la barre des taches | |
| | | Blind Dragon Perl encoder
Number of posts : 341 Age : 32 Localisation : Here, as usual Emploi : Admin. Registration date : 2007-05-13
| Subject: Re: Chapitre 2 Wed Jun 27, 2007 6:40 am | |
| -Tapez Ctrl Fin pour placer le curseur a la fin du module Classeur2 -Tapez Sub Macro3() ¿ -Tapez ⇆ sheets("Feuil1").select ¿ La selection d'une feuille permet d'appliquer des modifications aux cellules de cette feuille. Sans la selection, les modifications s'appliqueraient aux cellules de la feuille active. Si la feuille active n'est pas une feuille de calcul (un graphique par exemple), VB genere une erreur d'execution quand on tente de modifier des cellules. -Tapez range("A1:B3").select ¿ La selection d'une plage permet de modifier en meme temps toutes les cellules de cette plage.
Proprietes et methodes
Pour comprendre les proprietes et les methodes, comparons-les avec un objet de la vie courante : une voiture. Cette voiture possede des proprietes precises, comme sa couleur ou la taille de son moteur. Pour modifier sa couleur en langage VB, il suffirait d'ecrire : Voiture.Couleur = Vert Ici l'objet est represente par Voiture et la propriete a modifier par Couleur. Vert est la nouvelle valeur de la propriete Couleur. Nous pouvons aussi appliquer a notre voiture des methodes comme "debrayer" ou "passer une vitesse". Pour debrayer en langage VB, il suffirait d'ecrire : Voiture.Debrayer Une methode est donc une action que l'on applique a un objet. Dans notre exemple, on applique la methode Debrayer a l'objet Voiture. Certaines methodes necessitent des parametres. Pour passer la troisieme vitesse en langage VB, il suffirait d'ecrire : Voiture.PasserVitesse(3)
Proprietes des objets
Les proprietes definissent les caracteristiques des objets. Chaque objet possede une ou plusieurs proprietes, parfois aucune. Pour connaitre les proprietes d'un objet, vous devez consulter l'aide en ligne.
Modifier les proprietes des objets Le contenu d'une cellule est determine par la propriete Formula. Modifions cette propriete pour une plage de cellules. -Tapez range("A1:B3").formula = "Excel 97" ¿ Comme notre plage designe plusieurs cellules, toutes les cellules contiendront le meme texte. Nous avons selectionne precedemment notre plage de cellules, il n'est donc plus necessaire de la preciser a chaque nouvelle ligne du code VB. Nous utilisons alors la propriete Selection de l'objet Application. Cette propriete retourne les references de l'objet selectionne (ici la plage A1:B3). | |
| | | Blind Dragon Perl encoder
Number of posts : 341 Age : 32 Localisation : Here, as usual Emploi : Admin. Registration date : 2007-05-13
| Subject: Re: Chapitre 2 Wed Jun 27, 2007 6:41 am | |
| La propriete RowHeight definit en points la hauteur des lignes. -Tapez selection.rowheight = 40 ¿
Methodes des objets
Les methodes appliquent des actions aux objets. Chaque objet possede une ou plusieurs methodes, parfois aucune. Comme pour les proprietes, utilisez l'aide en ligne pour connaitre les methodes applicables a un objet.
Appliquer des methodes aux objets Pour appliquer une methode sans argument, il suffit d'ajouter le nom de la methode au nom de l'objet, en separant les deux par un point. Demandons un apercu avant impression de la plage selectionnee. -Tapez selection.printpreview ¿
Arguments et arguments nommes Pour definir les arguments des methodes, il existe deux solutions. Prenons comme exemple la methode AutoFormat. 1re solution La methode AutoFormat de l'objet Range possede sept arguments. Le premier definit le type de format automatique. C'est un argument obligatoire. Les six autres indiquent si la mise en forme doit etre appliquee (nombre, police, alignement, etc., comme dans la boite de dialogue Mise en forme automatique). Ces arguments sont facultatifs. Si on desire preciser seulement le septieme argument, il faut encadrer de vurgules tous les arguments non definis jusqu'a l'argument final. La syntaxe serait alors : Range("A1:B3").AutoFormat xlRangeAutoFormatColor2, , , , , , False 2e solution Chaque argument possede un nom. On les appelle des arguments nommes. L'ordre dans lequel ils apparaissent n'a plus d'importance. On les separe de la valeur de l'argument par les signes deux points et egal. Les parentheses sont supprimees. Les arguments sont separes par des points virgules. Range("A1:B3").AutoFormat Format:=xlRangeAutoFormatColor2, Width:=False -Tapez Selection.AutoFormat Format:=xlRangeAutoFormatColor2, Width:=False
Executer une procedure a partir d'un module
-Cliquez dans n'importe quelle ligne de la procedure Macro3 -Cliquez le menu Execution Executer Sub/UserForm ou -Appuyez sur F5 ou | |
| | | Blind Dragon Perl encoder
Number of posts : 341 Age : 32 Localisation : Here, as usual Emploi : Admin. Registration date : 2007-05-13
| Subject: Re: Chapitre 2 Wed Jun 27, 2007 6:41 am | |
| -Cliquez Executer Sub/UserForm dans la barre d'outils La procedure selectionne la feuille de calcul Feuil1, modifie la hauteur des trois premieres lignes et affiche un apercu avant impression de la plage A1:B3. -Cliquez sur Fermer pour fermer l'apercu avant impression -Cliquez Affichage Microsoft Excel dans la barre d'outils La procedure a applique un format automatique sans modifier la largeur des colonnes ou la hauteur des lignes (argument Width). -Enregistrez le classeur sous le nom Macro2.xls -Fermez le classeur Macro2.xls | |
| | | Sponsored content
| Subject: Re: Chapitre 2 | |
| |
| | | | Chapitre 2 | |
|
| Permissions in this forum: | You cannot reply to topics in this forum
| |
| |
| |