Vba et excel
This presentation is the property of its rightful owner.
Sponsored Links
1 / 25

VBA et Excel PowerPoint PPT Presentation


  • 77 Views
  • Uploaded on
  • Presentation posted in: General

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

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Vba et excel

VBA et Excel

Par Fabrice Pasquier

Cours III


Rappels criture dans une cellule

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


Rappels lecture d une une cellule

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 =…


M thodes et propri t s

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


Exemples de m thodes et propri t s

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


Int gration suite

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


G n ration automatique de code

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é


Fonctions function dans vb

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


Fonctions

Fonctions

  • Exemple:

Public Sub prog1()Dim v1 As Integerv1 = somme(3, 5, 7)MsgBox v1End Sub

PublicFunctionsomme (op1 As Integer, op2 As Integer, op2 As Integer) As Integersomme = op1 + op2 + op3EndFunction


Conversion de type

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


Exemple de conversion

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


Gestion des erreurs 1

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


Gestion des erreurs 2

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


Gestion des erreurs 3

Gestion des erreurs (3)

  • Exemple

Public Sub prog1()Dim v1 As Integer, v2 As IntegerOn Error Goto gesterr1v1 = InputBox("Enter votre âge:")v2 = v1 + 15On Error Goto 0Exit Subgesterr1:MsgBox "L'âge n'est pas correct.", vbCritical + vbOKOnlyEnd Sub

Exemple


Identation des programmes

Public Sub prog1()Dim i As Integer, j As IntegerFor i = 0 To 9For j = 0 To 10MsgBox iNext jNext iEnd Sub

Identation des programmes

  • Non obligatoire

  • Rend lisible le programme

  • Identer après:

    • If

    • While, For

    • Function

    • Sub

    • Select Case


Commentaires

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


Utilisation de l aide de ms excel

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


D bogage

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)


D marrage d un programme apr s une touche

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


D marrage d un programme l ouverture du fichier excel 1

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


D marrage d un programme l ouverture du fichier excel 2

Démarrage d'un programme à l'ouverture du fichier Excel (2)

Double-clique


D marrage d un programme l ouverture du fichier excel 3

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


Acc s au syst me de fichiers 1

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


Acc s au syst me de fichiers 2

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


Acc s au syst me de fichiers 3

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


  • Login