IFT-20403-A-cours-11-VBA-PDF
10 pages
Français

IFT-20403-A-cours-11-VBA-PDF

-

Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres
10 pages
Français
Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres

Description

Rappels d’algorithmique• Nous avons vu : Excel 2000 et VBA – Définition : Un algorithme est une suite finied’instructions qui, étant donné des paramètres typés, calcule une solution d’un problème donné– Variables VB et VBA pour Excel :Nom– Constantes Conclusion, révisions et extensions Valeur– Opérateurs, fonctions– ExpressionsPhilippe Pasquier– Une instruction : l’affectation– Une méthode de programmation utilisant tout ça : la programmation événementielle– Un environnement de programmation (Visual Studio 6)Philippe Pasquier, Octobre 20032IFT-20403-A Basic et Visual BasicRappels d’algorithmique Les tableaux et VBA• Exemples :• Notion de tableau :Sub tablo1()index Nom'déclaration d’un tableau d’entiers– Collection de valeurs d’unDim mytab(1 To 5) As Integer0 Valeurmême type'initialisation du tableau1 Valeur– Accessibles par indexationmytab(1) = 1mytab(2) = 2– 1 ou plusieurs dimensionsmytab(3) = 3– De taille statique (fixe) oumytab(4) = 4254 Valeurmytab(5) = 5dynamique255 Valeur'corps de la procédure– Généralement parcourusWorksheets(1).Range("A1").Value = "nombre :"ou traités à l’aide de bouclesWorksheets("feuil1").Range("B1") = Application.WorksheetFunction.Count(mytab)End SubPhilippe Pasquier, Octobre 2003 Philippe Pasquier, Octobre 20033 4IFT-20403-A Basic et Visual Basic IFT-20403-A Basic et Visual BasicLes tableaux et VBA Objets Range comme tableaux de cellulesSub Range1()Sub tablo2()'déclaration des ...

Sujets

Informations

Publié par
Nombre de lectures 192
Langue Français

Extrait

