26
01/03/08 1 Les objets Excel

Les objets Excel - Espace Libre le site de la LIG - Page …tondeur.herve.free.fr/docs/6-Les-objets-Excel.pdf · 2010-08-29 · L'exemple suivant montre comment créer un objet classeur

Embed Size (px)

Citation preview

Page 1: Les objets Excel - Espace Libre le site de la LIG - Page …tondeur.herve.free.fr/docs/6-Les-objets-Excel.pdf · 2010-08-29 · L'exemple suivant montre comment créer un objet classeur

01/03/08 1

Les objets Excel

Page 2: Les objets Excel - Espace Libre le site de la LIG - Page …tondeur.herve.free.fr/docs/6-Les-objets-Excel.pdf · 2010-08-29 · L'exemple suivant montre comment créer un objet classeur

01/03/08

-Les propriétés servent à décrire un objet :

Syntaxe : <Nom Objet>.propriété=valeur

Page 3: Les objets Excel - Espace Libre le site de la LIG - Page …tondeur.herve.free.fr/docs/6-Les-objets-Excel.pdf · 2010-08-29 · L'exemple suivant montre comment créer un objet classeur

01/03/08

Objet Application

Représente l'application Microsoft Excel complète. L'objet Application contient :

Les options et paramètres de l'application (par exemple, de nombreuses options de la boîte de dialogue Options (menu Outils)).

Méthodes renvoyant des objets de niveau supérieur tels que ActiveCell, ActiveSheet, etc.

Utilisation de l'objet Application

Utilisez la propriété Application pour renvoyer l'objet Application. L'exemple suivant montre comment appliquer la propriété Windows à l'objet Application.Application.Windows("book1.xls").Activate L'exemple suivant montre comment créer un objet classeur Microsoft Excel dans une autre application, puis comment ouvrir un classeur dans Microsoft Excel.

Set xl = CreateObject("Excel.Sheet") xl.Application.Workbooks.Open "newbook.xls"

Page 4: Les objets Excel - Espace Libre le site de la LIG - Page …tondeur.herve.free.fr/docs/6-Les-objets-Excel.pdf · 2010-08-29 · L'exemple suivant montre comment créer un objet classeur

01/03/08

Objet WorkBookReprésente un classeur Microsoft Excel. L'objet Workbook est un membre de la collection Workbooks. La collection Workbooks contient tous les objets Workbook actuellement ouverts dans Microsoft Excel.

Utilisation de l'objet Workbook

Propriété Workbooks

Pour renvoyer un seul objet Workbook, spécifiez Workbooks(index), index étant le numéro d'index ou le nom du classeur. L'exemple suivant montre comment activer le classeur 1.Workbooks(1).Activate Le numéro d'index indique l'ordre dans lequel les classeurs ont été ouverts ou créés. Workbooks(1) est le premier classeur créé et Workbooks(Workbooks.Count) le dernier. Le fait d'activer un classeur ne modifie pas son numéro d'index. Tous les classeurs sont inclus dans le comptage d'index, même lorsqu'ils sont cachés.

La propriété Name renvoie le nom du classeur. Cette propriété ne peut pas être utilisée pour définir le nom. Si vous souhaitez modifier le nom, utilisez la méthode SaveAs pour enregistrer le classeur sous un autre nom. L'exemple suivant montre comment activer la feuille « Sheet1 » dans le classeur intitulé « Cogs.xls » (le classeur doit déjà être ouvert dans Microsoft Excel).Workbooks("cogs.xls").Worksheets("sheet1").Activate Propriété ActiveWorkbook

La propriété ActiveWorkbook renvoie le classeur actif. L'exemple suivant définit le nom de l'auteur dans le classeur actif.ActiveWorkbook.Author = "Jean Selva" Propriété ThisWorkbook

La propriété ThisWorkbook renvoie le classeur dans lequel le code Visual Basic est exécuté. Il s'agit généralement du classeur actif. Toutefois, si le code Visual Basic fait partie d'une macro complémentaire, la propriété ThisWorkbook ne renverra pas le classeur actif. Dans ce cas, le classeur actif est celui appelant la macro complémentaire, alors que la propriété ThisWorkbook renvoie le classeur de la macro complémentaire.

Page 5: Les objets Excel - Espace Libre le site de la LIG - Page …tondeur.herve.free.fr/docs/6-Les-objets-Excel.pdf · 2010-08-29 · L'exemple suivant montre comment créer un objet classeur

01/03/08

Représente une feuille de calcul. L'objet Worksheet est un membre de la collection Worksheets. La collection Worksheets contient tous les objets Worksheet d'un classeur.

