1 / 25

VBA et Excel

VBA et Excel. Par Fabrice Pasquier Cours III. Rappels: écriture dans une cellule. Plusieurs raccourcis possibles: Sheets(1).Range("A1").Value = 12 Sheets("Feuil1").Range("A1").Value = 12 Range("A1").Value = 12 Worksheets(1). Range("A1").Value = 12

ewa
Download Presentation

VBA et Excel

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. VBA et Excel Par Fabrice Pasquier Cours III

  2. Rappels: écriture dans une cellule • Plusieurs raccourcis possibles: • Sheets(1).Range("A1").Value = 12 • Sheets("Feuil1").Range("A1").Value = 12 • Range("A1").Value = 12 • Worksheets(1). Range("A1").Value = 12 • Worksheets("classeur.xls").Range("A1").Value = 12

  3. Rappels: lecture d'une une cellule • Dim a As Integera = Sheets(1).Range("A1").Value • Cette syntaxe permet de prendre le contenu de la cellule A1 de la 1ère feuille de calculs et la stocker dans la variable a • Equivalence: • a = Sheets("Feuil1").Range("A1").Value • a =…

  4. Méthodes et propriétés • Chaque objet (Range, Worksheet) possède une liste de propriétés et de méthodes • Une propriété est plutôt passive • Une méthode est active, comme une fonction • Pour simplifier: méthode = fonction

  5. Exemples de méthodes et propriétés • L'objet Range possède les méthodes suivantes: • Activate, AddComment, AdvancedFilter, ApplyNames, …, AutoFit, Clear, ClearContents, CheckSpelling, … • Les objets de la collection Sheets possède: • Delete, Select (méthodes) • Visible, Creator, Count

  6. Intégration… suite • On peut maintenant faire des boucles afin de compléter des cellules, ou pour les lire • En fonction de certaines valeurs, on effectue telles ou telles opérations

  7. Génération automatique de code • Bonne idée pour le formatage des cellules • Outils -> Macro -> Nouvelle macro • Spécifier le nom du programme (macro) • Opérer des actions dans Excel • Stopper l'enregisteur • Se rendre dans l'éditeur VB pour modifier ou adapter le code généré

  8. Fonctions (function) dans VB • Dans un programme, cela peut-être utile de séparer les actions essentielles • On crée des fonctions qui sont appelées par la suite dans le programme principal • Syntaxe: • Public Functionnom_fonct (variable As String) As Integer --- instructionsEnd Function • Appel: • a = nom_fonct ("salut")

  9. Fonctions • Exemple: Public Sub prog1() Dim v1 As Integer v1 = somme(3, 5, 7) MsgBox v1End Sub PublicFunctionsomme (op1 As Integer, op2 As Integer, op2 As Integer) As Integer somme = op1 + op2 + op3EndFunction

  10. Utilisation d'une variable dans un autre context Une variable définie comme String contient un nombre -> Cint("expression") Souvent implicite CBool(expression) CByte(expression) CCur(expression) CDate(expression) CDbl(expression) CDec(expression) CInt(expression) CLng(expression) CSng(expression) CStr(expression) CVar(expression) Conversion de type

  11. Exemple de conversion Public Sub prog1() Dim special As String, age As Integer, d As Date, val As Double special = "234" age = CInt(special) d = CDate("12.04.2003") val = CDbl("324.1245454")End Sub

  12. Gestion des erreurs (1) • En cas d'erreur soupçonnée, on peut préparer Visual Basic à entreprendre une action • 2 types de gestion: • On Error Resume Next • Permet de sauter la ligne qui crée le problème • On Error Goto qqpart • Permet de sauter à un endroit spécifique du programme • On doit arrêter la détection des erreurs par • On Error Goto 0

  13. Gestion des erreurs (2) • Gestion des erreurs importantes quand interraction avec utilisateur • A utiliser le moins possible • Ralentit beaucoup le programme • A insérer uniquement quand tout le reste fonctionne

  14. Gestion des erreurs (3) • Exemple Public Sub prog1() Dim v1 As Integer, v2 As IntegerOn Error Goto gesterr1 v1 = InputBox("Enter votre âge:") v2 = v1 + 15On Error Goto 0Exit Subgesterr1: MsgBox "L'âge n'est pas correct.", vbCritical + vbOKOnly End Sub Exemple

  15. Public Sub prog1() Dim i As Integer, j As Integer For i = 0 To 9 For j = 0 To 10 MsgBox i Next j Next iEnd Sub Identation des programmes • Non obligatoire • Rend lisible le programme • Identer après: • If • While, For • Function • Sub • Select Case

  16. Commentaires • Ajouter le plus de commentaires possibles dans un programme • Si possible, petit commentaire à côté de chaque variable déclarée • Commenter chaque nouvelle fonction • 1 commentaire un moins toutes les 10 lignes • Syntaxe: • Rem commentaire commentaire, ….. • ' commentaire commentaire, …..

  17. Utilisation de l'aide de MS Excel • Toutes les fonctions sont bien documentées dans l'aide Visual Basic pour Excel • Dans Office 97, s'assurer que l'aide est bien installée. Pas fait pas défaut. Nécessite le CD d'installation • On presse sur F1 en ayant sélectionner la fonction qui pose problème

  18. Débogage • En déhors des erreurs de syntaxe, il y a les erreurs de programmation plus subtiles • Index de tableau • Variables non initialisées • Comment s'y prendre ? • Utiliser le mode pas à pas (Touche F8) • Mettre beaucoup de messages (MsgBox) dans le programme, afin de bien vérifier le contenu des variables • L'expérience est constructive… • Utiliser des points d'arrêt (Touche F9 pour ajouter et enlever)

  19. Démarrage d'un programme après une touche • Dans certain cas, il est utile s'associer des programmes à des touches du clavier. • On appuie sur la touche 8 et un programme est lancé. • Application.OnKey "1", "test2" • Démarre le programme test2 lorsque la touche 1 est frappé • Application.OnKey "1", "" • Ne fait rien lorsqu'on appuie sur la touche 1 • Application.OnKey "1" • Rend à la touche sa fonction de base

  20. Démarrage d'un programme à l'ouverture du fichier Excel (1) • Dans certains cas, il est nécessaire de démarrer un programme quand certaines actions se passent. • Ouverture du classeur Excel • Changement de feuille de calculs • Fermeture du classeur

  21. Démarrage d'un programme à l'ouverture du fichier Excel (2) Double-clique

  22. Démarrage d'un programme à l'ouverture du fichier Excel (3)

  23. Accès au système de fichiers (1) • Nous verrons: • Lecture et écriture de fichiers texte • Autre possibilités: (un peu compliqué !) • Lecture et écriture de fichiers binaires • En Visual Basic, on peut: • Créer des fichiers • Compléter des fichiers • Effacer des fichiers • Lire des fichiers • Créer et supprimer des répertoires

  24. Accès au système de fichiers (2) • Syntaxe pour la lecture d'un fichier: En lecture No du fichier Dim TextLine as String Open "fichier.txt" For Input As #1 Do While Not EOF(1)Line Input #1, TextLine MsgBox TextLine Loop Close #1 Ouverture du fichier Détection de la fin du fichier Lecture d'une ligne du fichier Fermeture du fichier

  25. Public Sub ecrirefichier() Dim liste As Integerliste = 0Open "cible.txt" For Output As #1Do While liste < 100liste = liste + 1Print #1, listeLoopClose #1 End Sub Accès au système de fichiers (3) • Syntaxe pour l'écriture d'un fichier: En écriture Ecrit une ligne dans le fichier

More Related