VBA et Excel - PowerPoint PPT Presentation

1 / 25
About This Presentation
Title:

VBA et Excel

Description:

a = Sheets(1).Range('A1').Value. Cette syntaxe permet de prendre le contenu de la cellule ... Lecture et criture de fichiers binaires. En Visual Basic, on peut: ... – PowerPoint PPT presentation

Number of Views:133
Avg rating:3.0/5.0
Slides: 26
Provided by: fabricep
Category:
Tags: vba | binaires | excel

less

Transcript and Presenter's Notes

Title: VBA et Excel


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 -gt Macro -gt 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 Function nom_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 Public
Function somme (op1 As Integer, op2 As Integer,
op2 As Integer) As Integer somme op1 op2
op3End Function
10
Conversion de type
  • Utilisation d'une variable dans un autre context
  • Une variable définie comme String contient un
    nombre -gt 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)

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
Integer On Error Goto gesterr1 v1
InputBox("Enter votre âge") v2 v1 15 On
Error Goto 0Exit Subgesterr1 MsgBox "L'âge
n'est pas correct.", vbCritical vbOKOnly End
Sub
Exemple
15
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
Accès au système de fichiers (3)
  • Syntaxe pour l'écriture d'un fichier

En écriture
Ecrit une ligne dans le fichier
Write a Comment
User Comments (0)
About PowerShow.com