Utilisation de l'objet Worksheet

Propriété Worksheets

Pour renvoyer un seul objet Worksheet, spécifiez Worksheets(index), index étant le nom ou le numéro d'index de la feuille de calcul. L'exemple suivant montre comment masquer la feuille de calcul 1 dans le classeur actif.Worksheets(1).Visible = False Le numéro d'index de la feuille de calcul indique sa position dans la barre d'onglets du classeur. Worksheets(1) est la première feuille du classeur (la plus à gauche) et Worksheets(Worksheets.Count) la dernière. Toutes les feuilles de calcul sont incluses dans le comptage d'index, même lorsqu'elles sont masquées.

Le nom de la feuille de calcul apparaît sur l'onglet correspondant. Utilisez la propriété Name pour définir ou renvoyer le nom de la feuille de calcul. L'exemple suivant montre comment protéger les scénarios dans la feuille « Sheet1 ».Worksheets("sheet1").Protect password:="drowssap", scenarios:=True L'objet Worksheet est également un membre de la collection Sheets. La collection Sheets contient toutes les feuilles du classeur (à la fois les feuilles graphiques et les feuilles de calcul).

Propriété ActiveSheet

La propriété ActiveSheet permet de faire référence à une feuille de calcul lorsqu'il s'agit de la feuille active. L'exemple suivant montre comment utiliser la méthode Activate pour activer la feuille « Sheet1 », puis sélectionner l'orientation Paysage et imprimer la feuille de calcul.Worksheets("sheet1").Activate ActiveSheet.PageSetup.Orientation = xlLandscape ActiveSheet.PrintOut

Objet WorkSheet

Page 6: Les objets Excel - Espace Libre le site de la LIG - Page …tondeur.herve.free.fr/docs/6-Les-objets-Excel.pdf · 2010-08-29 · L'exemple suivant montre comment créer un objet classeur

01/03/08

Objet RangeReprésente une cellule, une ligne, une colonne ou une sélection de cellules contenant un ou plusieurs blocs contigus de cellules ou une plage 3D.

Propriété RangePour renvoyer un objet Range représentant une cellule unique ou une plage de cellules, spécifiez Range(arg), arg désignant la plage. L'exemple suivant montre comment placer la valeur de la cellule A1 dans la cellule A5.Worksheets("Sheet1").Range("A5").Value = _     Worksheets("Sheet1").Range("A1").Value

Propriétés CellsPour renvoyer une seule cellule, spécifiez Cells(row, column), row étant l'index de ligne et column l'index de colonne. L'exemple suivant montre comment affecter la valeur 24 à la cellule A1.Worksheets(1).Cells(1, 1).Value = 24 L'exemple suivant montre comment définir la formule pour la cellule A2.ActiveSheet.Cells(2, 1).Formula = "=sum(B1:B5)"

Range et CellsPour renvoyer un objet Range, spécifiez Range(cell1, cell2), cell1 et cell2 étant des objets Range spécifiant les cellules de début et de fin. L'exemple suivant montre comment définir un style de

bordure pour les cellules 1:J10.With Worksheets(1)     .Range(.Cells(1, 1), _         .Cells(10, 10)).Borders.LineStyle = xlThick End With

Page 7: Les objets Excel - Espace Libre le site de la LIG - Page …tondeur.herve.free.fr/docs/6-Les-objets-Excel.pdf · 2010-08-29 · L'exemple suivant montre comment créer un objet classeur

01/03/08

Propriété OffsetPour renvoyer une plage avec un décalage spécifié dans une autre plage, spécifiez Offset(row, column), row et column définissant les décalages de ligne et de colonne. L'exemple suivant montre comment sélectionner la cellule située trois lignes au-dessous et une colonne à droite de la cellule dans l'angle supérieur gauche de la sélection en cours. Il n'est pas possible de sélectionner une cellule n'appartenant pas à la feuille active. La feuille de calcul doit donc d'abord être activée.

Worksheets("sheet1").Activate 'can't select unless the sheet is active Selection.Offset(3, 1).Range("A1").Select

Méthode UnionPour renvoyer des plages multizones, c'est-à-dire, des plages composées d'au moins deux blocs de cellules contiguës, utilisez Union(range1, range2, ...). L'exemple suivant montre comment créer un

objet correspondant à l'union des plages A1:B2 et C3:D4, puis sélectionner la plage définie.

Dim r1 As Range, r2 As Range, myMultiAreaRange As Range

