DOC

Cours Visual Basic For Applications (Vba) - Tutorial En Francais-Pr Mon Site(New)

By Shawn Thompson,2014-09-30 02:08
6 views 0
Cours Visual Basic For Applications (Vba) - Tutorial En Francais-Pr Mon Site(New)

    Cours 1 : Présentation de l'interface de VB

    Après avoir lancé Visual Basic, vous devez voir apparaître à l'écran une boîte de dialogue vous demandant quel genre d'application voulez-vous créer? Choisissez "EXE

    Standard" si vous voulez créer un programme. Quant aux autres types d'applications, laissez-les de côté pour le moment. Vous verrez alors apparaître en face de vous une fenêtre fragmentée en plusieurs petites fenêtres. Au premier abord, cela doit certainement vous effrayer de voir une multitude de mini fenêtres. Ne vous inquiétez pas, votre comportement est tout à fait normal. N'importe quel NEWBIE aurait eu ce comportement. Moi-même, je l'ai été et j'ai pensé au début que Visual Basic était un logiciel trop compliqué pour moi et j'ai voulu laisser tomber ce fabuleux logiciel. Mais ce qui m'a encouragé à continuer à utiliser Visual Basic, c'est la possibilité de créer, créer un programme même si ce n'est qu'une simple petite application car je sais qu'après je pourrai concevoir des programmes plus élaborés au fur à mesure que j'acquiers de nouvelles connaissances.

    Ca y est? Vous êtes décidé à continuer à apprendre ce langage informatique et faire partie de la communauté des programmeurs? Alors, allons-y! Commençons par décrire toutes ces multitudes de fenêtres.

    . La partie supérieure de la fenêtre est formé du système de menus et d'une

    barre d'outils tout comme d'autres logiciels(Office, Lotus,...).

    . La partie de gauche est constitué de la boîte à outils. (Attention, ne

    confondez pas barre d'outils avec boîte à outils. La barre d'outils est une version simplifiée du système de menus. Elle permet d'accéder plus rapidement aux sous-commandes du système de menus.) Quant à la boîte à outils, elle permet de sélectionner les contrôles (ou si voulez "objets"), puis ensuite de les placer sur la partie centrale de la fenêtre. Pour placer un contrôle, sélectionnez d'abord un contrôle dans la boîte à outils, puis, tracez une zone rectangulaire sur la feuille qui se trouve au milieu. Si

    vous voulez ajouter de nouveaux contrôles dans la boîte à outils, appuyez sur le bouton droit de votre souris dans la boîte à outils pour faire apparaître le menu contextuel. Appuyez sur la sous-commande "Composants" pour faire apparaître la liste de tous les contrôles mis à votre disposition.

    . Cette feuille située au centre, n'est autre que la future interface graphique

    de votre application (appelé aussi "interface utilisateur").

     .Enfin, la partie de droite est constituée de 3 boîtes de dialogue :

    1. 1. La 1ère est la boîte de dialogue "Projet" qui donne la liste de toutes les

    feuilles qui constituent votre future application.

    2. 2. La 2ème est la boîte de dialogue "Propriétés". Elle donne accès aux

    propriétés du contrôle sélectionné.

    3. 3. Enfin, la 3ème est la boîte dialogue "Présentation des feuilles". Elle permet de

    modifier la position de la feuille de travail actuellement sélectionnée.

    Cours 2 : Structure des procédures

    Une application est constituée essentiellement de l'interface utilisateur, formée

    elle-même de plusieurs contrôles, et de procédures qui génère des actions. A présent, analysons la structure d'une procédure. La syntaxe d'écriture d'une procédure est la suivante :

    [Public / Private] [Static] Sub Nom_proc (arguments)

    [Déclarations] [Instructions] [exit Sub]

    [Instructions] End Sub

    Le mot Sub peut ou non être précédé des options suivantes :

    1. Les mots Public ou private définissent les limites de la procédure.

    a. o Avec Public, la procédure peut être appelée depuis n'importe quelle instruction

    de l'application.

    b. o Avec private, la procédure ne peut être appelée qu'à l'intérieur de la même feuille ou du même module.

1. 2. Vous devez déclarer en début de procédures vos variables et constantes si vous

    ne l'avez pas fait dans la partie Général de la liste déroulante Objet qui se trouve en haut,

    à gauche de l'éditeur de code. Remarquez que si vous déclarez vos variables à l'intérieur de la procédure, sa portée sera limitée qu'à cette procédure;

    2. 3. Static signifie que toutes les variables locales déclarées dans la procédure doivent conserver leur valeur entre 2 appels.

    3. 4. Exit Sub permet de quitter la procédure avant la fin normale de celle-ci;

    4. 5. End Sub ferme la procédure.

Pour cela, prenons un simple exemple :

    Private Sub Form_Load()

    Dim DateNaissance

    Dim Message, Titre As String

    Message = "Date de naissance ?"

    Titre = "Entrez votre date de naissance : "

    DateNaissance = InputBox(Message, Titre)

    If DateNaissance <> "" Then

    DateNaissance = Format(DateNaissance, "Long Date")

    MsgBox DateNaissance, vbOKOnly + vbInformation, "Vous êtes né(e) le"

End

    Else

    While DateNaissance = ""

    MsgBox "Entrez une date", vbOKOnly + vbExclamation, "Attention!"

    DateNaissance = InputBox(Message, Titre)

Wend

DateNaissance = Format(DateNaissance, "Long Date")

    MsgBox DateNaissance, vbOKOnly + vbInformation, "Vous êtes né(e) le"

End

    End

    If

    End

    Sub

    Le but de ce programme est certes inutile, vous direz-vous, puisqu'il consiste juste à demander la date de naissance à quelqu'un et de l'afficher par la suite. Mais les instructions de cette procédures renferment une partie des bases de la programmation en VB6. Ce n'est pas important si vous n'avez pas compris toutes les instructions de cette procédure. Contentez-vous pour l'instant de lire cette procédure et observez simplement de quoi peut être composée une procédure. A présent, passons à une analyse simplifiée de

cette procédure :

    . La 1ère ligne contient des infos sur le nom de la feuille principale (Form1) du projet, du type d'événement qui permet de lancer cette procédure. Ici L'événement en question est Load, ce qui veut dire que cette procédure sera exécutée au chargement de la feuille "Form1".

    . dans les 2èmes et 3èmes lignes, sont définis des variables limitées à cette procédure uniquement.

    . Les lignes suivantes sont formées d'instructions servant à définir le comportement de la feuille dès son chargement. (Nous verrons de plus près ces instructions dans les cours suivants.)

    . La dernière ligne End Sub clôt la procédure.

    Cours 3 : Les variables et les constantes

    Définition des variables | Différents type de variables | Déclaration des variables | Portée des

    variables | Les constantes

    1. Définition des variables

    Les variables sont des données ou des valeurs qui peuvent changer à l'intérieur d'une application. C'est pourquoi, il est fort utile de les nommer par un nom, de déclarer quel

    genre de variables est-ce (nombre entier, nombre décimal, lettres...) et leur affecter,

    lorsque cela est nécessaire une valeur. La longueur maximale du nom d'une variable est de 255 caractères. Ceux-ci peuvent être des chiffres, des lettres ou autres symboles. Notez que ce nom doit obligatoirement commencer par une lettre. En effet, Visual basic classe les variables en fonction de la valeur affectée à la variable. Ainsi, une variable déclarée comme du type numérique ne peut pas recevoir une valeur chaîne de caractère, ainsi qu'à l'inverse. Notez que si vous ne déclarez pas une variable, Visual Basic se chargera d'affecter par défaut un type de variable (Variant) à celle-ci. Une variable du type

    Variant peut aussi bien recevoir des données numériques que des chaînes de caractères. tout dépend de ce que vous avez affecté à cette variable.

2. Type de variables

    A présent, observons de plus près les différents types de variables :

    Type de Mot clé Occupe Limite de valeurs

    données

    Byte 1 octet 0 à 255 Octet

    Boolean 2 octets True(-1) ou False(0) Logique

    Integer 2 octets -32 768 à 32767 Entier

    Long 4 octets -2 147 483 648 à 2 147 483 647 Entier long

    Single 4 octets Nombre réel avec 7 chiffres après la Décimal simple

    virgule

    Double 8 octets Nombre réel avec 15 chiffres après la Décimal double

    virgule

     Nombre réel avec 15 chiffres avant la

    Currency 8 octets Monétaire

    virgule et 4 chiffres après la virgule

    Date 8 octets 1er janvier 100 au 31 décembre 9999 Date

    Object 4 octets Toute référence à des types Object Objet

    10 octets + longueur Chaîne de caractère dont la longueur ne Chaîne de

    String de chaîne doit pas excéder 2^31 caractères caractères

    Variant (avec Variant 16 octets toute valeur numérique jusqu'à l'étendue

    d'un double chiffres)

    Variant (avec Variant 22 octets+longueur de Même étendue que pour un String de

    chaîne longueur variable lettres)

    Défini par Type -L'étendue de chaque élément est la même que son type de données l'utilisateur

    Notez que les types de variables les plus utilisées sont : String, Integer, Long, Single, Double et Currency.

3. Déclaration de variables

    Pour utiliser des variables, il est normalement obligatoire de les prédéfinir, soit dans la section Déclarations de la liste déroulante Objet, soit en début de procédure ou de fonction. Un programme où les variables sont bien déclarées rend un programme plus facile à comprendre, à lire et surtout à corriger en cas d'erreurs. Certes, il n'est pas obligatoire de les déclarer mais faites-le quand même, c'est un conseil. Si vous êtes prêt à déclarer une variable que vous voulez utilisez mais que vous êtes un étourdi, alors, utilisez simplement l'instruction Option Explicit (à placer dans la section Déclarations de

    la liste déroulante Objet) qui vous oblige à chaque fois à déclarer toutes vos variables avant de pouvoir exécuter l'application.

3.1 Déclaration explicite d'une variable

    Pour déclarer une variable, on utilise l'instruction Dim suivi du nom de la variable puis

    du type de la variable. Reprenons l'exemple du cours 2 :

    Dim DateNaissance Dim

    Message, Titre As String

    . Remarquez que la 1ère déclaration ne contient pas d'information sur le type de variable. Si vous déclarez une variable sans donner d'information sur le type de variable que c'est, alors, cette variable (DateNaissance) aura par défaut une variable du type Variant. Si vous avez bien lu l'exemple précédent, vous aurez compris qu'il s'agit ici d'une variable de type Variant (avec chiffres) qui lui est affectée par défaut.

    . La 2ème déclaration est par contre explicite. Vous pouvez aussi mettre 2 variables sur une même ligne à condition que le type de variable est le même pour les 2 et en les séparant par une virgule.

3.2 Déclaration implicite d'une variable

    Il existe une autre méthode de déclarer des variables. Pour cela, il suffit d'ajouter juste avant la variable, un symbole spécifique. Voici la liste des symboles avec le type de variable auxquelles il se rapportent :

    Type de Symbole variable

    % Integer

    & Long

    ! Single

    # Double

    @ Currency

    $ String

    Dans l'exemple ci-après, les deux premières instructions sont équivalentes à la troisième :

    Dim V1 as Integer V1% = 25

    V1 = 25

    4. Portée des variables

    En général, toute variable déclarée a une portée limitée. Cette même variable a une valeur

    nulle au départ. De plus, elle ne s'applique pas forcément à toutes les procédures d'une application. Tout dépend de 2 éléments : la manière de déclarer et l'emplacement de la

    variable.

    . dans une procédure, si vous déclarez une variable à l'aide de l'instruction Dim, sa portée se trouve limitée seulement à cette procédure. On dit que la variable est locale. Elle est donc initialisée à chaque appel de la procédure et détruite lorsque celle-ci se termine ( à moins que vous remplacez le mot Dim par Static). Elle n'est pas accessible

en dehors de la procédure. Vous pouvez remplacer l'instruction Dim par Private, les deux

    termes étant équivalentes s'ils sont placés à l'intérieur d'une procédure.

    . Si vous déclarez une variable dans la section Général/Déclarations d'une feuille ou d'un module en utilisant l'instruction Dim (ou Private), la variable est dite

    locale au module. Cette variable est disponible pour toutes les procédures de la feuille ou du module, mais pas pour les autres feuilles du projet.

    . Enfin, si vous déclarez une variable dans la section Général/Déclarations d'un module (et non d'une feuille) en utilisant l'instruction Public au lieu de Dim, elle

    devient accessible par toutes les feuilles et tous les modules de l'application. On dit qu'elle est globale.

5. Les constantes

    Contrairement aux variables dont les valeurs diffèrent souvent, les constantes ont des valeurs fixes. Mais tout comme les variables, on affecte aux constantes, un nom et une valeur qui est elle, fixe. De plus, les constantes se définissent de la même façon que les variables. Tout dépend donc de l'endroit où est défini la constante. Le mot Const peut

    être précédé de l'option Public pour que toutes les feuilles et modules de l'application puissent y accéder. Attention cependant à ne pas affecter à une constante des noms identiques aux constantes prédéfinies (VbSystemModal, VbOkOnly, VbArrow...) dans Visual Basic ! Prenons l'exemple du taux de TVA :

    Const TVA = 20.6 TotalTTC=PrixHorsTaxe x

    (1 + (TVA / 100))

    Cours 4 : Les tableaux

    1ère méthode | 2ème méthode | 3ème méthode | 4ème méthode

    1. Première méthode pour définir un tableau

    Les tableaux de valeurs sont utiles lorsque l'on manipule des données en tout genre. Ainsi, dans un carnet d'adresses, vous pouvez stocker toutes les adresses dans un tableau structuré.

    Par exemple :

    Dim Adresses (1 to 50 ) As String

    Adresses(1) = "12, avenue de la Fayette, Paris"

    ........

    Adresses(50) = "4, rue de la Paix, Paris"

    Comme vous pouvez le constatez, la définition d'un tableau ressemble beaucoup à celle d'une variable à la seule différence que vous devez donner une limite aux nombres de valeurs contenues dans un tableau. Pour appeler une des variables du tableau, il faut faire précéder de la variable, un numéro qui permet d'identifier la variable spécifique recherchée parmi toutes celles du tableau. ce tableau est à une dimension, Voici un exemple à 2 dimensions:

    Dim Adresses (1 to 50, 1 to 50) As String

    Adresses(1,0) = "Vincent"

    Adresses(1,1) = "12, Rue de la paix, Paris"

    .....

    Adresses(50,0) = "Philip"

    Adresses(50,50) = "7, Boulevard de la Villette"

    Notez qu'avec les fonctions LBound et UBound, vous pouvez obtenir les limites inférieures et supérieures d'un tableau.

    2. Deuxième méthode pour définir un tableau

    Il existe une autre façon de définir un tableau :

    Dim Adresses(50) As String

    Adresses(0) = "12, avenue de la Fayette, Paris"

    ........

    Adresses(49) = "4, rue de la Paix, Paris"

    Avec cette méthode, les limites du tableau ne sont pas définies. Notez que le nombre d'adresses est de 50 mais la numérotation va de 0 à 49 et non de 1 à 50. Il existe cependant un moyen pour que la numérotation commence à 1 : c'est en utilisant l'instruction Option Base (par exemple: Option Base = 1) qu'il faut placer dans la section Déclarations.

    3. Troisième méthode pour définir un tableau

    Pour construire un tableau, on peut aussi utiliser la fonction Array : Exemple :

    Dim Semaine, Jour As String

    Semaine = Array("lundi", "mardi", "mercredi", "jeudi",

    "vendredi", "samedi", "dimanche")

    Jour = (3) 'retourne jeudi

4. Quatrième méthode pour définir un tableau

    Une autre méthode consiste en la création de tableaux dynamiques. Pour comprendre cette méthode, prenons un exemple :

    Dim Adresse() As String

    Dim NbAdresses As Integer

    'Nouvelle adresse

    NbAdresses = nbAdresses + 1

    Redim Adresse (NbAdresses)

    Adresse (NbAdresses) = "75, Rue Lecourbe, Paris"

    Ainsi, à chaque fois que l'on lance cette procédure, le nombre total d'adresses (NbAdresses) est incrémenté (augmenté) de 1 et la nouvelle adresse est placé à la fin du tableau. en effet, Redim a pour effet de reformater le tableau, et donc, tout ceux qui était dans le tableau est aussi effacé sauf la dernière valeur entrée. Cependant, il existe un moyen de conserver les données déjà présentes dans le tableau. Pour cela, on fait appel à l'instruction Preserve :

    Redim Preserve Adresse

    (NbAdresses)

    Enfin, pour terminer, il est possible d'effacer toutes les données d'un tableau. Pour cela, on utilise l'instruction Erase suivi du nom du tableau.

    Cours 5 : Structure des conditions (tests, boucles)

    La structure des tests | La structure des boucles

    1. 1. Structure des tests

    2. 1.1 La structure : If...Then...Else...end If

Voici un exemple de structure simple avec l'instruction If :

    If condition Then

    Instructions 1

    else

    Instructions 2

    End if

    Interprétation : Si la condition est vérifiée alors les instructions 1 sont exécutées sinon les instructions 2 sont exécutées à la place. (Notez que l'on peut utiliser des opérateurs logiques And (et) et Or (ou) pour que plusieurs conditions doivent d'abord être vérifiées avant de pouvoir exécuter les instructions suivantes.). Le mot Else et les instructions qui

    suivent ne sont pas obligatoire.

    Voici un autre exemple de structure avec If mais un peu plus complexe:

    If Condition 1 Then

    Instruction 1 ElseIf

    Condition 2 Then

    Instruction 2

    Else

    Instructions X

    End If

    Interprétation : Si la condition 1 est vérifiée alors les instructions 1 sont exécutées. Sinon si la condition 2 est vérifiée alors les instructions 2 sont exécutées. Sinon, si aucune de ces deux conditions ne sont vérifiées alors les instructions X sont exécutées.

    Il existe une autre structure simplifiée de If mais qui moins utilisée:

    Variable = IIf (Condition, instructions 1, instructions 2)

    Interprétation : Si la condition est vérifiée alors les instructions 1 sont exécutées sinon les instructions 2 sont exécutées à la place. L'instruction IIf(Immediate If) est utile lorsque

    qu'il n'y a que une ou deux instructions en fonction d'une condition. Par ailleurs, la valeur retournée par la condition est affectée à une variable.

    1.2 La structure Select Case...End Select

    Lorsque l'on doit effectuer toute une série de tests, il est préférable d'utiliser la structure Select Case...End Select au lieu de If...Then...End if.

    Ainsi, les deux exemples suivants sont équivalents :

Select Case Semaine Case 1 Jour = "Lundi" Case 2 Jour = "Mardi"

Report this document

For any questions or suggestions please email
cust-service@docsford.com