Rappels d’algorithmique
• Nous avons vu :
Excel 2000 et VBA – Définition : Un algorithme est une suite finie
d’instructions qui, étant donné des paramètres typés,
calcule une solution d’un problème donné
– Variables
VB et VBA pour Excel :
Nom
– Constantes
Conclusion, révisions et extensions
Valeur
– Opérateurs, fonctions
– Expressions
Philippe Pasquier
– Une instruction : l’affectation
– Une méthode de programmation utilisant tout
ça : la programmation événementielle
– Un environnement de programmation (Visual
Studio 6)
Philippe Pasquier, Octobre 2003
2
IFT-20403-A Basic et Visual Basic
Rappels d’algorithmique Les tableaux et VBA
• Exemples :
• Notion de tableau :
Sub tablo1()
index Nom
'déclaration d’un tableau d’entiers
– Collection de valeurs d’un
Dim mytab(1 To 5) As Integer
0 Valeur
même type
'initialisation du tableau
1 Valeur
– Accessibles par indexation
mytab(1) = 1
mytab(2) = 2
– 1 ou plusieurs dimensions
mytab(3) = 3
– De taille statique (fixe) ou
mytab(4) = 4
254 Valeur
mytab(5) = 5
dynamique
255 Valeur
'corps de la procédure
– Généralement parcourus
Worksheets(1).Range("A1").Value = "nombre :"
ou traités à l’aide de boucles
Worksheets("feuil1").Range("B1") =
Application.WorksheetFunction.Count(mytab)
End Sub
Philippe Pasquier, Octobre 2003 Philippe Pasquier, Octobre 2003
3 4
IFT-20403-A Basic et Visual Basic IFT-20403-A Basic et Visual BasicLes tableaux et VBA Objets Range comme tableaux de cellules
Sub Range1()
Sub tablo2()
'déclaration des variables locales
'déclaration des variables
Dim mytab(1 To 5) As Integer
Dim plagelocale As Range
Dim i As Integer
'initialisation
Set plagelocale = Worksheets(2).Range("A6:A16")
'initialisation du tableau
'accès aux éléments du Range comme à ceux d'un tableau
For i = 1 To 5
plagelocale(1).Value = 3
mytab(i) = i * i
plagelocale(2).Value = 4
Next i
plagelocale(3) = 8 'déconseillé
plagelocale(4) = 5
'corps de la procédure
'indique le nombre d'éléments de l'objet Range manipulé
Worksheets(1).Range("A2").Value = "Moyenne : "
plagelocale(5) = plag.Count
Worksheets("feuil1").Range("B2") =
Application.WorksheetFunction.Average(mytab)
End Sub
End Sub
Philippe Pasquier, Octobre 2003 Philippe Pasquier, Octobre 2003
5 6
IFT-20403-A Basic et Visual Basic IFT-20403-A Basic et Visual Basic
Notion de structure de contrôle Notion de structure de contrôle
• Itérations et itérations conditionnelles :
• Branchement conditionnel :
For Compteur = Début To Fin [Step Incrément]
Select Case expression
[Instructions]
If condition Then
Case ListeValeurs1
Next [Compteur]
[instructions]
[Instructions]
Case ListeValeurs2
Else
Do While Condition Do Until Condition
[Instructions]
[instructions]
Instructions Instructions
Case Else
End If
Loop
Loop
[Instructions]
End Select
Do
Do
Instructions
Instructions
Loop Until Condition
Loop While Condition
Philippe Pasquier, Octobre 2003 Philippe Pasquier, Octobre 2003
7 8
IFT-20403-A Basic et Visual Basic IFT-20403-A Basic et Visual BasicNotion de structure de contrôle Procédures et fonctions
Exemples d’utilisation de l’itération :
• :
i=exp2
– Une procédure est un ensemble d'instructions
– Sommes : i=exp1
qui participent à une même tâche.
résulat = 0 ‘élément neutre pour l’addition
[Public/Private][Static] Sub nom([liste_arguments])
For i=exp1 To exp2
déclarations
résultat=résultat + exp(i)
instructions
Next i
End Sub
i=exp2
• Fonctions :
– Produits : i=exp1
résulat = 1 ‘élément neutre pour la multiplication [Public/Private]Function Nom([liste_arguments])As type
For i=exp1 To exp2
déclarations
résultat = résultat * exp(i)
instructions
Next i
Nom = exp_du_bon_type
End Sub
Philippe Pasquier, Octobre 2003 Philippe Pasquier, Octobre 2003
9 10
IFT-20403-A Basic et Visual Basic IFT-20403-A Basic et Visual Basic
Passage de paramètres/arguments Notion de portée / durée de vie
Nous avons vu différents niveaux de visibilité :
Option Explicit ‘ force la déclaration
Private Sub Affiche(Message As String)
Public x As Integer ‘ variable publique
Dim y As Integer ‘ vglobale
MsgBox(Message)
module
End Sub
Private Sub CmdLancer_Click() ‘ procédure évènementielle
Dim x As Integer ‘ variable locale
procédure
x = 3 ‘ initialisation
Private Sub cmdAllez_Click()
y = 3 ‘ initialisation
Dim news As String Call calcul(x, (y)) ‘ appel de procédure
MsgBox ("x=" & x & " y=" & y) ‘ affichage
News=« cool ! »
Call calcul(x, (y)) ‘ ae
Affiche(«Ift-20403») ‘ afficheift-20403 MsgBox" & y) ‘ affichage
End Sub ‘ destruction de x
Affiche News ‘ affiche cool !
Private Sub calcul(w As Integer, z As Integer) procédure
Affiche (News) ‘ affiche cool !
Static count As Integer ‘ variable static initialisée à 0
Call Affiche(«news») ‘ affiche news
count = count + 1 ‘ incrémentation
MsgBox ("appel de calcul numero:" & count) ‘ affichage
Call Affiche News ‘erreur compilation
w = w + 1 ‘ incrémentation
z = z + 1 ‘ incrément
End Sub
Passage par référence
End Sub ‘ destruction des identifiants z/w
Passage par valeur
Philippe Pasquier, Octobre 2003 Philippe Pasquier, Octobre 2003
11 12
IFT-20403-A Basic et Visual Basic IFT-20403-A Basic et Visual BasicLes variables locales / globales Récursivité
'déclaration des variables globales
Visible dans tout
• Pas récursif : appel récursif
Dim plageGlobale As Range
le module
• Condition d’arrêt : bien définir le cas de base qui
Sub initialise()
terminera la séquence d’appels récursifs
Set plageGlobale = Application.InputBox("Entrer la
• Exemple de la factorielle :
plage des cellules à compléter :", , , , , , , 8)
Private Function Factorial(Byval y As Double) As Double
End Sub
If y <= 1 Then
Factorial = 1 ‘Cas de base
Else
Sub efface()
Factorial = y * Factorial(y-1) ‘Pas récursif
'efface le contenu sans toucher à la mise en forme
End if
plageGlobale.ClearContents
End function
End Sub
Philippe Pasquier, Octobre 2003 Philippe Pasquier, Octobre 2003
13 14
IFT-20403-A Basic et Visual Basic IFT-20403-A Basic et Visual Basic
Gestion des erreurs Traitement des erreurs à l’exécution
• Routine de gestion d’erreur, syntaxe :
• Outils pour la mise au point de programme :
Private Sub nom(arguments)
<déclarations>
– Faciliter l’écriture du code
On error Goto <étiquette>
– Tester le code (pas à pas, variables <Traitement normal>
Exit Sub
espionnes,…)
étiquette :
• Traitement des erreurs à l’exécution : <Traitement erreur>
resume/resume next/Exit Sub ‘mode de retour
– Certaines erreurs ne surviennent qu’à
End Sub
Quitte la procédure
l’exécution, pas à la compilation :
Ré-exécute l’instruction suivant la fautivefautive
• Fichier absent
• Si une erreur se produit pendant traitement normal,
• Division par zéro
l’exécution est routée vers l’étiquette.
• Entrée de l’utilisateur erronée
• On peut consulterErr.number pour connaître la nature
de l’erreur
Philippe Pasquier, Octobre 2003 Philippe Pasquier, Octobre 2003
15 16
IFT-20403-A Basic et Visual Basic IFT-20403-A Basic et Visual BasicX
Gestion de fichiers VBA - Programmation orientée objet
• Classe : type abstrait encapsulant données et
• Fichiers à accès séquentiel : fichier de
méthodes
données alphanumériques structuré
• Objet : instance d’une classe, comprenant,
– Propriétés : données internes à l’objet
comme un texte
– Méthodes : procédure et fonctions que l’on peut lui
• Structure d’enregistrement : type
appliquer
utilisateur constitué de champs
– Événements : des procédures événementielles
peuvent être définies pour les traiter
• Fichiers à accès direct / aléatoire :
• Collections : ensemble d’objets d’une même
ensemble d’enregistrement dont on
classe
connaît la structure et donc la taille à
• VBE : sorte de Visual Studio sous Excel
l’avance ce qui permet l’accès direct
• Macros : procédures VB écrites automatiquement et
q

  • Univers Univers
  • Ebooks Ebooks
  • Livres audio Livres audio
  • Presse Presse
  • Podcasts Podcasts
  • BD BD
  • Documents Documents