Worksheets("sheet1").Activate Set r1 = Range("A1:B2") Set r2 = Range("C3:D4") Set myMultiAreaRange = Union(r1, r2) myMultiAreaRange.Select

Page 8: Les objets Excel - Espace Libre le site de la LIG - Page …tondeur.herve.free.fr/docs/6-Les-objets-Excel.pdf · 2010-08-29 · L'exemple suivant montre comment créer un objet classeur

01/03/08

Page 9: Les objets Excel - Espace Libre le site de la LIG - Page …tondeur.herve.free.fr/docs/6-Les-objets-Excel.pdf · 2010-08-29 · L'exemple suivant montre comment créer un objet classeur

01/03/08

Page 10: Les objets Excel - Espace Libre le site de la LIG - Page …tondeur.herve.free.fr/docs/6-Les-objets-Excel.pdf · 2010-08-29 · L'exemple suivant montre comment créer un objet classeur

01/03/08

Page 11: Les objets Excel - Espace Libre le site de la LIG - Page …tondeur.herve.free.fr/docs/6-Les-objets-Excel.pdf · 2010-08-29 · L'exemple suivant montre comment créer un objet classeur

01/03/08

Page 12: Les objets Excel - Espace Libre le site de la LIG - Page …tondeur.herve.free.fr/docs/6-Les-objets-Excel.pdf · 2010-08-29 · L'exemple suivant montre comment créer un objet classeur

01/03/08

Page 13: Les objets Excel - Espace Libre le site de la LIG - Page …tondeur.herve.free.fr/docs/6-Les-objets-Excel.pdf · 2010-08-29 · L'exemple suivant montre comment créer un objet classeur

01/03/08

Propriétés Spécifiques Objet Parent Objet renvoyé

ActiveCell Application Window

Objet Range

ActiveChart ApplicationWindowWorkBook

Objet Chart représentant l’objet graphique actif

ActiveControl FramePageUserForm

Objet Control représentant le Ctrl ActiveX actif

ActiveMenuBar CommandBars Objet CommandeBar

ActivePane Window Objet Pane représentant le volet actif de la fenêtre active.

ActiveSheet ApplicationWindowWorkBook

Objet WorkSheet feuille active du classeur.

ActiveWindow Application Objet Window représentant l’objet la fenêtre active.

ActiveWorkBook Application Objet Workbook représentant le classeur de la fenêtre active

Parent Objets multiples Renvoie l’objet conteneur

Selection ApplicationWindows

Objet Range représentant la ou les cellules sélectionnées.

ThisCell Application Renvoie la cellule a partir de laquelle la fonction définie par un utilisateur est appelé en tant qu’objet Range.

ThisWorkBook Application Objet Workbook représentant le classeur dans lequel s ‘éxecute la macro en cours.

Page 14: Les objets Excel - Espace Libre le site de la LIG - Page …tondeur.herve.free.fr/docs/6-Les-objets-Excel.pdf · 2010-08-29 · L'exemple suivant montre comment créer un objet classeur

01/03/08

Boites de dialogue intégrées XlDialog

Les boites de dialogues intégrées sont des objets Dialog appartenant à la collection Dialogs de l’objet Application.

Pour afficher une boite de dialogue, utilisez la méthode Show selon la syntaxe

Application.Dialogs(XlDialog).show

Ou XlDialog peut prendre les valeurs constante suivantes :

XlDialogBorder Boite des bordure

XlDialogFontProperties Boite des fontes

XlDialogDisplay Options d’affichage

XlDialogDefineName Définir un nom

XlDailogFormulaGoto Atteindre une formule

XlDialogOpen Ouvrir un fichier excel

XlDailogSaveAs Enregistrer sous…

XlDialogSort Trier les colonnes

Et bien d’autre encore voir l’aide excel vba sur l’objet Dialogs

Page 15: Les objets Excel - Espace Libre le site de la LIG - Page …tondeur.herve.free.fr/docs/6-Les-objets-Excel.pdf · 2010-08-29 · L'exemple suivant montre comment créer un objet classeur

01/03/08

Les méthodes GetOpenFileName et GetSaveAsFileName

Ces 2 méthodes permettent d’afficher les boites de dialogue Ouvrir… et Enregistrer sous…

A la différence des objets Dialogs correspond a XlOpen et XlSaveAs, ces méthodes n’effectuent aucune action; elles permettent uniquement de récuperer le nom de fichier saisi ou sélectionné par l’utilisateur.

GetOpenFileName

Application.GetOpenFileName(FileFilter, FilterIndex, Title, ButtonText, Multiselect)

