La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Par Fabrice Pasquier Cours III

Présentations similaires


Présentation au sujet: "Par Fabrice Pasquier Cours III"— Transcription de la présentation:

1 Par Fabrice Pasquier Cours III
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 Integer a = 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 Function nom_fonct (variable As String) As Integer --- instructions End Function Appel: a = nom_fonct ("salut")

9 Fonctions Exemple: Public Sub prog1() Dim v1 As Integer v1 = somme(3, 5, 7) MsgBox v1 End Sub Public Function somme (op1 As Integer, op2 As Integer, op2 As Integer) As Integer somme = op1 + op2 + op3 End Function

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

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(" ") val = CDbl(" ") 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 Exemple
Public Sub prog1() Dim v1 As Integer, v2 As Integer On Error Goto gesterr1 v1 = InputBox("Enter votre âge:") v2 = v On Error Goto 0 Exit Sub gesterr1: 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 Public Sub prog1() Dim i As Integer, j As Integer For i = 0 To 9 For j = 0 To MsgBox i Next j Next i End Sub

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: Public Sub ecrirefichier() Dim liste As Integer liste = 0 Open "cible.txt" For Output As #1 Do While liste < 100 liste = liste + 1 Print #1, liste Loop Close #1 End Sub En écriture Ecrit une ligne dans le fichier


Télécharger ppt "Par Fabrice Pasquier Cours III"

Présentations similaires


Annonces Google