GetSaveAsFileName

Application.getSaveAsFileName(InitialeFile, FileFilter, FilterIndex, Title, ButtonText)

Page 16: Les objets Excel - Espace Libre le site de la LIG - Page …tondeur.herve.free.fr/docs/6-Les-objets-Excel.pdf · 2010-08-29 · L'exemple suivant montre comment créer un objet classeur

01/03/08

Les boites de dialogue prédéfiniesFonction InputBox

Affiche une invite et renvoie le texte tapé par l’utilisateur.

InputBox(prompt, title,default,xpos,ypos,helpfile,context)

Méthode InputBox

Agit comme la fonction InputBox mais permet de contrôler le type de données à saisir.

Objet.InputBox(Prompt,title,default,left,top,helpfile,helpcontextId,type)

Fonction MsgBox

Cette fonction affiche un message dans une boite de dialogue, éventuellement accompagné d’une icône de un à trois boutons.

MsgBox <message>,[<boutons>][,<titre>]

Boutons peut prendre => vbOKOnly, vbOKCancel, vbAbortRetryIgnore,vbYesNoCancel, vbYesNo,vbRetryCancel, vbCritical, vbQuestion,vbExclamation, vbInformation.

Mode Modal => vbApplicationModal, vbSystemModal.

Valeurs de retour possible => vbOK, vbCancel, vbAbort, vbRetry, vbIgnore, vbYes, vbNo

Constante de retour chariot => vbCrLf, vbCr, vbLf, vbTab, vbBack.

Page 17: Les objets Excel - Espace Libre le site de la LIG - Page …tondeur.herve.free.fr/docs/6-Les-objets-Excel.pdf · 2010-08-29 · L'exemple suivant montre comment créer un objet classeur

01/03/08

Les formulaires

Page 18: Les objets Excel - Espace Libre le site de la LIG - Page …tondeur.herve.free.fr/docs/6-Les-objets-Excel.pdf · 2010-08-29 · L'exemple suivant montre comment créer un objet classeur

01/03/08

Exécution et fermeture d’un formulaire

Pour exécuter un formulaire a partir d’un module, utilisez la méthode Show ou l’instruction Load.

UserForm1.Show

Affiche le UserForm indiqué.

Load UserForm1

Charge l’objet UserForm sans l’afficher.

Pour fermer un formulaire, utilisez la méthode Hide ou l’instruction Unload.

UserForm1.Hide

Masque le formulaire sans le décharger.

Unload UserForm1

Supprime le formulaire de la mémoire.

Page 19: Les objets Excel - Espace Libre le site de la LIG - Page …tondeur.herve.free.fr/docs/6-Les-objets-Excel.pdf · 2010-08-29 · L'exemple suivant montre comment créer un objet classeur

01/03/08

Événements invoqués

Les méthodes et instructions d ’exécution et de fermeture de formulaire déclenchent les événements suivants :

Méthode ou instruction

Show

Initialize

Activate

Load

Initialize

Hide

Pas d’événements

Unload

QueryClose

Terminate

Page 20: Les objets Excel - Espace Libre le site de la LIG - Page …tondeur.herve.free.fr/docs/6-Les-objets-Excel.pdf · 2010-08-29 · L'exemple suivant montre comment créer un objet classeur

01/03/08

Les événementsVous pouvez accéder aux procédures événementielles associées à un objet de la façon suivante :

⇒Dans la fenêtre Explorateur de projet, double click sur l’objet souhaité afin de faire apparaitre la fenêtre correspondante

⇒Ouvrir la liste déroulante de gauche de la fenêtre de code et sélectionner Workbook, worksheet, UserForm en fonction de l’objet sélectionné.

⇒Sélectionner l’un des événements associés à l’objet sélectionné dans la liste déroulant de droite afin de lui associer un code personnalisé

⇒Vous pouvez à tout moment désactiver l’exécution des procédures événementielles en affectant False a la propriété EnableEvents de l’objet Application.

⇒Le nom de la méthode de l’évènement est construit de la manière suivante :

Private sub Nomobjet_Evenement(…..)

Page 21: Les objets Excel - Espace Libre le site de la LIG - Page …tondeur.herve.free.fr/docs/6-Les-objets-Excel.pdf · 2010-08-29 · L'exemple suivant montre comment créer un objet classeur

01/03/08

Gestion des erreursErreurs de syntaxeErreurs de compilationErreur d’exécutionErreur de logique

Debogage => activé de différentes manières :Exécuter le programme pas a pasMettre des points d’arretsClick sur la commande debogage

Les outils de debogage permettent à tout moment de connaître :La valeur des variables et expressionsExécuter des instructionsModifier interactivement le codeExécuter pas à pasAjouter des points d’arrêt

Page 22: Les objets Excel - Espace Libre le site de la LIG - Page …tondeur.herve.free.fr/docs/6-Les-objets-Excel.pdf · 2010-08-29 · L'exemple suivant montre comment créer un objet classeur

01/03/08

1 2 3 4 5 6 7 8 9 10 11 12 131 - Mode création

2 - Exécuter (F5)

3 - Arrêt Ctrl+pause

4 – Réinitialiser : Efface contenue des variables

5 – Basculer le point d’arrêt F9 Défini ou supprime un point d’arrêt

6 – Pas à pas détaillé F8 : Exécute le code en marquant un arrêt sur chaque ligne de code

7 – Pas à pas principal Maj+F8: Exécute le code avec un arrêt a chaque instruction de la procédure en cours

8 – Pas à p as sortant Ctrl+maj+F8: Exécute en continu les lignes restantes de la procédure en cours

9 – Fenêtre variable locale : affiche les valeurs de variables locales de la procédure.

10 – Fenêtre exécution Ctrl+G : Affiche une fenêtre permettant d’exécuter inter activement une instruction.

11 – Fenêtre espions : Affiche la liste des variables espionnes.

12 – Espion Express Maj+F9 : Affiche la valeur de l’expression sélectionnée.

13 – Pile des appels : Affiche la liste des appels de procédures.

Page 23: Les objets Excel - Espace Libre le site de la LIG - Page …tondeur.herve.free.fr/docs/6-Les-objets-Excel.pdf · 2010-08-29 · L'exemple suivant montre comment créer un objet classeur

01/03/08

L’objet Debug

L’objet Debug permet d’envoyer des données de sortie dans la fenêtre Exécution (Ctrl+G) au moment de l’exécution.

Méthodes :

Print : Affiche du texte dans la fenêtre Exécution.

Assert: Suspend l’exécution de manière conditionnelle.

Page 24: Les objets Excel - Espace Libre le site de la LIG - Page …tondeur.herve.free.fr/docs/6-Les-objets-Excel.pdf · 2010-08-29 · L'exemple suivant montre comment créer un objet classeur

01/03/08

Instruction On ErrorIndique une séquence d’instructions à éxécuter en cas d’erreur.

Syntaxe 1 :

On error goto ligne

Ligne :

Instructions

Resume

L’instruction Resume ermet de reprendre l’éxécution du code lorsque la routine de gestion d’errur est terminée.

3 mode de reprise :

Resume 0 Reprise de l’éxécution là ou l’erreur s’est produite

Resume Next Reprise à partir de l’instruction qui suit immédiatement celle qui à générer l’erreur.

Resume ligne Reprise à l’endroit spécifié par l’argument ligne.

Page 25: Les objets Excel - Espace Libre le site de la LIG - Page …tondeur.herve.free.fr/docs/6-Les-objets-Excel.pdf · 2010-08-29 · L'exemple suivant montre comment créer un objet classeur

01/03/08

Instruction On ErrorSyntaxe 2 :

On error resume Next

Spécifie qu’en cas d’erreur d’exécution, l’exécution doit se poursuivre à la ligne suivante.

Syntaxe 3 :

On Error Goto 0

Permet d’interrompre la gestion des erreurs alors que la procédure est encore en cours d’exécution.

Fonction Error

Renvoie un message correspondant à un numéro d’erreur.

Error (code erreur)

Page 26: Les objets Excel - Espace Libre le site de la LIG - Page …tondeur.herve.free.fr/docs/6-Les-objets-Excel.pdf · 2010-08-29 · L'exemple suivant montre comment créer un objet classeur

01/03/08

L’objet Err

L’objet Err contient des informations permettant de connaître l’origine d’une erreur d’exécution.

Propriété :

Description : Renvoie une chaîne expliquant l’origine de l’erreur.

HelpContext : Renvoie l’indicateur de contexte associé à une rubrique d’aide.

HelpFile : Renvoie une chaîne contenant le chemin du fichier d’aide.

LastDLLError : Renvoie un code d’erreur système produit par un appel à une DLL.

Number : Renvoie un numérique indiquant le numéro de l’erreur.

Source : Renvoie une chaîne contenant le nom de l’objet ou de l’application qui à généré l’erreur.

Méthodes :

Clear : Efface de manière explicite le contenue de l’objet Err.

Raise : Permet de générer des erreurs d’exécution.