SlideShare une entreprise Scribd logo
Visual Basic.NET
1
Aziz DAROUICHI
UCA-Marrakech
mailto: pr.azizdarouich@gmail.com
Introduction
Pourquoi Visual Basic
L’un des langages de programmation les plus performants
et les plus simples à utiliser.
Créé par John G. Kemeny et Thomas E. Kurtz en 1963 et devient
vite un langage populaire.
2
Introduction
Pourquoi Visual Basic
Adapté sur PC par Bill Gates, au milieu des années 70.
La simplicité du langage VB explique son choix pour:
le développement d'interfaces.
Développement rapide d'applications
Accès aux bases de données
…
3
Introduction
Pourquoi Visual Basic
Les huit principes de conception du BASIC étaient :
Être facile d'utilisation pour les débutants (Beginner) ;
Être un langage généraliste (All-purpose) ;
Autoriser l'ajout de fonctionnalités pour les experts (tout
en gardant le langage simple pour les débutants) ;
Être interactif ;
4
Introduction
Pourquoi Visual Basic
Fournir des messages d'erreur clairs et conviviaux ;
Avoir un délai de réaction faible pour les petits
programmes ;
Ne pas nécessiter la compréhension du matériel de
l'ordinateur ;
Isoler l'utilisateur du système d'exploitation.
5
Introduction
Les dessous de Visual Basic
Microsoft a construit Visual Basic sur la base d’un langage de
programmation pour débutants : le BASIC.
6
Introduction
Les dessous de Visual Basic
Définition
BASIC = Beginner’s All-purpose Symbolic Instruction Code
(code d’instructions symboliques multifonction pour débutants).
7
Introduction
Exemple d‘un programme BASIC
10 REM Ce programme calcule et affiche les 10 premiers carrés.
20 CLS
30 PRINT "Carrés de 1 à 10"
40 PRINT "Valeur", "Carré"
50 FOR i = 1 TO 10
60 PRINT i, (i*i)
70 NEXT i
80 PRINT
90 END
8
Introduction
Exemple d‘un programme BASIC
Sortie du programme
Carrés de 1 à 10
Valeur Carré
1 1
2 4
3 9
4 16
5 25
6 36
7 49
8 64
9 81
10 100 9
Introduction
Les dessous de Visual Basic
Définition
Un langage de programmation est un ensemble de
commandes et d’options de commandes (les arguments) par
lequel on envoie des instructions à l’ordinateur.
Un langage de programmation doit être plus précis qu’un
langage naturel.
10
Introduction
Les dessous de Visual Basic
Multiples avatars:
 MBASIC (pour Microsoft BASIC)
 GWBASIC
 BASICA (pour BASIC Avancé)
 Quick-BASIC
 Qbasic.
11
Introduction
Les versions de Visual Basic
• Visual Basic 1.0: sortie en mai 1991
• Visual Basic 6.0: sortie en 1998
12
Introduction
Exemples des langages dérivés
 Visual Basic pour Application (VBA):
-Disponible avec MS Office (Excel, Access, Word,...)
Visual Basic .NET:
-Le successeur désigné de Microsoft à Visual Basic 6.0,
et fait partie de la plate-forme Microsoft .NET.
13
Introduction
 Environnement de développement
Visual Studio
C’est une suite logicielle qui rassemble Visual Basic, Visual
C++, Visual C#,…
Microsoft nous propose généreusement une version «
Express » gratuite de chaque logiciel de cette suite,
Visual Studio Express.
Visual Basic 2010 Express
Télécharger Visual Basic Express edition sur le site de Microsoft,
cette version est gratuite et sans limitation de temps.
14
Introduction
Langage interprété vs langage compilé
Les langages interprétés, le programmeur peut exécuter
immédiatement son programme, voir sans délais les
résultats et les éventuelles erreurs.
Les langages interprétés, vous permettent d’exécuter le
programme à tout moment, alors que vous l’écrivez.
15
Introduction
Langage interprété vs langage compilé
Les langages compilés s’exécutent plus rapidement et sont mieux
appropriés au développement d’applications commerciales, mais
requièrent beaucoup plus d’efforts et d’apprentissage.
16
Introduction
Langage interprété vs langage compilé
Les langages compilés nécessitent des étapes supplémentaires,
la compilation et la liaison, avant que le programmeur ne puisse
exécuter son œuvre.
La compilation transpose le programme du langage dans
lequel il a été écrit au langage natif de l’ordinateur.
17
Introduction
Définitions
Programme:
Le programme, écrit dans un langage de programmation,
est un jeu d’instructions qui dirige l’ordinateur.
18
Introduction
Définitions
Application:
L’application est l’ensemble des fichiers d’un programme.
19
Introduction
Définitions
Code:
Le code est un autre mot servant à désigner l’ensemble d’instructions
du programme.
20
Introduction
Définitions
Bogue:
Un bogue (de l’anglais bug) est une erreur dans le programme.
Si votre programme ne s’exécute pas correctement, il vous
faudra le déboguer, c’est-à-dire éliminer une à une toutes les
erreurs.
21
Introduction
Définitions
Utilisateur:
L’utilisateur est celui qui utilise le programme.
Vous, le programmeur qui écrit les programmes, êtes aussi
utilisateur de vos propres programmes et de ceux qu’écrivent
les autres.
22
Introduction
Editions de Visual Basic
Visual Basic Edition Entreprise
Créée pour la programmation en équipe et les environnements
client-serveur, où le traitement et les données sont distribués à
plusieurs ordinateurs.
23
Introduction
Editions de Visual Basic
Visual Basic Edition Professionnelle
Conçue pour les programmeurs professionnels qui
souhaitent exploiter pleinement l’environnement de
programmation Visual Basic.
24
Introduction
Editions de Visual Basic
Visual Basic Edition Initiation
L’essentiel de Visual Basic, avec un jeu complémentaire d’outils
standards-tout ce dont vous avez besoin pour vous lancer dans la
programmation Visual Basic.
25
Introduction
Ecran de programmation Visual Basic 2010
26
Introduction
La nature visuelle de Visual Basic
Visual Basic.NETest plus qu’un simple langage de programmation.
Le secret de Visual Basic tient dans son nom : Visual.
Dans les systèmes d’exploitation Windows d’aujourd’hui,
les programmes doivent être capables d’interagir graphiquement
avec l’écran, le clavier, la souris et l’imprimante.
27
Introduction
Remarque importante
Souvenez-vous : vous ne pouvez simplement dire à l’ordinateur
ce qu’il doit faire et attendre qu’il fasse le boulot pour vous.
L’ordinateur n’est qu’une machine stupide et sans initiative ;
il a besoin pour travailler que vous lui fournissiez une liste détaillée
d’instructions.
28
Introduction
Remarque importante (suite)
Vous lui communiquez ces instructions sous la forme d’un
programme.
Un programme Visual Basic est constitué de codes et d’éléments
visuels qui définissent l’aspect de l’écran et les contrôles Windows
avec lesquels l’utilisateur interagit lorsqu’il lance le programme.
29
Introduction
Le processus de programmation
Étape 1: Déterminer ce que votre application devra faire en créant
un schéma général (partie conception).
Étape 2: Définir les caractéristiques ou propriétés des éléments
visuels qui composent l’interface, les écrans et les menus
avec lesquels l’utilisateur interagira (partie visuelle).
30
Introduction
Le processus de programmation
Étape 3: Ecrire le code de programmation en Visual Basic pour un
ou plusieurs éléments de l’interface en fonction des besoins,
(partie codage).
31
Introduction
Le processus de programmation
Étape 4: Tester l’application afin de déceler et d’éliminer tous
les
bogues (partie débogage).
Étape 5: Une fois les tests effectués, compiler le programme et
distribuer l’application compilée aux utilisateurs.
32
Introduction
Le processus de programmation
Grâce à la nature visuelle de Visual Basic, vous ne touchez au
clavier que bien plus tard dans le processus de programmation.
Au lieu d’utiliser du papier, vous dessinez directement vos écrans
à l’aide des outils Visual Basic.
Pour créer un tel écran, aucun code n’est nécessaire :
tout ce que vous avez à faire, c’est de faire glisser les divers contrôle
sur la fenêtre Feuilles.
33
Introduction
Le processus de programmation
34
Introduction
La maintenance du programme
La maintenance du programme est le terme employé pour désigner
la mise à jour du programme après sa distribution.
Cette mise à jour peut être le fait d’une demande des utilisateurs ou
d’un changement dans la façon dont le programme doit opérer.
35
Introduction
La maintenance du programme
Un programme est écrit une fois, mais retouché de nombreuses fois.
Mieux vous assurez cette maintenance du programme, plus votre
programme sera actuel et efficace.
Vous pouvez décider de distribuer une nouvelle version du programme
avec un numéro de version différent.
36
Introduction
La maintenance du programme
Remarque:
Il convient de commenter et de documenter votre code afin que
d’autres programmeurs puissent comprendre votre code s’ils devaient
le modifier par la suite.
37
Introduction
La programmation événementielle
Une fenêtre de programme Windows
38
Introduction
La programmation événementielle
L’utilisateur du programme de la Figure précédente pourrait cliquer
sur l’un des boutons, cocher l’une des cases ou activer l’une des
zones de liste déroulante.
Pour répondre efficacement aux actions de l’utilisateur et aux autres
activités propres à déclencher un événement, on emploie des
techniques de programmation événementielle.
39
Introduction
La programmation événementielle
Par événement, on désigne toute action qui se déclenche lors de
l’exécution du programme : clic de souris, frappe au clavier, etc.
Est orienté événement un programme qui réagit aux événements
Windows.
Un événement peut être provoqué par l’un des contrôles
(boutons de commande, cases à cocher, zones de liste déroulante,
barres de défilement...)
40
Prise de connaissance
La programmation événementielle
Un programme Visual Basic est constitué de l’interface visuelle,
fenêtres et contrôles, avec laquelle l’utilisateur interagit.
Le code de programmation vient relier tout cela ensemble.
41
Prise de connaissance
La programmation événementielle
Chacun des multiples contrôles est différencié par les propriétés que lui affecte le code.
42
Prise de connaissance en VB
Quiz
1) Sur quel langage Microsoft s’est-il fondé pour élaborer Visual Basic ?
Visual Basic est fondé sur le langage BASIC.
2) Pourquoi Visual Basic est-il adapté aux débutants comme aux
programmeurs confirmés ?
Visual Basic est un environnement visuel et exploite un langage
simple, dérive du BASIC.
Mais il permet de créer de puissantes applications Windows.
43
Prise de connaissance en VB
Quiz
3) Qu’est-ce qui est le plus important pour les novices en Visual Basic :
le langage de programmation ou l’interface visuelle ?
La nature visuelle de Visual Basic prime sur le langage de
programmation à plusieurs égards.
L’interface visuelle donne à vos programmes leur "visage" particulier
et interagit avec l’utilisateur.
Le langage de programmation travaille en coulisses pour connecter
l’ensemble des éléments visuels.
44
Prise de connaissance en VB
Quiz
4) Que signifient les termes bogue et déboguer ?
Un bogue est une erreur dans le programme.
Le débogage est le processus de correction des bogues.
5) Qu’est-ce qui s’exécute le plus vite : un programme écrit dans un
langage interprété ou un programme écrit dans un langage compilé ?
Les programmes écrits en langage compilé s’exécutent beaucoup
plus rapidement que les programmes écrits en langage interprèté.
45
Prise de connaissance en VB
Quiz
6) Quelle est la différence entre un contrôle et la valeur de propriété
d’un contrôle ?
Les contrôles sont des objets tels que labels, boutons de commande,
boutons d’option, etc., qui apparaissent sur la feuille.
Les propriétés et valeurs de propriétés d’un contrôle sont ce qui définit
son comportement et le distingue des autres.
46
Prise de connaissance en VB
Quiz
7) Les contrôles contiennent le code qui leur permet de réagir aux
actions de l’utilisateur. Vrai ou faux ?
Faux. Les contrôles ne contiennent pas de code.
Les contrôles sont des objets visuels avec lesquels l’utilisateur interagit.
47
Prise de connaissance
Démarrage de VB
Cliquer sur « Démarrer », sur « Programmes », puis sur le dossier
« Microsoft Visual Studio 2010 Express» ou cliquer directement su
l’icône de Microsoft Visual Studio 2010 Express existant sur le
bureau.
48
Prise de connaissance
Page de démarrage
49
Prise de connaissance
Barre d'outils
50
Prise de connaissance
Barre d'outils
51
Prise de connaissance
Barre d'outils
52
Prise de connaissance
Barre d'outils
53
Prise de connaissance
Windows Forms Application
54
Prise de connaissance
L‘environement Visual Basic
55
Explorateur de
solutions
Boîte à outils
Fenêtre de
propriétés
Concepteur de
Windows Forms
Formulaire
Prise de connaissance
Espace de travail
-Créer nos fenêtres, entrer nos lignes de code, etc.
56
Prise de connaissance
La Boîte à outils
Il s’agit d’une collection d’outils grâce auxquels vous
disposez
les contrôles standards et éventuellement ceux personnalisés
sur la feuille.
 La boîte à outils nous sera d'une grande utilité lorsque
nous créerons la partie graphique de nos applications, mais
inutile lors de l'écriture du code VB.
57
Prise de connaissance
La Boîte à outils
58
Prise de connaissance
La Boîte à outils
Parmi les contrôles de la boîte à outils de Windows Forms :
59
◦ Button: bouton de commande
◦ CheckBox: Affiche une case à cocher et une étiquette
pour le texte. Généralement utilisé pour définir des
options.
◦ CheckedListBox: Affiche une liste déroulante d'éléments
accompagnés chacun d'une case à cocher.
◦ ComboBox : Affiche une liste déroulante d'éléments
◦ DateTimePicker: Affiche un calendrier graphique
permettant aux utilisateurs de sélectionner une date ou
une heure.
◦ Label : Affiche du texte que les utilisateurs ne peuvent
pas directement modifier.
Prise de connaissance
La Boîte à outils
Parmi les contrôles de la boîte à outils de Windows Forms :
60
◦ ListBox : Affiche une liste d'éléments texte et graphiques
(icônes).
◦ PictureBox: Affiche dans un frame des fichiers graphiques
tels qu'images bitmap et icônes.
◦ RadioButton: Affiche une case d'option qui peut être
activée ou désactivée.
◦ TextBox : Affiche un texte entré au moment du design et
pouvant être modifié par les utilisateurs au moment de
l'exécution ou par programme.
◦ RichTextBox: Permet l'affichage du texte au format texte
brut ou RTF.
◦ MaskedTextBox : Contraint le format d'entrée d'utilisateur.
Prise de connaissance
Concepteur Windows Forms
C’est dans le Concepteur Windows Forms, appelé aussi
formulaire (ou feuille), que vous effectuerez la plupart de vos
opérations.
Vous pouvez ajuster la fenêtre Formulaires (ou Feuilles) de
façon à donner aux fenêtres créées à l’intérieur les dimensions
voulues.
Il permet d’afficher les formulaires que contient votre projet,
avec leurs contrôles.
61
Prise de connaissance
Concepteur Windows Forms
62
Prise de connaissance
Explorateur de solutions
L’explorateur de solutions, ou Fenêtre de solutions, contient
l’ensemble des composants de votre projet.
63
Prise de connaissance
Fenêtre Propriétés
La fenêtre des Propriétés décrit chaque propriété du contrôle
sélectionné.
C’est la fenêtre des propriétés qui va nous permettre, en mode
conception, de modifier les propriétés de nos objets.
N.B: Vous pouvez appuyer sur la touche F4 de votre clavier pour
afficher la fenêtre des propriétés.
64
Prise de connaissance
Fenêtre Propriétés
présente la liste des propriétés du contrôle sélectionné par
ordre alphabétique et affiche le choix des événements du
contrôle concerné.
65
Prise de connaissance
Outils de débogage
Lors de la compilation (Build) de votre application, les erreurs
importantes seront listées au niveau de cet onglet.
66
Prise de connaissance
Préfixes courants à placer en tête des noms d’objets
67
Prise de connaissance
Préfixes courants à placer en tête des noms
d’objets(suite)
68
Prise de connaissance
Préfixes courants à placer en tête des noms
d’objets(suite)
69
-4- Test et débogage de l'application
-5- Création d'un fichier exécutable
-6- Création d'un programme d'installation
Processus de développement d’un projetProcessus de développement d’un projet
avec VB.netavec VB.net
Propriétés Valeurs
Name
BackColor
Autosize
Visible
Font
TextBox1
Blue
True
True
Microsoft sansSérif 8pts
-1- Création de
l'interface utilisateur
-2- Définition des propriétés des objets de
l'interface utilisateur
Private Sub Form1_Load(………..) Handles Form1.Load
'Ajoutez votre code ici
End Sub
-3- Écriture de code pour l'ajout de fonctionnalités
 Une feuille de travail « Form » représente une fenêtre ou
une boîte de dialogue qui compose l'interface utilisateur
d'une application.
 Quelques propriétés :
Les Feuilles de travailLes Feuilles de travail (Form) (1/2)(Form) (1/2)
◦ BackColor: la couleur d'arrière-plan
◦ Font : la police du texte dans le contrôle
◦ Name: nom
◦ Size: la taille du formulaire
◦ Text : le texte associé à ce contrôle
◦ WindowState: indique si un formulaire est réduit, agrandi ou
normal. Au moment de l‘exécution
 Quelques événements :
Les Feuilles de travailLes Feuilles de travail (Form) (2/2)(Form) (2/2)
◦ Closed: Se produit lorsque le formulaire est fermé.
◦ KeyPress : Se produit lorsqu'une touche est enfoncée alors
que le contrôle a le focus.
◦ LostFocus: Se produit lorsque le contrôle perd le focus.
◦ Load: Se produit avant l'affichage de la feuille (au moment de
son chargement dans la RAM).
◦ Shown : Se produit après l'affichage de la feuille.
 Le contrôle Button Windows Forms permet à l'utilisateur
d'effectuer une action en cliquant dessus.
 Quelques propriétés :
Les boutons de commandeLes boutons de commande (Button) (1/2)(Button) (1/2)
◦ BackColor: Obtient ou définit la couleur d'arrière-plan du contrôle.
◦ Font :Obtient ou définit la police du texte affiché par le contrôle.
◦ Name: Obtient ou définit le nom du contrôle.
◦ Image: Obtient ou définit l’image affichée sur le contrôle button.
◦ Text : Obtient ou définit le texte associé à ce contrôle.
 Quelques événements :
Les boutons de commandeLes boutons de commande (Button) (2/2)(Button) (2/2)
◦ Click: Se produit suite à un clic sur le bouton
◦ DragDrop : Se produit lors d'une opération de glisser-déplacer.
◦ LostFocus: Se produit lorsque le contrôle perd le focus.
Private Sub BTN_Msg_Click( …….) Handles
BTN_Msg.Click
'Ajoutez votre code ici
End Sub
L’événement « Click »:
Lorsque l'utilisateur clique sur le bouton, ce dernier réagit
comme s'il était enfoncé puis relâché. Chaque fois qu'un
utilisateur clique sur un bouton, le gestionnaire
d'événements Click est appelé.
Atelier 1:Atelier 1: Familiarisation EDI et Bouton de commandeFamiliarisation EDI et Bouton de commande
Utilisation de l’EDI de VB
a. Examinez un formulaire dans le Concepteur Windows
Forms, ses propriétés et l'éditeur de code
b. Examinez les paramètres des propriétés des contrôles
c. Ouvrez, fermez, rouvrez et masquez la boîte à outils
Utilisation de formulaire et bouton de commande
a. Créer la feuille suivante:
75
Créer une application à partir de zéro
Atelier 2: Affichage Salam, tout le monde
On va créer un petit programme qui affiche:
Salam, tout le monde!
dés qu‘on clique sur le button.
76
Créer une application à partir de zéro
Atelier 3: Affichage Salam, tout le monde dans une zonte de texte
77
Créer une application à partir de zéro
Atelier 3: Version ameliorée
Afficher le nouveau message centré
 Changer la couleur, le texte, la position, la taille
Solution:
txt1.ForeColor = Color.Red
txt1.TextAlign = HorizontalAlignment.Center
txt1.Text = "Salam, tout le monde"
txt1.Left = 10
txt1.Top = 10
txt1.Height = 50
txt1.Width = 50
78
Créer une application à partir de zéro
Atelier 3: Version ameliorée avec With
Solution:
With txt1
.ForeColor = Color.Red
.Text = "Salam, tout le monde"
.Left = 10
.Top = 10
.Height = 50
.Width = 50
End With
79
Créer une application à partir de zéro
Atelier 3: Version ameliorée avec Me
Solution:
Me.txt1.ForeColor = Color.Red
Me. txt1.TextAlign = HorizontalAlignment.Center
Me. txt1.Text = "Salam, tout le monde"
Me. txt1.Left = 10
Me. txt1.Top = 10
Me. txt1.Height = 50
Me. txt1.Width = 50
Remarque:
L'objet Me (autrement dit la fenêtre), il faut le lier au reste, utilisons donc le
caractère « . » : nous allons donc accéder aux objets et contrôles de cette
fenêtre.
80
Créer une application à partir de zéro
Atelier 3: Version ameliorée avec Me et With
Solution:
With Me.txt1
.ForeColor = Color.Red
.Text = "Salam, tout le monde"
.Left = 10
.Top = 10
.Height = 50
.Width = 50
End With
81
Créer une application à partir de zéro
Atelier 5: Affichage d‘une image avec la commande Quitter
82
Créer une application à partir de zéro
Atelier 6: Placer des contrôles sur une feuille
83
Créer une application à partir de zéro
Atelier 7: Mot de passe
84
Créer une application à partir de zéro
Atelier 8: Mot de passe avec message d‘erreur
85
Analyse des données
Définition: Module
Un module est un fichier contenant du code de procédures.
Le fichier qui contient la feuille et son code est un module
de feuille.
Vous avez donc, sans le savoir, déjà travaillé avec des modules.
Module de feuille = contient la feuille et son code.
86
Analyse des données
Définition: Module
Remarque:
Un projet qui contient plusieurs feuilles contient plusieurs
modules de feuilles.
87
Analyse des données
Les données en Visual Basic
Les calculs peuvent impliquer différents types de données.
Par exemple, vous pouvez travailler sur des noms, des
adresses, des sommes d’argent, de grands et de petits
nombres, et des données logiques du type vrai/faux,
oui/non, etc.
88
Analyse des données
Les données en Visual Basic
Afin de répondre à tous les besoins des différents programmes,
Visual Basic supporte plusieurs types de données.
89
Analyse des données
Les données numériques
En règle générale, les données numériques relèvent d’une de
ces deux catégories :
Entiers: nombres entiers sans décimale, tels que 614 , 0, –934
ou 3 918 938.
Les entiers peuvent exprimer un âge, un numéral, un nombre
d’années, etc. En anglais, "entier" se dit integer.
90
Analyse des données
Les données numériques
Décimaux: nombres décimaux pouvant exprimer une valeur
fractionnaire, tels que 8.709, 0.005 ou –402.35534.
Les décimaux peuvent exprimer une température, une somme
d’argent, un taux d’intérêt, etc. Les décimaux exigent la virgule,
même si la partie décimale, située après la virgule, est zéro.
91
Analyse des données
Attention
Visual Basic stocke et traite différemment les entiers et les
décimaux, même si la différence n’est pas toujours évidente
pour nous autres humains.
Par exemple, –8 n’est pas la même chose, pour Visual Basic, que
–8.00.
92
Analyse des données
Les types de données numériques supportés par Visual Basic
93
Type Stockage Plage
Byte 1 octet De 0 à 255
Integer 2 octets De –32 768 à 32 767
Long 4 octets De –2 147 483 648 à 2 147 483 647
Single 4 octets De –3.402823E+38 à –1.401298E–45
1.401298E–45 à 3.402823E+38
Double 8 octets •–1.79769313486232E+308 à –4.94065645841247E–
324
•4.94065645841247E–324 à
1.79769313486232E+308
Currency 8 octets –922 337 203 685 477.5808 à 922 337 203 685
477.5807
Analyse des données
Suffixes Visual Basic désignant les types
94
Suffixe Type de données
& Long
! Single
# Double
@ Currency
Analyse des données
Autres types de données
Les types de données non numériques sont plus faciles à
comprendre que les types numériques, surtout si vous
n’êtes
pas spécialement fort en maths.
Le Visual Basic, laisse tous les autres langages loin derrière
lui quand il s’agit de traiter les chaînes de texte.
95
Analyse des données
Définition: Chaîne de caractères
Une chaîne est une série de caractères (une chaîne de zéro
caractère est encore une chaîne). Si ces caractères peuvent
être des chiffres, le contenu d’une chaîne ne peut jamais être
utilisé dans un calcul.
En revanche, il est possible de se servir des chaînes pour des
noms, des adresses, des codes, des numéros de sécurité
sociale, etc.
96
Analyse des données
Types de données non numériques supportés par Visual Basic
97
Type Stockage Plage
Char 2 octets
String Longueur de la chaîne Chaînes de caractères dont la longueur ne peut
excéder 231 caractères
Date 8 octets Du 1er janvier 100 au 31 décembre 9999
Boolean 2 octets True ou False
Analyse des données
Exemples des chaînes de caractères
"Hilare or de cymbale à des poings irrités "
 "44-51-54-48"
 "666, rue de la Bête"
" "
98
Analyse des données
Remarque sur les chaînes de caractères
Une chaîne nulle est une chaîne d’une longueur de zéro octet,
dont on se sert parfois pour réinitialiser le contenu d’une chaîne
(lui donner la valeur zéro).
99
Analyse des données
Remarque sur les chaînes de caractères
La valeur spéciale Null représente ce type de chaînes.
Visual Basic supporte aussi une valeur de chaîne spéciale dite
chaîne vide, représentée par le mot clé Empty.
100
Analyse des données
Remarque sur les chaînes de caractères
Les chaînes vides sont semblables aux chaînes nulles, mais sont
traitées d’une manière un peu différente : une propriété de contrôle
qui contient le mot clé Empty sera interprétée comme n’ayant
encore jamais été initialisée par quelque valeur que ce soit, pas
même une chaîne nulle.
101
Analyse des données
Exemples de type Date
#4 juillet 1776#
#7:11 pm#
#19:11:22#
#1-2-2003#
#5-Déc-99#
102
Analyse des données
Les variables
Définition
Une variable est une zone de stockage temporaire en mémoire,
désignée par un nom unique.
On peut y stocker pratiquement tout ce qu'on veut, comme par
exemple des nombres, des phrases, des tableaux, etc.
Les variables reçoivent les valeurs et les calculs intermédiaires
attribués aux contrôles de la feuille et générés par eux.
103
Analyse des données
Déclaration des variables
Définition
Une variable est une zone de stockage temporaire en mémoire,
désignée par un nom unique. Les variables reçoivent les valeurs et
les calculs intermédiaires attribués aux contrôles de la feuille et
générés par eux.
104
Analyse des données
Déclaration des variables
Par défaut, la déclaration de variables est obligatoire
Possibilité de déclaration implicite (Non recommandée):
Option Explicit Off
Possibilité de déclaration sans préciser le type:
Option Infer On 'déduction suite à la 1ère
affectation
Exemple :
Dim Numero = 9 ⇔ Dim Numero As Integer = 9
105
Analyse des données
Syntaxe de déclaration des variables
Dim NomDeLaVariable As TypeDonnee
NomDeLaVariable: le nom donné à la variable.
TypeDonnee: l’un des types de données présentés aux Tableaux précédents.
106
Analyse des données
Préfixes décrivant le type de données d’une variable
107
Type Stockage Exemple
bln Boolean blnBoutonEnabled
byt Byte bytLength
cur Currency curSales98
dte Date dteOverdue
dbl Double dblScientificAmt
int Integer intYear2011
lng Long lngWeatherDistance
sng Single sngSales1stQte
str String strFirstName
Analyse des données
Quelques conventions de nommage des variables
Ne comporte que des lettres, nombres ou _
Commence par une lettre ou _
Ne peut être un mot clé
Longueur limitée à 33 caractères
Ne commence jamais par un nombre
Toujours préfixer la variable par son type de données.
108
Analyse des données
Exemples de déclarations de variables possibles
1)
Dim intTotal As Integer
Dim curSales99 As Currency
Dim dteFinal As Date
Dim strName As String
Dim blnIsChecked As Boolean
2)
Dim intTotal As Integer, curSales99 As Currency
109
Analyse des données
Initialisation d’une variable
Dim var, var2 As Integer
var=25
var2=50
Dim var3 As Integer=5
110
Analyse des données
Les commentaires
Une ligne est considérée comme commentée si le caractère « ' »
(autrement dit, une simple quote) la précède ; une ligne peut
aussi n'être commentée qu'à un certain niveau.
'Commentaire
maVariable = 3* 4 ' Multiplie 3 et 4, et entre le résultat dans maVariable
111
Analyse des données
Remarque sur variable locale et variable globale
Si vous déclarez une variable à l’intérieur d’une procédure (qu’il
s’agisse ou non d’une procédure événementielle), alors la variable
est disponible pour toute la procédure, et seulement pour cette
procédure. Les autres procédures n’ont aucun accès à la variable,
qui ainsi reste locale, c’est-à-dire valable uniquement pour la
procédure qui la contient.
112
Analyse des données
Remarque sur variable locale et variable globale
Si, en revanche, vous déclarez une variable dans la section de
déclarations du module, cette variable sera disponible pour toutes
les procédures du module. La variable est alors globale pour le
module.
113
Analyse des données
Déclaration des constantes
Const nomDeLaConstante As TypeDeDonnée= valeur
Exemples:
1) Const pi As Single=3.14
2) Const x As Integer =140
Remarque:
Ajouter le mot clé Public pour la rendre publique
114
Analyse des données
Les opérateurs Visual Basic
115
Opérateur Signification Exemple Résultat
^ Puissance 2^3 8
* Multiplication 2*3 6
/ Division 6/2 2
+ Addition 2+3 5
- Soustraction 5-2 3
Mod Modulo 11 Mod 3 2
 Division entière 113 3
+ ou & Concaténation de chaînes "Bon" & "jour" "Bonjour"
Analyse des données
L’ordre des opérateurs
116
Priorité Opérateur Exemple Résultat
1 Parenthèses () (2 + 3) * 7 35
2 ^ 2 ^ 3 + 1 9
3 *, /, , Mod 2 + 3 * 7 23
4 +, – 10 – 4 * 2 + 1 3
Analyse des données
Les opérateurs Visual Basic
Opérateurs abrégés
X += 6  X=X+6
Valable aussi pour les autres opérateurs :
-= *= /= = ^= &=
117
Analyse des données
Déclaration des chaînes
Dim strNomDeLaChaine As String
Exemples de déclarations de variables à longueur variable:
Dim strNomVille As String
Dim strNomBoulvard As String
118
Opérateurs et instructions de contrôle
Les opérateurs conditionnels
119
Opérateur Description Exemple Résultat
= Egal à 7 = 2 False
> Supérieur à 6 > 3 True
< Inférieur à 5 < 11 True
>= Supérieur ou égal à 23 >= 23 True
<= Inférieur ou égal à 4 <= 21 True
<> Différent de 3 <> 3 False
Opérateurs et instructions de contrôle
Comparaison des chaines de caractères
Les comparaisons de chaînes suivent ces règles générales :
Les lettres capitales valent moins que les minuscules ; ainsi,
"BONJOUR" vient avant "bonjour".
 Les lettres se comparent selon l’ordre alphabétique ; ainsi, "A"
vaut moins que "B", et le nom "Walter" passe avant le nom
"William".
 Les nombres valent moins que les lettres ; ainsi, "3" est plus
petit que "trois".
120
Opérateurs et instructions de contrôle
Comparaison des chaines de caractères
Remarque:
Une instruction spéciale peut apparaître dans la section de
déclarations d’un module :
Option Compare Text
Cette instruction, éventuellement associée à l’instruction
Option Explicit, a pour effet que les capitales et les minuscules
sont égales en comparaison.
121
Opérateurs et instructions de contrôle
Combinaison d’opérateurs conditionnels et logiques
122
Opérateur Description Exemple Résultat
And Chaque terme de l’expression doit
être True
(2 < 3) And (4 < 5) True
Or L’un des deux termes doit être
True
(2 < 3 ) Or (6 < 7) True
Xor OU exclusif: une seule des deux
conditions doit être vraie pour que
le résultat soit Vrai
( 1 = 1) XOR (2 = 2)
( 2 > 1) XOR (3 < 1)
False
True
Not Nie l’expression Not (3 = 3) False
Opérateurs et instructions de contrôle
Les instructions If ...Then...
Syntaxe
If condition Then
Bloc d’instructions Visual Basic
End If
Remarque:
Dans une instruction If, les parenthèses ne sont pas nécessaires
autour de la condition; en revanche, elles désignent clairement la
condition à interroger, et en cela clarifient le code.
123
Opérateurs et instructions de contrôle
Les instructions If ...Then...
Remarque:
Dans une instruction If, les parenthèses ne sont pas nécessaires
autour de la condition; en revanche, elles désignent clairement
la condition à interroger, et en cela clarifient le code.
124
Opérateurs et instructions de contrôle
Les instructions If ...Then...Else
Syntaxe
If condition Then
Bloc d’instructions 1Visual Basic
Else
Bloc d’instructions 2Visual Basic
End If
125
Opérateurs et instructions de contrôle
Instructions If... Else imbriquées
Syntaxe
If condition1 Then
Bloc d’instructions Visual Basic
ElseIF condition2 Then
Bloc d’instructions Visual Basic
Else
Bloc d’instructions Visual Basic
End If
126
Opérateurs et instructions de contrôle
Instructions If... Else imbriquées
Exemple
Dim moyenne As Short
Dim appreciation As String
If moyenne <10 Then
appreciatioon= "Echec"
ElseIf moyenne<=15 Then
appreciation= "Moyen"
Else
appreciation="Excellent"
EndIf
127
Opérateurs et instructions de contrôle
Les instructions Select Case
L’instruction Select Case est la plus appropriée pour vérifier
des conditions multiples.
L’imbrication successive de trois ou quatre instructions
If... Else complique considérablement le programme.
128
Opérateurs et instructions de contrôle
Les instructions Select Case
Select Case expression
Case condition
Bloc d’instructions Visual Basic
[ Case condition1
Bloc d’instructions Visual Basic]
[ Case condition2
Bloc d’instructions Visual Basic]
:
[ Case conditionN
Bloc d’instructions Visual Basic]
[Case Else
Bloc d’instructions Visual Basic]
End Select
129
Opérateurs et instructions de contrôle
Les instructions Select Case
Select Case choisit entre plusieurs conditions.
Le nombre de ces conditions, indiqué dans le corps [ Case
condition#...], varie selon la situation.
Si aucune des conditions n’est remplie, le corps de Case Else
(s’il y en a un) s’exécute.
130
Opérateurs et instructions de contrôle
Les instructions Select Case comparent des valeurs multiples
Dim Age As Integer
Select Case Age
Case 18
Label1.text = "conduire"
Case 23
Label1.Text = "travailler"
Case 60
Label1.Text="retraite "
End Select
131
Opérateurs et instructions de contrôle
Les instructions Select Case comparent des valeurs multiples
Select Case txtGrade.Text
Case "A"
lblAnnounce.Text= "Très bien "
Case "B"
lblAnnounce. Text = "Bien "
Case "C"
lblAnnounce. Text = "Peut mieux faire"
Case "D"
lblAnnounce. Text= "Médiocre "
Case "E"
lblAnnounce. Text= "Mauvais"
Case Else
lblAnnounce. Text = "Note non validée"
End Select 132
Opérateurs et instructions de contrôle
Les instructions Select Case
Visual Basic supporte un autre format de Select Case, qui permet
de spécifier, par le mot clé Is, un opérateur conditionnel pour
chaque condition.
133
Opérateurs et instructions de contrôle
Comparaisons conditionnelles dans Select Case
Select Case txtGrade.Text
Case Is >= 18
lblAnnounce. Text = "Très bien "
Case Is >= 15
lblAnnounce.Text = "Bien"
Case Is >= 12
lblAnnounce. Text = "Peut mieux faire"
Case Is >= 10
lblAnnounce. Text = "Médiocre"
Case Else
lblAnnounce. Text = "Mauvais"
End Select 134
Opérateurs et instructions de contrôle
Remarque
Les instructions Select Case ne conviennent pas à tous les types de
comparaisons.
Les opérateurs d’inclusion ou logiques ne sont pas supportés ; les
conditions Case ne peuvent donc pas être interrogées par And, Or,
ni Not.
Pour cela, la seule solution consiste à imbriquer des instructions
If... ElseIf... End If.
135
Opérateurs et instructions de contrôle
Comparaisons de valeurs séquentielles dans Select
Case
Select Case txtGrade.Text
Case 0 To 9
lblAnnounce. Text = "Mauvais"
Case 10 To 11
lblAnnounce. Text = "Médiocre"
Case 12 To 14
lblAnnounce. Text = "Peut mieux faire"
Case 15 To 17
lblAnnounce. Text = "Bien"
Case Else
lblAnnounce. Text = "Très bien" 136
Opérateurs et instructions de contrôle
Remarque d’or
On peut combiner les différents formats de Case à l’intérieur
d’une même instruction Select Case.
Voici un exemple :
Case 101, 102, 201 To 205, Is > 300
Si l’expression spécifiée dans Select Case renvoie une valeur
égale à 101, 102, 201, 202, 203, 204, 205, ou supérieure à 300, le
corps de Case s’exécute.
137
Opérateurs et instructions de contrôle
Les boucles Do
Test antérieur: Boucle Tant Que…Faire
Do While condition
Bloc d’instructions Visual Basic
Loop
Exemple
Dim Nom As String
Do While Nom <> "Fin"
Nom = InputBox ("saisir texte ou taper Fin")
If Nom<> "Fin" Then
Label1.Text=Nom
EndIf
Loop 138
Opérateurs et instructions de contrôle
Les boucles Do
Test antérieur: Boucle TantQue…Faire
La boucle Do est une instruction multiligne.
Comme l’instruction If, l’instruction Do supporte différents
formats .
139
Opérateurs et instructions de contrôle
Les boucles Do
Test antérieur: Boucle TantQue…Faire
Do While condition
Bloc d’instructions Visual Basic
Loop
Exemple:
Do While MotProposé <> MotDePasse
MotProposé = InputBox("Donnez votre mot de passe")
Loop
140
Opérateurs et instructions de contrôle
Les boucles Do
Test antérieur: Boucle TantQue…Faire
Do Until condition
Bloc d’instructions Visual Basic
Loop
Exemple:
Do Until MotProposé <> MotDePasse
MotProposé = InputBox("Donnez votre mot de passe")
Loop
141
Opérateurs et instructions de contrôle
Les boucles Do
Test postérieur: Boucle Faire…TantQue
Do
Bloc d’instructions Visual Basic
Loop While condition
Exemple:
Do
MotProposé = InputBox("Donnez votre mot de passe")
Loop While MotProposé <> MotDePasse
142
Opérateurs et instructions de contrôle
Les boucles Do
Test postérieur: Boucle Faire …TantQue
Do
Bloc d’instructions Visual Basic
Loop Until condition
Exemple:
Do
MotProposé = InputBox("Donnez votre mot de passe")
Loop Until MotProposé <> MotDePasse
143
Opérateurs et instructions de contrôle
Remarque
Vous devez, d’une manière ou d’une autre, modifier la condition
contenue dans le corps de la boucle ; autrement, la boucle
s’exécuterait indéfiniment.
Si d’aventure vous écrivez une boucle sans fin, votre application
se bloque jusqu’à ce que vous cliquiez sur le bouton Fin de
Visual Basic ou sur le bouton de fermeture de l’application.
Si rien, dans le corps de la boucle, ne permet de modifier la
condition testée, la boucle continuera de s’exécuter.
144
Opérateurs et instructions de contrôle
Les boucles For
For compteur = ValeurInitiale To ValeurTerminale [Step PasIncrementation]
Bloc d’instructions Visual Basic
Next [compteur]
145
Opérateurs et instructions de contrôle
Exemples
1) For i = 1 To 10
lblOut. Text = i
Next
2) For i = 10 To 100 Step 5
lblOut. Text = i
Next
3) For i = 1000 To 0 Step -100
lblOut. Text = i
Next
146
Opérateurs et instructions de contrôle
Exemples
For Out = 1 To 4
For In = 1 To 10
‘Ici, le bloc de code
Next In
Next Out
147
Opérateurs et instructions de contrôle
Les instrucitons Exit
Il arrive parfois, selon les données, qu’une procédure
(événementielle ou autre) doive être précipitamment
interrompue.
148
Opérateurs et instructions de contrôle
Les instrucitons Exit
Voici le format de l’instruction Exit :
Exit Sub/Function/Do/For
149
Opérateurs et instructions de contrôle
Les instrucitons Exit
Exemple: Exit for
For i=1 To 10
Nom = InputBox (" Votre nom ou Fin pour quitter")
if Nom = "Fin" Exit For
Label1.Text=Nom
Next i
150
Opérateurs et instructions de contrôle
Les instrucitons Exit
Exemple: Exit Sub
Private Sub cmdCalc()
If (txtSales.Text < 50000) Then
Exit Sub ’ Interrompt la procédure
Else
lblBonus. Text = txtSales.Text * .05
End If
End Sub
151
Support avancé du clavier et de
l’écran
Les fonctions internes
La fonction MsgBox()
MsgBox() est une fonction qui affiche une boîte de message.
Une boîte de message contient une icône, un message, et
au moins un bouton de commande.
Ce bouton de commande laisse à l’utilisateur le temps de
prendre connaissance du message ; lorsqu’il aura fini sa lecture,
il cliquera sur le bouton.
152
Support avancé du clavier et de
l’écran
Les fonctions internes
Exemple
153
Support avancé du clavier et de
l’écran
Les fonctions internes
La fonction MsgBox()
Voici le format de la fonction MsgBox() :
IntResponse = MsgBox(Prompt, intStyle, strTitle])
IntResponse: indique le type de l’entier renvoyé par la fonction.
strPrompt: c’est une chaîne (ou un contrôle qui contient une
chaîne) spécifiant le message qui s’affichera dans la boîte de
message.
intStyle: détermine le style des boutons.
strTitle: spécifie le libellé qui apparaîtra dans la barre de titre.
154
Support avancé du clavier et de
l’écran
Les fonctions internes
Exemple:
155
Support avancé du clavier et de
l’écran
Valeurs entières permettant de spécifier le style des
boutons
Chr(13): représentant des retours à la ligne 156
Valeur Constante nommée Description
0 vbOKOnly Bouton OK
1 vbOKCancel Boutons OK, Annuler
2 vbAbortRetryIgnore Boutons Abandonner, Réessayer, Ignorer
3 vbYesNoCancel Boutons Oui, Non, Annuler
4 vbYesNo Boutons Oui, Non
5 vbRetryCancel Boutons Réessayer, Annuler
Support avancé du clavier et de
l’écran
Exemples
intRéponse = MsgBox("Prêt pour l’impression ?", 1, "pjtFonctionInterne")
intRéponse = MsgBox("Prêt pour l’impression ?", vbOKCancel, "pjtFonctionInterne")
157
Support avancé du clavier et de
l’écran
Exemples
intRéponse = MsgBox("Prêt pour l’impression ?", 2, "pjtFonctionInterne")
158
Support avancé du clavier et de
l’écran
Exemples
intRéponse = MsgBox("Prêt pour l’impression ?", 3, "pjtFonctionInterne")
159
Support avancé du clavier et de
l’écran
Exemples
intRéponse = MsgBox("Prêt pour l’impression ?", 1, "pjtFonctionInterne")
If (intRéponse = 1) Then
’ Ici, le code chargé de gérer
’ le clic sur le bouton OK.
Else
’ Ici, le code chargé de gérer
’ le clic sur le bouton Annuler.
End If
160
Support avancé du clavier et de
l’écran
Les valeurs renvoyées indiquent quels boutons ont été
cliqués
Remarque: Echap = Annuler
161
Valeur Constante nommée Description
1 OK L’utilisateur a cliqué sur OK
2 Cancel L’utilisateur a cliqué sur Annuler
3 Abort L’utilisateur a cliqué sur Abandonner
4 Retry L’utilisateur a cliqué sur Réessayer
5 Ignore L’utilisateur a cliqué sur Ignorer
6 Yes L’utilisateur a cliqué sur Oui
7 No L’utilisateur a cliqué sur Non
Support avancé du clavier et de
l’écran
Les boutons par défaut
Le premier bouton d’une boîte de message est toujours le
bouton par défaut.
Visual Basic met automatiquement le focus sur le premier
bouton (le plus à gauche), et le déclenche dès que l’utilisateur
appuie sur Entrée.
162
Support avancé du clavier et de
l’écran
Les boutons par défaut
intRéponse = MsgBox("L’imprimante est-elle allumée",
vbYesNoCancel + vbDefaultButton1)
163
Support avancé du clavier et de
l’écran
Ces arguments permettent de spécifier le bouton par défaut
164
Valeur Constante nommée Description
0 vbDefaultButton1 Premier bouton par défaut
256 vbDefaultButton2 Deuxième bouton par défaut
512 vbDefaultButton3 Troisième bouton par défaut
Support avancé du clavier et de
l’écran
Les icônes
Valeurs spécifiant l’icône de la boîte de message
165
Valeur Constante nommée Description Icône
16 vbCritical Erreur critique
32 vbQuestion Question
48 vbExclamation Avertissement
64 vbInformation Information
Support avancé du clavier et de
l’écran
Exemple en utilisant les icônes
intRéponse = MsgBox("L’imprimante est-elle allumée ?",
vbYesNoCancel + vbQuestion + vbDefaultButton2, "Une petite
question")
166
Support avancé du clavier et de
l’écran
La fonction InputBox()
La fonction InputBox() affiche une boîte de message qui permet à
l’utilisateur de répondre "dans le texte ".
Cette combinaison d’une boîte de message et d’une sorte de zone de
texte est appelée boîte d’entrée.
167
Support avancé du clavier et de
l’écran
La fonction InputBox()
Seuls les boutons OK et Annuler apparaissent dans une boîte
d’entrée.
Les boîtes d’entrée n’affichent pas non plus d’icône,
contrairement aux boîtes de message.
168
Support avancé du clavier et de
l’écran
La fonction InputBox()
Voici le format de la fonction InputBox() :
strRéponse = InputBox(Prompt, Titre, texteParDefaut, Xposition,Yposition)
InputBox() renvoie une valeur de type chaîne. La chaîne
renvoyée est la réponse saisie par l’utilisateur dans le champ.
Prompt: Le message ou la question qui s’affiche dans la boîte
d’entrée. La longueur maximale de Prompt est de 1024 caractères.
169
Support avancé du clavier et de
l’écran
La fonction InputBox()
Voici le format de la fonction InputBox() :
strRéponse = InputBox(Prompt, Titre, texteParDefaut, Xposition,Yposition)
Titre: Le texte qui apparaît dans la barre de titre. A défaut de titre,
Visual Basic affiche le nom du projet.
texteParDefaut: Contenu par défaut du champ de saisie. L’utilisateur
peut accepter cette réponse par défaut, qui sera alors la valeur
renvoyée ; il peut la modifier, ou saisir une réponse entièrement
nouvelle. On se sert d’une valeur par défaut lorsque la réponse est
prévisible et n’attend que d’être validée par le bouton OK.
170
Support avancé du clavier et de
l’écran
La fonction InputBox()
Voici le format de la fonction InputBox() :
strRéponse = InputBox(Prompt, Titre, texteParDefaut, Xposition,Yposition)
Xposition, Yposition: Coordonnées en twips de la boîte d’entrée. Il est
préférable, quand la question posée renvoie à d’autres feuilles ou boîtes
de dialogue déjà à l’écran, de ne pas afficher la boîte d’entrée par-dessus.
Si vous ne spécifiez pas de coordonnées, Visual Basic affiche par défaut la
boîte d’entrée au centre de l’écran.
Remarque: twips = 1/567 de centimètre
171
Support avancé du clavier et de
l’écran
Exemple de la fonction InputBox()
strRéponse = InputBox("Quel est le nom du client ? ","Identité client")
172
Support avancé du clavier et de
l’écran
Exemple de la fonction InputBox()
strRéponse = InputBox("Quel est le nom du client ?", "Identité client",
"Joumana Souiri", 500, 750)
173
Support avancé du clavier et de
l’écran
Exemple de la fonction InputBox()
strRéponse = InputBox("Quel est le nom du client ?", "Identité
client", "Joumana Souiri", 500, 750)
If (strRéponse <> "") Then
’ Code chargé de gérer l’entrée utilisateur
Else
’ Code chargé de gérer le clic sur Annuler
End If
Remarque: Empty=""
174
Support avancé du clavier et de
l’écran
Les cases à cocher
Définition
Une case à cocher (check box, en anglais) est une option
proposée sur la feuille.
La case est cochée lorsque l’option est sélectionnée, décochée
lorsque l’option est désélectionnée.
Les cases à cocher offrent à l’utilisateur le choix entre deux
valeurs possibles : True/False, Enabled/Disabled, etc.
175
Support avancé du clavier et de
l’écran
Les cases à cocher
Remarque
Une case à cocher est soit cochée, soit décochée.
Checked est la propriété du contrôle Check-Box qui
détermine
l’état de la case.
Si la propriété Checked vaut True, l’option est sélectionnée et
la case est cochée.
Si Checked vaut False, l’option est désélectionnée et la case
décochée.
176
Support avancé du clavier et de
l’écran
Les cases à cocher
L’état d’une case à cocher peut être interrogé par une
instruction If du format suivant :
If (chkUnder.Checked = true) Then
’ Code chargé de gérer l’état "coché"
Else
’ Code chargé de gérer l’état "décoché"
End If
177
Support avancé du clavier et de
l’écran
Exemple 1:
178
Support avancé du clavier et de
l’écran
Exemple 1:
Police de caractères (ou Font)
Une 'Font' est définie par:
- Un nom.
- Une taille.
- Un style (gras, italique, souligné..)
179
Support avancé du clavier et de
l’écran
Exemple 1:
Police de caractères (ou Font)
-Pour modifier la police de caractère utilisée dans un contrôle, il
faut lui assigner un objet 'Font‘:
label1.Font = New System.Drawing.Font("Arial", 10)
-On indique le nom de la font et la taille, on aurait pu ajouter un
troisième argument: le style (gras, italique, souligné):
label1.Font = New System.Drawing.Font("Arial", 10, FontStyle.Bold )
180
Support avancé du clavier et de
l’écran
Les boutons d’option
Les boutons d’option donnent à l’utilisateur la possibilité de
choisir parmi plusieurs options.
A l’inverse des cases à cocher, en revanche, un seul bouton
d’option peut être sélectionné à la fois.
Les boutons d’option offrent un choix unique parmi plusieurs
options.
N.B: la propriété pour voir quel bouton radio est coché est la
même
qu’une case à cocher.
181
Support avancé du clavier et de
l’écran
Exemple
182
Support avancé du clavier et de
l’écran
Le contrôle Frame et les groupes d’options
183
Support avancé du clavier et de
l’écran
Exemple 2
184
Support avancé du clavier et de
l’écran
Exemple 3
185
Gestion de la souris et contrôles avancés
Les contrôles ListBox
Voici les différents types de zones de liste :
zone de liste simple ;
ComboBox liste déroulante ;
ComboBox simple ;
ComboBox déroulante.
186
Gestion de la souris et contrôles avancés
Les zones de liste simples
Le contrôle zone de liste simple permet à l’utilisateur de
sélectionner un ou plusieurs éléments dans une liste
prédéfinie.
Pour ajouter une zone de liste simple à votre feuille,
double-cliquez sur le contrôle ListBox de la Boîte à outils.
187
Gestion de la souris et contrôles avancés
Les zones de liste simples
Quelques propriétés:
Name: nom de la liste.
SelectMode: indique le nombre d'éléments qu'on peut
sélectionner et le mode de sélection.
None: aucune sélection n'est possible.
One: sélection d'un seul élément (valeur par défaut)
MultiSimple: sélection de plusieurs éléments par un simple clic.
MultiExtended: sélection de plusieurs éléments avec un clic en
appuyant sur la touche Shift (ou Ctrl).
188
Gestion de la souris et contrôles avancés
Les zones de liste simples
Quelques propriétés:
Items: une collection (possède des propriétés et des méthodes) qui permet
d'accéder aux éléments de la liste.
SelectedItem: l'élément sélectionné dans la liste (si SelectionMode=
One)
SelectedIndex: indice de l'élément sélectionné (= -1 si aucun
élément n'est sélectionné)
SelectedItems: une collection représentant les éléments sélectionnés
dans la liste (si SelectionMode=MultiSimple ou MultiExtended)
SelectedIndices: une collection représentant les indices des
éléments sélectionnés.
Sorted: indique si la liste est triée (True) ou non (False)
189
Gestion de la souris et contrôles avancés
Les zones de liste simples
Initialisation du contrôle listbox
Dans la fenêtre Propriétés, cliquez sur la propriété Items d’un
contrôle ListBox : une liste s’affiche, dans laquelle vous pouvez
ajouter des valeurs.
190
Gestion de la souris et contrôles avancés
Les zones de liste simples
Initialisation du contrôle listbox
Méthode assistée
Lors du clic sur la liste simple, elle apparaît sélectionnée et une petite
flèche apparaît en haut à droite de cette sélection, comme à la figure
suivante.
Cliquez maintenant sur Modifier les éléments pour lui en attribuer.
191
Gestion de la souris et contrôles avancés
Les zones de liste simples
Pour ajouter des éléments à une liste, on se sert de la méthode
Items.Add.
192
Gestion de la souris et contrôles avancés
Les zones de liste simples
Private Sub Form_Load()
’ Initialise les valeurs du contrôle.
lstCouleurs.Items. Add "Rouge"
lstCouleurs.Items. Add "Bleu"
lstCouleurs.Items. Add "Vert"
lstCouleurs.Items. Add "Jaune "
lstCouleurs.Items. Add "Orange"
lstCouleurs.Items. Add "Blanc"
End Sub
193
Gestion de la souris et contrôles avancés
Les zones de liste simples
Pour ajouter la couleur Aqua à la liste:
lstCouleurs.Items.Add "Aqua"
Pour Ajouter '4' :
lstCouleurs.Items.Add(4.Tostring)
Pour insérer ‘Kiwi’ en 4ème position :
lstCouleurs.Items.Insert(4, "Kiwi")
Pour ajouter plusieurs éléments en une seule fois on utilise
Items.AddRange:
Dim tabPays() As String {"Maroc", "Tunisie", "Lybie" }
Me.ListBox1.Items.AddRange(tabPays)
194
Gestion de la souris et contrôles avancés
Les zones de liste simples
Pour trier les éléments de liste simples, on utilise la proprieté
Sorted
lstCouleurs.Sorted=True
195
Gestion de la souris et contrôles avancés
Les zones de liste simples
Remarque importante:
L’élément sélectionné est mis en surbrillance et sa valeur est stockée
dans lstCouleurs.text (également dans lstCouleurs.SelectedItem )
196
Gestion de la souris et contrôles avancés
Les zones de liste simples
Exemple:
197
Gestion de la souris et contrôles avancés
Les zones de liste simples
Le code:
Private Sub lstCouleurs_Click()
‘Copie l’élément sélectionné dans la zone de texte.
txtCouleurs.Text = lstCouleurs.SelectedItem
End Sub
198
Gestion de la souris et contrôles avancés
Les zones de liste simples
Chaque élément de la zone de liste se voit affecter une valeur
index,
pour être distingué des autres.
L’index commence à 0 pour le premier élément, et ainsi de suite.
La méthode IndexOf de la zone de liste permet de déterminer la
valeur d’index de l’élément.
L’index de l’élément sélectionné est stock é dans SelectedIndex.
199
Gestion de la souris et contrôles avancés
Les zones de liste simples
Pour accéder à un élément de la zone de liste:
lstCouleurs.Items(3).ToString
200
Gestion de la souris et contrôles avancés
Les zones de liste simples
Pour retirer le troisième élément de la liste, voici ce que
serait
le code :
lstCouleurs.Items.RemoveAt(2)
Pour retirer l’élément sélectionné de la liste:
lstCouleurs.Items.Remove(lstCouleurs.SelectedItem)
Pour retirer l'élément "Blanc":
201
Gestion de la souris et contrôles avancés
Les zones de liste simples
Pour vider la liste:
lstCouleurs.Items.Clear()
202
Gestion de la souris et contrôles avancés
Les zones de liste simples
1) Supprime les cinq éléments de la liste:
For I = 0 To 4
lstCouleurs. Items.RemoveAt(I)
Next I
2) Supprime tous les éléments de la liste:
intTotal = lstCouleurs.Items.Count ‘Stocke le nombre total des éléments de la liste.
For I = 1 To intTotal
lstCouleurs. Items.RemoveAt(0)
Next I
203
Gestion de la souris et contrôles avancés
Les contrôles ComboBox
 Combinaison d'une liste simple et une zone de texte.
 On peut sélectionner une seule valeur de la liste ou saisir une
dans la zone de texte.
Exemple
204
Zone de texte
Bouton pour
dérouler la liste
Gestion de la souris et contrôles avancés
Les contrôles ComboBox
Quelques propriétés:
Name: nom de la liste.
DropDownStyle: indique l'apparence et le mode d'utilisation de la
liste:
Simple: possibilité de saisie et tous les éléments de la liste sont visibles.
DropDown: possibilité de saisie et seul l'élément sélectionné sera visible
(valeur par défaut)
DropDownList: pas de possibilité de saisie, on ne peut que
sélectionner un élément de la liste.
205
Gestion de la souris et contrôles avancés
Les contrôles ComboBox
Le contrôle ComboBox est disponible en trois types:
 ComboBox liste déroulante ;
 ComboBox simple (fonctionne comme une combinaison de zone de liste
et de zone de texte.);
 ComboBox déroulante.
206
Gestion de la souris et contrôles avancés
Les contrôles ComboBox
Les ComboBox liste déroulante supportent les mêmes méthodes
et les mêmes propriétés que les zones de liste.
207
Gestion de la souris et contrôles avancés
Le contrôle Timer
Le contrôle Timer vous permet de générer des réponses sur la
base
des valeurs envoyées par l’horloge interne du PC.
le code peut s’exécuter sur la base d’intervalles de temps,
indépendamment de la vitesse du PC, parce que le temps est une
constante.
208
Gestion de la souris et contrôles avancés
Le contrôle Timer
Le contrôle Timer reçoit les événements timer et y répond en
fonction des propriétés que vous avez définies.
Lorsque vous disposez le contrôle Timer sur la feuille, vous
déterminez la fréquence des événements timer.
209
Gestion de la souris et contrôles avancés
Le contrôle Timer
Cet intervalle correspond à l’une des propriétés du contrôle Timer.
Lorsque ce laps de temps s’est écoulé, le contrôle Timer déclenche
la procédure événementielle appropriée.
210
Gestion de la souris et contrôles avancés
Le contrôle Timer
Remarque:
Le contrôle Timer ne peut être dimensionné, et n’apparaît pas sur
la feuille lors de l’exécution.
211
Gestion de la souris et contrôles avancés
Le contrôle Timer
La seule propriété réellement spécifique au contrôle Timer est Interval.
La propriété Interval spécifie la fréquence à laquelle le contrôle répondra
aux événements.
Cet intervalle en millisecondes peut être défini lors de la création ou
lors de l’exécution.
212
Gestion de la souris et contrôles avancés
Le contrôle Timer
Exemple:
vous affectez à la propriété Interval la valeur 1000, les événements
timer se produiront toutes les 1 000 millisecondes, soit une fois par
seconde environ.
N.B: le contrôle Timer connaît quelques limites.
La propriété Interval ne peut contenir que des valeurs situées
entre 0 et 64,767.
L’intervalle maximal sera donc de 65 secondes, pas plus.
213
Gestion de la souris et contrôles avancés
Le contrôle Timer
Exemple:
214
Gestion de la souris et contrôles avancés
Le contrôle Timer
Propriétés:
Timer 1: Text1(resp. 2):
Interval: 1000 Name: txtTime1(resp. 2)
Name: tmrTimer1 Text = 1
Timer 2: Police = 18
Interval: 500 Alignement= Center
Name: tmrTimer2 Width = 1000
215
Gestion de la souris et contrôles avancés
Le contrôle Timer
Le code pour tmrTimer1:
Private Sub tmrTimer1_Tick()
’ Ajoute 1 à la valeur affichée.
txtTimer1.Text = txtTimer1.Text + 1
End Sub
216
Gestion de la souris et contrôles avancés
Le contrôle Timer
Le code pour tmrTimer1:
Private Sub tmrTimer2_Tick()
’ Ajoute 1 à la valeur affichée.
txtTimer2.Text = txtTimer2.Text + 1
End Sub
217
Gestion de la souris et contrôles avancés
Le contrôle Timer
Lebels pour chaque Timer:
Lent pour Timer1
Rapide pour Timer2
218
Gestion de la souris et contrôles avancés
Le contrôle Timer
Résultat:
219
Application multi-feuilles
• Une application contient généralement plusieurs feuilles dont une
est feuille de démarrage.
• Le raccourci permet d'ajouter une feuille.
Dans la fenêtre qui sera affichée, cliquer sur le bouton Ajouter
(Add)
• Dans le menu principal, utiliser Project/ NomApplication
Properties pour choisir la feuille de démarrage en utilisant la liste
Startup Form
220
Nouvelle feuille
Application Multi-feuilles
• Afficher une deuxième feuille à partir d'une première
o NomFeuille.Show( )
On peut utiliser les deux feuilles
o NomFeuille.ShowDialog( )
On ne peut pas utiliser que la deuxième feuille (feuille modale). Pour
revenir à la première, on doit fermer la deuxième.
Exemple: - Form1 et Form2 deux feuilles
- Cmd1 un bouton de commande sur Form1.
Objectif: Clic sur Cmd1  Afficher Form2
221
Application Multi-feuilles
Private Sub cmd1_Click(…..) Handles cmd1.Click
Form2.Show() ' on peut accéder aux deux feuilles Form1 et Form2
End Sub
Ou
Private Sub cmd1_Click(…..) Handles cmd1.Click
Form2.ShowDialog() ' on ne peut pas accéder à Form1 tant que Form2 est
End Sub ' affichée
222
Name= Form1
Name= Form2
Name= Cmd1
Application Multi-feuilles
• Fermer une feuille
NomFeuille.Close( )
Exemple: Form2.Close( )
223
Les Menus
• Dans les applications multi-feuilles, on utilise généralement
des menus et des feuilles MDI.
Exemple: Dans ce projet par exemple, on a trois feuilles
On va créer un menu dans Form3 pour accéder aux feuilles
Form1 et Form2.
o Ouvrir Form3 en mode conception (Design)
o Mettre sa propriété Text à "Accueil" et IsMdiContainer à
True. Cela signifie que les deux autres feuilles vont s'afficher
à l'intérieur de Form3.
224
Les Menus
o Utiliser le contrôle pour créer graphiquement un
menu dans Form3
o Cliquer sur le cadre du menu pour avoir une zone de texte
pour la première option du menu
o Saisir &Gestion dans cette zone de texte
o Saisir &Informations et &Aide dans les deux autres zones
de texte.
225
Cadre du menu
Zone de texte
Les Menus
o Chaque option du menu a des propriétés qu'on peut modifier
o Cliquer sur la première option Gestion pour avoir ses
propriétés
o Mettre la propriété Name à OptionGestion
o Mettre la propriété ToolTipText à "Charger Form1 ou Form2".
C'est le texte qui s'affichera dans une info-bulle lorsqu'on
passera le pointeur de la souris sur l'option pendant
l'exécution.
226
Name de l'option
Text de l'option
Les Menus
o Cliquer sur l'option Gestion pour avoir une zone de texte
afin de créer une sous-option.
o Saisir dans cette zone de texte "Première Feuille"
o Saisir dans la deuxième zone de texte "Deuxième Feuille"
227
Les Menus
o Cliquer sur la sous-option Première Feuille afin de modifier
ses propriétés:
o Name = SOptionFeuille1 (nom de la sous-option)
o Shortcutkeys = Ctrl + F1 ( raccourci de la sous-option)
o Image = une image de votre choix (icône de la sous-option)
o Faire de même pour la sous-option Deuxième Feuille:
o Name = SOptionFeuille2
o Shortcutkeys = Ctrl + F2
o Image = une image de votre choix
228
Les Menus
o Ajouter la sous-option Quitter:
o Modifier le code de l'événement Load de la feuille Form1
Private Sub Form1_Load(…) Handles Me.Load
Me.MdiParent = Form3 ' La feuille From1 s'affichera à l'intérieur de
Form3
End Sub
o Faire de même pour l'événement Load de la feuille form2
229
Name = SOptionQuitter
Les Menus
o Dans Form3, faire un double-clic sur la sous-option
"Première Feuille" pour avoir son événement Click:
Private Sub SOptionFeuille1_Click(…..) Handles SOptionFeuille1.Click
Form1.Show()
End Sub
o Faire de même pour l'événement Click de la sous-option
"Deuxième Feuille":
Private Sub SOptionFeuille2_Click(…..) Handles SOptionFeuille2.Click
Form2.Show()
End Sub
o Choisir Form3 comme feuille de démarrage.
o Exécuter votre projet et cliquez sur les deux sous-options.
o Essayer ShowDialog au lieu de Show et exécuter votre
projet.
230
Les Menus
o Dans Form3, faire un double-clic sur la sous-option Quitter
pour avoir son événement Click:
Private Sub SOptionQuitter_Click(…..) Handles
SOptionQuitter.Click
End 'fin de l'application
End Sub
o Exécuter votre projet et cliquez sur la sous-option Quitter.
231
Gestion de la souris et contrôles avancés
Déclaration des tableaux
Public NomDuTableu(Dimensions) As TypeDonnées
Ou
Dim NomDuTableau(Dimensions) As TypeDonnées
Ou
Dim NomDuTableau(PremierIndice To DernierIndice) As TypeDonnées
Cette instruction déclare un tableau NomDuTableau de taille
Dimension+1.
Remarque: Par défaut, le premier indice est 0.
232
Gestion de la souris et contrôles avancés
Déclaration des tableaux
Exemples:
Dim intTab(5) As Integer 'Tableau de 6 entiers
Dim intCounts(1 To 5) As integer 'Tableau de 5 entiers
Dim Employes (9) As String 'Tableau de 10 chaînes de caractères
Public strCustName(200 To 999) As String
Dim Mat(10, 10) As Single 'Matrice de 10 lignes et 10 colonnes
Dim T(0 to 19) As Integer 'Tableau de 20 entiers
Dim Matrice(4,3) As Integer 'Matrice de 5 lignes et 3 colonnes
233
Gestion de la souris et contrôles avancés
Déclaration des tableaux
Initialisation d‘un tableau:
1)
Dim intTab(5) As Integer ‘Déclaration du tableau
intTab(0)=5
intTab(1)=10
intTab(2)=15
intTab(3)=20
intTab(4)=25
intTab(5)=30
234
Gestion de la souris et contrôles avancés
Déclaration des tableaux
Initialisation d‘un tableau:
2)
Dim Employes () As String = {"Marrakchi", "Souiri", "Soussi"}
Remarque : La taille 3 du tableau est déduite
235
Gestion de la souris et contrôles avancés
Déclaration des tableaux
Accéder aux éléments d’un tableau
Employes (5) ‘l’élément d'indice 5 dans le tableau
Matrice(0,2) ‘la cellule à la 1ère ligne et 2nd colonne de la m
236
Gestion de la souris et contrôles avancés
Manipulation des tableaux
Redimensionner un tableau
La taille d'un tableau peut être redimensionnée au cours d'une application
Redim intTab(30)
Redim Preserve intTab(30)
Remarque
Le redimensionnement du tableau ⇒ la perte des données existantes.
Pour pouvoir conserver le contenu d'un tableau lors d'un redimensionnement,
il faut spécifier le mot-clé Preserve après Redim.
237
Gestion de la souris et contrôles avancés
Manipulation des tableaux
Vider un tableau
Array.Clear(nomDuTableau, premierIndice, nombreDeCasesAVider)
nombreDeCasesAVider : le nombre de cases à vider
Exemple
Array.Clear(intTab, 0, 5)
238
Gestion de la souris et contrôles avancés
Manipulation des tableaux
Inverser le sens du tableau
Array.Reverse(nomDuTableau)
Exemple
Dim Tab() As Integer={1,2,3,4}
Array.Reverse(Tab) ‘le tableau Tab contient maintenant 4,3,2,1
239
Gestion de la souris et contrôles avancés
Manipulation des tableaux
Copier un tableau dans un autre: Copy
Pour copier un tableau dans un autre tableau, on utilise la fonction Copy
Array.Copy(tableauDuSource, tableauDuDestination, nbreElement)
nbreElement: le nombre d’éléments à copier depuis l'élément 0.
Exemple
Array.Copy(tab1, tab2, 7)
Array.Copy(tab1, tab2, 7)
240
Gestion de la souris et contrôles avancés
Manipulation des tableaux
Trier un tableau: Sort
Pour trier les elements d’un tableau, on utilise la fonction Sort
Array.sort(tab) ‘Trie le tableau tab
241
Gestion de la souris et contrôles avancés
Manipulation des tableaux
La méthode IndexOf
Recherche un objet spécifié dans un tableau unidimensionnel (trié ou non)
retourne l'index de la première occurrence.
Exemple
Dim myIndex As Integer = Array.IndexOf(myArray, myString)
Remarque
Retourne -1 si l'élément n'est pas trouvé.
LastIndexOf fait une recherche à partir de la fin.
242
Gestion de la souris et contrôles avancés
Manipulation des tableaux
Fonctions Ubound et Lbound
Ubound :
Retourne le plus grand indice disponible pour la dimension indiquée d'un tableau
Lbound : retourne la limite inférieure ( = 0 )
Exemple:
A = Ubound (NomTableau)
243
Gestion de la souris et contrôles avancés
Manipulation des tableaux
Tableaux dynamiques
La taille du tableau est définie au moment de l’exécution avec Redim
Exemple:
Dim Temperature () As Single
Dim Jours As Short
Jours = InputBox ("Combien de jours? ")
Redim Temperature (Jours-1)
244
Gestion de la souris et contrôles avancés
Manipulation des tableaux
La fonction Length
Length retourne un entier qui représente le nombre d'éléments total
dans le tableau.
Pour un tableau à une dimension Length-1 retourne l'indice du dernie
élément.
Exemple:
Tab.Length
245
Fonctions de chaînes
La fonction Len()
Voici le format de Len() :
Len(Expression)
Len() renvoie (retourne) la longueur en nombre de caractères
de la variable chaîne, de la constante chaîne ou de l’expression
chaîne située entre les parenthèses.
Exemples:
La fonction MsgBox() affiche le résultat 6 :
intMsg = MsgBox(Len("abcdef"))
246
Fonctions de chaînes
Fonctions de conversion de chaînes
Remarque:
CStr() et Str() convertissent leurs arguments en chaînes.
La différence est que Str() fait précéder d’un blanc (espace) les
nombres positifs convertis en chaîne. 247
Fonction Description
CStr() Convertit l’argument en chaîne.
Str() Convertit un argument numérique en chaîne
(plus précisément en Variant exploitable comme chaîne).
Val() Convertit un argument chaîne en nombre
(si la chaîne passée contient bien un nombre).
Fonctions de chaînes
Fonctions de sous-chaînes
Les fonctions de sous-chaînes renvoient une partie de la
chaîne. Right() renvoie les caractères à partir de la droite,
Left()
à partir de la gauche. Mid() prélève les caractères à partir du
milieu de la chaîne.
Voici le format des fonctions de sous-chaînes :
Left(chaineDeCaracteres, valeurNumerique)
Right(chaineDeCaracteres, valeurNumerique)
Mid(chaineDeCaracteres, startPosition[, length]) 248
Fonctions de chaînes
Fonctions de sous-chaînes
Exemples:
Le code suivant illustre le comportement de Left() :
strA = "abcdefg"
partSt1 = Left(strA, 1) ’ Renvoie (Retourne) "a".
partSt2 = Left(strA, 3) ’ Renvoie "abc".
partSt3 = Left(strA, 20) ’ Renvoie "abcdefg".
249
Fonctions de chaînes
Fonctions de sous-chaînes
Exemples:
Right() fait la même chose en sens inverse :
strA = "abcdefg"
partSt1 = Right(strA, 1) ’ Renvoie "g".
partSt2 = Right(strA, 3) ’ Renvoie "efg".
partSt3 = Right(strA, 20) ’ Renvoie "abcdefg".
250
Fonctions de chaînes
Fonctions de sous-chaînes
Exemples:
Mid() peut prélever n’importe quel nombre de caractères
depuis n’importe quel point de la chaîne. Voici un exemple :
strA = "Visual Basic FORTRAN COBOL C Pascal«
lang1 = Mid(strA, 1, 12) ’ Renvoie "Visual Basic".
lang2 = Mid(strA, 14, 7) ’ Renvoie "FORTRAN".
lang3 = Mid(strA, 22, 5) ’ Renvoie "COBOL".
lang4 = Mid(strA, 28, 1) ’ Renvoie "C".
 lang5 = Mid(strA, 30, 6) ’ Renvoie "Pascal".
251
Fonctions de chaînes
Fonctions UCase() et LCase()
Exemples:
UCase() renvoie l’argument chaîne en lettres capitales.
LCase() le renvoie en lettres minuscules.
La fonction MsgBox() suivante affiche VISUAL BASIC :
intMsg = MsgBox(UCase("Visual Basic"))
252
Fonctions de chaînes
Les fonctions LTrim() et RTrim()
LTrim() et RTrim() suppriment les espaces au début et à la fin
de la chaîne.
LTrim() renvoie l’argument chaîne sans les espaces de début,
RTrim() sans les espaces de fin. La fonction Trim() supprime
les espaces de début et de fin.
Voici le format de ces fonctions :
 LTrim(stringExpression)
 RTrim(stringExpression)
 Trim(stringExpression) 253
Fonctions de chaînes
Les fonctions LTrim() et RTrim()
Exemples:
Les instructions suivantes suppriment les espaces de début, de
fin, et des deux :
st1 = LTrim(" Bonjour") ’ Renvoie "Bonjour".
st2 = RTrim("Bonjour ") ’ Renvoie "Bonjour".
st3 = Trim(" Bonjour ") ’ Renvoie "Bonjour".
254
Fonctions de chaînes
La fonction ReverseIt()
La fonction ReverseIt() suivante inclut plusieurs des
fonctions
de chaînes présentées ci-dessus. Cette fonction inverse un
certain nombre de caractères dans la chaîne passée.
Exemples:
Supposons que la fonction ReverseIt() soit appelée par
l’instruction suivante :
newStr = ReverseIt ("Visual Basic", 6)
Si tout se passe bien, la chaîne newStr prendra comme
contenu 255
Procédures et fonctions
Fonctions internes
Fonctions numériques:
 Int(valeurNumerique)
 Fix(valeurNumerique)
Exemples:
1) intAns1 = Int(6.8) ’ 6
2) intAns2 = Fix(6.8) ’ 6
3) intAns3 = Int(-6.8) ’ -7
4) intAns4 = Fix(-6.8) ’ -6
256
Procédures et fonctions
Fonctions internes
Méthodes de la classe Math
Utiliser l’instruction : Imports System.Math
257
Abs(n) Renvoie la valeur absolue de n
Atan(n) Renvoie l’arc tangente de n en radians
Cos(n) Cosinus de n en radians
Exp(n) Constante e élevée à la puissance n
Sign(n) -1 si n négatif / +1 si n positif
Sin(n) Sinus de n en radians
Sqrt(n) Racine carrée de n
Tan(n) Tangente de n en radians
Procédures et fonctions
Fonctions internes
Fonctions de type de données
 IsDate(): vérifie si son argument est de type Date
(ou s’il peut être correctement converti en
date).
IsEmpty(): vérifie si son argument a été initialisé.
IsNull(): vérifie si son argument contient une valeur
Null.
IsNumeric(): vérifie si son argument est d’un type
numérique (ou s’il peut être correctement converti en
nombre). 258
Procédures et fonctions
Fonctions internes
La fonction abrégée IIf():
Syntaxe:
IIf(condition, TrueBody, FalseBody)
N.B: IIf() ne doit être utilisé qu’en remplacement d’instructions
If... Else courtes.
259
Procédures et fonctions
Fonctions internes
La fonction abrégée IIf():
Exemple 1:
If (curSales < 5000.00) Then
curBonus = 0.00
Else
curBonus = 75.00
End If
équivalent à
curBonus = IIf(curSales < 5000.00, 0.00, 75.00)
260
Procédures et fonctions
Fonctions internes
La fonction abrégée IIf():
Exemple 2:
Dim Note As Single
Dim Reponse As String
Note = InputBox (" Tapez votre note ")
Reponse = IIf (Note >= 10, " Admis ", " Ajourné ")
MsgBox (Réponse)
261
Procédures et fonctions
Procédures privées et publiques
1) Private Sub ReportIt()
2) Public Sub ReportIt()
Remarque:
 Une procédure déclarée comme Private n’est exploitable
qu’à l’intérieur de son propre module.
 Une procédure déclarée comme Public peut être appelée
depuis n’importe quelle autre procédure de l’application.
262
Procédures et fonctions
Procédures privées et publiques
1) Private Sub ReportIt()
2) Public Sub ReportIt()
Remarque:
 Une procédure déclarée comme Private n’est exploitable
qu’à l’intérieur de son propre module.
 Une procédure déclarée comme Public peut être appelée
depuis n’importe quelle autre procédure de l’application.
263
Procédures et fonctions
Comment déclarer une fonction
Syntaxe :
Public|Private Function nomDeLaFonction(Arg) As typeDeRetour
Exemple:
Public Function SalesTax(curTotal As Currency, sngRateDisc As Single) As Currenc
264
La syntaxe pour déclarer une fonction
Appel de la fonction TotalImpot
Dim PrixTotal, PrixVente As Single
PrixVente = 500
PrixTotal = PrixVente + TotalImpot (PrixVente)
265
Function NomFonction ([arguments]) As Type
Liste d’instructions
NomFonction = Expression
End Function
__________________________________
Type : Type de la valeur retournée
Possibilité d’utiliser l’instruction Return
Function TotalImpot(ByVal Prix as Single) As Single
Dim ImpotNational, ImpotLocal As Single
ImpotNational = Prix*0,05
ImpotLocal = Prix*0,015
TotalImpot = ImpotNational+ImpotLocal
‘ ou Return ImpotNationale+ImpotLocal
End Function
Procédures et fonctions
Procédure Sub
Appel d’une procédure Sub
VoeuAnniversaire ("Lina")
266
Sub NomProcédure ([arguments])
Instructions
End Sub
Sub VoeuAnniversaire (ByVal Personne As String)
Dim Msg As String
If Personne <> " " Then
Msg = " Joyeux anniversaire" & Personne & "!"
Else
Msg = "Nom non spécifié"
EndIf
MsgBox = (Msg, , "Meilleurs voeux")
End Sub
Procédures et fonctions
Dans une procédure/fonction, les arguments sont passés soit par
valeur, soit par référence
 Arguments passés par valeur (par défaut) : Mot clé ByVal
Tout changement apporté à une variable passée par valeur n’est pas
renvoyé à la procédure/fonction appelante.
 Arguments passés par référence : Mot clé ByRef
Tout changement apporté à une variable passée par référence est
renvoyé à la procédure/fonction appelante
Exemple
Sub CoutPlusInteret (ByVal Cout As Single, ByRef Total As Single)
Cout = Cout * 1,05
Total = Int (Cout) ‘Arrondit à l’entier
End Sub
267
Procédures et fonctions
Modules et Procédures
Modules
Un module est un fichier destiné à comporter du
code utile à la conception du programme.
Il comporte les déclarations de variables et de
procédures/fonctions afin d’étendre leur portée sur tout
le projet.
Par défaut, les fonctions déclarées dans un module
sont publiques.
Création d’un module
Accessible depuis le Menu Projet (Ajouter un
nouvel élément)
268
Références
1. Visual Basic 6. Créez des applications efficaces en VB6, Greg Perry,
Pearson Education France, 2009 .
2. https
://openclassrooms.com/fr/courses/993975-apprenez-a-programmer-e
3. https://vb.developpez.com/cours/
269

Contenu connexe

Tendances

QCM basique sur les réseaux informatiques
QCM basique sur les réseaux informatiquesQCM basique sur les réseaux informatiques
QCM basique sur les réseaux informatiques
Frust Rados
 
Exercices uml-corrige
Exercices uml-corrigeExercices uml-corrige
Exercices uml-corrige
AmineMouhout1
 
Cours Génie Logiciel - Cours 2 - Cycles de vie
Cours Génie Logiciel - Cours 2 - Cycles de vieCours Génie Logiciel - Cours 2 - Cycles de vie
Cours Génie Logiciel - Cours 2 - Cycles de vie
Mohammed Amine Mostefai
 
Introduction aux architectures des SI
Introduction aux architectures des SI Introduction aux architectures des SI
Introduction aux architectures des SI
Heithem Abbes
 
Design Patterns
Design PatternsDesign Patterns
Design Patterns
Koffi Sani
 
Uml & cas d'utilisation
Uml & cas d'utilisationUml & cas d'utilisation
Uml & cas d'utilisation
Mireille Blay-Fornarino
 
Uml upxp2
Uml upxp2Uml upxp2
Uml upxp2
Joubi Aaziz
 
Cours Base de données relationnelles
Cours Base de données relationnellesCours Base de données relationnelles
Cours Base de données relationnelles
Aymen Kasmi
 
TP1-UML-Correction
TP1-UML-CorrectionTP1-UML-Correction
TP1-UML-Correction
Lilia Sfaxi
 
Cours algorithme
Cours algorithmeCours algorithme
Cours algorithmebadr zaimi
 
introduction à la modélisation objet
introduction à la modélisation objetintroduction à la modélisation objet
introduction à la modélisation objet
Amir Souissi
 
Cours uml
Cours umlCours uml
Cours uml
zimamouche1
 
UML Part 4- diagrammres de classes et d'objets mansouri
UML Part 4- diagrammres de classes et d'objets mansouriUML Part 4- diagrammres de classes et d'objets mansouri
UML Part 4- diagrammres de classes et d'objets mansouri
Mansouri Khalifa
 
Support POO Java première partie
Support POO Java première partieSupport POO Java première partie
Support POO Java première partie
ENSET, Université Hassan II Casablanca
 
Chp1 - Introduction aux méthodologies de Conception
Chp1 - Introduction aux méthodologies de ConceptionChp1 - Introduction aux méthodologies de Conception
Chp1 - Introduction aux méthodologies de Conception
Lilia Sfaxi
 
Chp4 - UML
Chp4 - UMLChp4 - UML
Chp4 - UML
Lilia Sfaxi
 
Cours Programmation Orientée Objet en C++
Cours Programmation Orientée Objet en C++Cours Programmation Orientée Objet en C++
Cours Programmation Orientée Objet en C++
Amina HAMEURLAINE
 
Uml: Diagrammes de classes -- Concepts avances --- 27
Uml: Diagrammes de classes -- Concepts avances --- 27Uml: Diagrammes de classes -- Concepts avances --- 27
Uml: Diagrammes de classes -- Concepts avances --- 27
megaplanet20
 

Tendances (20)

QCM basique sur les réseaux informatiques
QCM basique sur les réseaux informatiquesQCM basique sur les réseaux informatiques
QCM basique sur les réseaux informatiques
 
Exercices uml-corrige
Exercices uml-corrigeExercices uml-corrige
Exercices uml-corrige
 
Cours compilation
Cours compilationCours compilation
Cours compilation
 
Cours Génie Logiciel - Cours 2 - Cycles de vie
Cours Génie Logiciel - Cours 2 - Cycles de vieCours Génie Logiciel - Cours 2 - Cycles de vie
Cours Génie Logiciel - Cours 2 - Cycles de vie
 
Introduction aux architectures des SI
Introduction aux architectures des SI Introduction aux architectures des SI
Introduction aux architectures des SI
 
Design Patterns
Design PatternsDesign Patterns
Design Patterns
 
Uml & cas d'utilisation
Uml & cas d'utilisationUml & cas d'utilisation
Uml & cas d'utilisation
 
Uml upxp2
Uml upxp2Uml upxp2
Uml upxp2
 
Cours Base de données relationnelles
Cours Base de données relationnellesCours Base de données relationnelles
Cours Base de données relationnelles
 
TP1-UML-Correction
TP1-UML-CorrectionTP1-UML-Correction
TP1-UML-Correction
 
Cours algorithme
Cours algorithmeCours algorithme
Cours algorithme
 
introduction à la modélisation objet
introduction à la modélisation objetintroduction à la modélisation objet
introduction à la modélisation objet
 
Cours uml
Cours umlCours uml
Cours uml
 
UML Part 4- diagrammres de classes et d'objets mansouri
UML Part 4- diagrammres de classes et d'objets mansouriUML Part 4- diagrammres de classes et d'objets mansouri
UML Part 4- diagrammres de classes et d'objets mansouri
 
Support POO Java première partie
Support POO Java première partieSupport POO Java première partie
Support POO Java première partie
 
Chp1 - Introduction aux méthodologies de Conception
Chp1 - Introduction aux méthodologies de ConceptionChp1 - Introduction aux méthodologies de Conception
Chp1 - Introduction aux méthodologies de Conception
 
Chp4 - UML
Chp4 - UMLChp4 - UML
Chp4 - UML
 
Cours Programmation Orientée Objet en C++
Cours Programmation Orientée Objet en C++Cours Programmation Orientée Objet en C++
Cours Programmation Orientée Objet en C++
 
Uml: Diagrammes de classes -- Concepts avances --- 27
Uml: Diagrammes de classes -- Concepts avances --- 27Uml: Diagrammes de classes -- Concepts avances --- 27
Uml: Diagrammes de classes -- Concepts avances --- 27
 
UML Diagrammes Statiques
UML Diagrammes StatiquesUML Diagrammes Statiques
UML Diagrammes Statiques
 

Similaire à Cours Visual Basic.NET

Chapitre 01 - Notions de base
Chapitre 01 - Notions de baseChapitre 01 - Notions de base
Chapitre 01 - Notions de base
L’Université Hassan 1er Settat
 
Newlook Suite - for IBM partners - FR
Newlook Suite - for IBM partners - FRNewlook Suite - for IBM partners - FR
Newlook Suite - for IBM partners - FR
Fresche Solutions
 
Architecture .net
Architecture  .netArchitecture  .net
Windev
WindevWindev
Créez vos apps métier Windows 8 sans expertise en programmation, grâce à Proj...
Créez vos apps métier Windows 8 sans expertise en programmation, grâce à Proj...Créez vos apps métier Windows 8 sans expertise en programmation, grâce à Proj...
Créez vos apps métier Windows 8 sans expertise en programmation, grâce à Proj...
Microsoft
 
Introduction à App Inventor
Introduction à App InventorIntroduction à App Inventor
Introduction à App Inventor
Teen-Code
 
La plateforme de développement Microsoft pour les nuls
La plateforme de développement Microsoft pour les nulsLa plateforme de développement Microsoft pour les nuls
La plateforme de développement Microsoft pour les nuls
Microsoft
 
Cahier spécial visual studio 2015 - Octobre 2015
Cahier spécial visual studio 2015 - Octobre 2015Cahier spécial visual studio 2015 - Octobre 2015
Cahier spécial visual studio 2015 - Octobre 2015
FactoVia
 
Windows Phone 8 for Business - Developer Talks
Windows Phone 8 for Business - Developer TalksWindows Phone 8 for Business - Developer Talks
Windows Phone 8 for Business - Developer Talks
Jean-Sébastien Dupuy
 
Projet de fin d étude (1)
Projet de fin d étude (1)Projet de fin d étude (1)
Projet de fin d étude (1)Sanaa Guissar
 
Initiation à UML: Partie 1
Initiation à UML: Partie 1Initiation à UML: Partie 1
Initiation à UML: Partie 1DIALLO Boubacar
 
Développement d'applications mobiles.. Environnement de programmation visuelle
Développement d'applications mobiles.. Environnement de programmation visuelleDéveloppement d'applications mobiles.. Environnement de programmation visuelle
Développement d'applications mobiles.. Environnement de programmation visuelle
REGIONAL ACADEMY OF EDUCATION AND TRAINING
 
Hello droid
Hello droidHello droid
Hello droid
Wiki Info Systeme
 
Introduction_Android_-_Complet.pdf
Introduction_Android_-_Complet.pdfIntroduction_Android_-_Complet.pdf
Introduction_Android_-_Complet.pdf
med_univ78
 
Composants d-une application Android.ppt
Composants d-une application Android.pptComposants d-une application Android.ppt
Composants d-une application Android.ppt
mahamaalej3
 
Introduction à ASP.NET
Introduction à ASP.NETIntroduction à ASP.NET
Introduction à ASP.NET
Abdelouahed Abdou
 
Programation système-CHAPITRE1.pptx
Programation système-CHAPITRE1.pptxProgramation système-CHAPITRE1.pptx
Programation système-CHAPITRE1.pptx
DanielATCHADE
 
PRESENTATION_webclient.pptx
PRESENTATION_webclient.pptxPRESENTATION_webclient.pptx
PRESENTATION_webclient.pptx
AleskaVargas2
 

Similaire à Cours Visual Basic.NET (20)

Chapitre 1
Chapitre 1Chapitre 1
Chapitre 1
 
Chapitre 01 - Notions de base
Chapitre 01 - Notions de baseChapitre 01 - Notions de base
Chapitre 01 - Notions de base
 
.NET DotNet CF - 1
.NET DotNet CF - 1.NET DotNet CF - 1
.NET DotNet CF - 1
 
Newlook Suite - for IBM partners - FR
Newlook Suite - for IBM partners - FRNewlook Suite - for IBM partners - FR
Newlook Suite - for IBM partners - FR
 
Architecture .net
Architecture  .netArchitecture  .net
Architecture .net
 
Windev
WindevWindev
Windev
 
Créez vos apps métier Windows 8 sans expertise en programmation, grâce à Proj...
Créez vos apps métier Windows 8 sans expertise en programmation, grâce à Proj...Créez vos apps métier Windows 8 sans expertise en programmation, grâce à Proj...
Créez vos apps métier Windows 8 sans expertise en programmation, grâce à Proj...
 
Introduction à App Inventor
Introduction à App InventorIntroduction à App Inventor
Introduction à App Inventor
 
La plateforme de développement Microsoft pour les nuls
La plateforme de développement Microsoft pour les nulsLa plateforme de développement Microsoft pour les nuls
La plateforme de développement Microsoft pour les nuls
 
Cahier spécial visual studio 2015 - Octobre 2015
Cahier spécial visual studio 2015 - Octobre 2015Cahier spécial visual studio 2015 - Octobre 2015
Cahier spécial visual studio 2015 - Octobre 2015
 
Windows Phone 8 for Business - Developer Talks
Windows Phone 8 for Business - Developer TalksWindows Phone 8 for Business - Developer Talks
Windows Phone 8 for Business - Developer Talks
 
Projet de fin d étude (1)
Projet de fin d étude (1)Projet de fin d étude (1)
Projet de fin d étude (1)
 
Initiation à UML: Partie 1
Initiation à UML: Partie 1Initiation à UML: Partie 1
Initiation à UML: Partie 1
 
Développement d'applications mobiles.. Environnement de programmation visuelle
Développement d'applications mobiles.. Environnement de programmation visuelleDéveloppement d'applications mobiles.. Environnement de programmation visuelle
Développement d'applications mobiles.. Environnement de programmation visuelle
 
Hello droid
Hello droidHello droid
Hello droid
 
Introduction_Android_-_Complet.pdf
Introduction_Android_-_Complet.pdfIntroduction_Android_-_Complet.pdf
Introduction_Android_-_Complet.pdf
 
Composants d-une application Android.ppt
Composants d-une application Android.pptComposants d-une application Android.ppt
Composants d-une application Android.ppt
 
Introduction à ASP.NET
Introduction à ASP.NETIntroduction à ASP.NET
Introduction à ASP.NET
 
Programation système-CHAPITRE1.pptx
Programation système-CHAPITRE1.pptxProgramation système-CHAPITRE1.pptx
Programation système-CHAPITRE1.pptx
 
PRESENTATION_webclient.pptx
PRESENTATION_webclient.pptxPRESENTATION_webclient.pptx
PRESENTATION_webclient.pptx
 

Plus de Aziz Darouichi

Chapitre 2: String en Java
Chapitre 2:  String en JavaChapitre 2:  String en Java
Chapitre 2: String en Java
Aziz Darouichi
 
Chapitre 11: Expression Lambda et Référence de méthode en Java
Chapitre 11: Expression Lambda et Référence de méthode en JavaChapitre 11: Expression Lambda et Référence de méthode en Java
Chapitre 11: Expression Lambda et Référence de méthode en Java
Aziz Darouichi
 
Chapitre8: Collections et Enumerations En Java
Chapitre8: Collections et Enumerations En JavaChapitre8: Collections et Enumerations En Java
Chapitre8: Collections et Enumerations En Java
Aziz Darouichi
 
Chap 6 : classes et interfaces
Chap 6 : classes et interfacesChap 6 : classes et interfaces
Chap 6 : classes et interfaces
Aziz Darouichi
 
Partie3BI-DW-OLAP2019
Partie3BI-DW-OLAP2019Partie3BI-DW-OLAP2019
Partie3BI-DW-OLAP2019
Aziz Darouichi
 
Chapitre2fonctionscppv2019
Chapitre2fonctionscppv2019Chapitre2fonctionscppv2019
Chapitre2fonctionscppv2019
Aziz Darouichi
 
Chapitre3TableauxEnCppV2019
Chapitre3TableauxEnCppV2019Chapitre3TableauxEnCppV2019
Chapitre3TableauxEnCppV2019
Aziz Darouichi
 
Partie2BI-DW2019
Partie2BI-DW2019Partie2BI-DW2019
Partie2BI-DW2019
Aziz Darouichi
 
Chap1V2019: Cours en C++
Chap1V2019: Cours en C++Chap1V2019: Cours en C++
Chap1V2019: Cours en C++
Aziz Darouichi
 
Partie1BI-DW2019
Partie1BI-DW2019Partie1BI-DW2019
Partie1BI-DW2019
Aziz Darouichi
 
Chapitre1: Langage Python
Chapitre1: Langage PythonChapitre1: Langage Python
Chapitre1: Langage Python
Aziz Darouichi
 
Chapitre5: Classes et objets
Chapitre5: Classes et objetsChapitre5: Classes et objets
Chapitre5: Classes et objets
Aziz Darouichi
 
Chapitre6: Surcharge des opérateurs
Chapitre6:  Surcharge des opérateursChapitre6:  Surcharge des opérateurs
Chapitre6: Surcharge des opérateurs
Aziz Darouichi
 
Chapitre4: Pointeurs et références
Chapitre4: Pointeurs et références Chapitre4: Pointeurs et références
Chapitre4: Pointeurs et références
Aziz Darouichi
 
Chapitre3 tableauxcpp
Chapitre3 tableauxcppChapitre3 tableauxcpp
Chapitre3 tableauxcpp
Aziz Darouichi
 
Chap2fonctionscpp
Chap2fonctionscppChap2fonctionscpp
Chap2fonctionscpp
Aziz Darouichi
 

Plus de Aziz Darouichi (16)

Chapitre 2: String en Java
Chapitre 2:  String en JavaChapitre 2:  String en Java
Chapitre 2: String en Java
 
Chapitre 11: Expression Lambda et Référence de méthode en Java
Chapitre 11: Expression Lambda et Référence de méthode en JavaChapitre 11: Expression Lambda et Référence de méthode en Java
Chapitre 11: Expression Lambda et Référence de méthode en Java
 
Chapitre8: Collections et Enumerations En Java
Chapitre8: Collections et Enumerations En JavaChapitre8: Collections et Enumerations En Java
Chapitre8: Collections et Enumerations En Java
 
Chap 6 : classes et interfaces
Chap 6 : classes et interfacesChap 6 : classes et interfaces
Chap 6 : classes et interfaces
 
Partie3BI-DW-OLAP2019
Partie3BI-DW-OLAP2019Partie3BI-DW-OLAP2019
Partie3BI-DW-OLAP2019
 
Chapitre2fonctionscppv2019
Chapitre2fonctionscppv2019Chapitre2fonctionscppv2019
Chapitre2fonctionscppv2019
 
Chapitre3TableauxEnCppV2019
Chapitre3TableauxEnCppV2019Chapitre3TableauxEnCppV2019
Chapitre3TableauxEnCppV2019
 
Partie2BI-DW2019
Partie2BI-DW2019Partie2BI-DW2019
Partie2BI-DW2019
 
Chap1V2019: Cours en C++
Chap1V2019: Cours en C++Chap1V2019: Cours en C++
Chap1V2019: Cours en C++
 
Partie1BI-DW2019
Partie1BI-DW2019Partie1BI-DW2019
Partie1BI-DW2019
 
Chapitre1: Langage Python
Chapitre1: Langage PythonChapitre1: Langage Python
Chapitre1: Langage Python
 
Chapitre5: Classes et objets
Chapitre5: Classes et objetsChapitre5: Classes et objets
Chapitre5: Classes et objets
 
Chapitre6: Surcharge des opérateurs
Chapitre6:  Surcharge des opérateursChapitre6:  Surcharge des opérateurs
Chapitre6: Surcharge des opérateurs
 
Chapitre4: Pointeurs et références
Chapitre4: Pointeurs et références Chapitre4: Pointeurs et références
Chapitre4: Pointeurs et références
 
Chapitre3 tableauxcpp
Chapitre3 tableauxcppChapitre3 tableauxcpp
Chapitre3 tableauxcpp
 
Chap2fonctionscpp
Chap2fonctionscppChap2fonctionscpp
Chap2fonctionscpp
 

Cours Visual Basic.NET

  • 2. Introduction Pourquoi Visual Basic L’un des langages de programmation les plus performants et les plus simples à utiliser. Créé par John G. Kemeny et Thomas E. Kurtz en 1963 et devient vite un langage populaire. 2
  • 3. Introduction Pourquoi Visual Basic Adapté sur PC par Bill Gates, au milieu des années 70. La simplicité du langage VB explique son choix pour: le développement d'interfaces. Développement rapide d'applications Accès aux bases de données … 3
  • 4. Introduction Pourquoi Visual Basic Les huit principes de conception du BASIC étaient : Être facile d'utilisation pour les débutants (Beginner) ; Être un langage généraliste (All-purpose) ; Autoriser l'ajout de fonctionnalités pour les experts (tout en gardant le langage simple pour les débutants) ; Être interactif ; 4
  • 5. Introduction Pourquoi Visual Basic Fournir des messages d'erreur clairs et conviviaux ; Avoir un délai de réaction faible pour les petits programmes ; Ne pas nécessiter la compréhension du matériel de l'ordinateur ; Isoler l'utilisateur du système d'exploitation. 5
  • 6. Introduction Les dessous de Visual Basic Microsoft a construit Visual Basic sur la base d’un langage de programmation pour débutants : le BASIC. 6
  • 7. Introduction Les dessous de Visual Basic Définition BASIC = Beginner’s All-purpose Symbolic Instruction Code (code d’instructions symboliques multifonction pour débutants). 7
  • 8. Introduction Exemple d‘un programme BASIC 10 REM Ce programme calcule et affiche les 10 premiers carrés. 20 CLS 30 PRINT "Carrés de 1 à 10" 40 PRINT "Valeur", "Carré" 50 FOR i = 1 TO 10 60 PRINT i, (i*i) 70 NEXT i 80 PRINT 90 END 8
  • 9. Introduction Exemple d‘un programme BASIC Sortie du programme Carrés de 1 à 10 Valeur Carré 1 1 2 4 3 9 4 16 5 25 6 36 7 49 8 64 9 81 10 100 9
  • 10. Introduction Les dessous de Visual Basic Définition Un langage de programmation est un ensemble de commandes et d’options de commandes (les arguments) par lequel on envoie des instructions à l’ordinateur. Un langage de programmation doit être plus précis qu’un langage naturel. 10
  • 11. Introduction Les dessous de Visual Basic Multiples avatars:  MBASIC (pour Microsoft BASIC)  GWBASIC  BASICA (pour BASIC Avancé)  Quick-BASIC  Qbasic. 11
  • 12. Introduction Les versions de Visual Basic • Visual Basic 1.0: sortie en mai 1991 • Visual Basic 6.0: sortie en 1998 12
  • 13. Introduction Exemples des langages dérivés  Visual Basic pour Application (VBA): -Disponible avec MS Office (Excel, Access, Word,...) Visual Basic .NET: -Le successeur désigné de Microsoft à Visual Basic 6.0, et fait partie de la plate-forme Microsoft .NET. 13
  • 14. Introduction  Environnement de développement Visual Studio C’est une suite logicielle qui rassemble Visual Basic, Visual C++, Visual C#,… Microsoft nous propose généreusement une version « Express » gratuite de chaque logiciel de cette suite, Visual Studio Express. Visual Basic 2010 Express Télécharger Visual Basic Express edition sur le site de Microsoft, cette version est gratuite et sans limitation de temps. 14
  • 15. Introduction Langage interprété vs langage compilé Les langages interprétés, le programmeur peut exécuter immédiatement son programme, voir sans délais les résultats et les éventuelles erreurs. Les langages interprétés, vous permettent d’exécuter le programme à tout moment, alors que vous l’écrivez. 15
  • 16. Introduction Langage interprété vs langage compilé Les langages compilés s’exécutent plus rapidement et sont mieux appropriés au développement d’applications commerciales, mais requièrent beaucoup plus d’efforts et d’apprentissage. 16
  • 17. Introduction Langage interprété vs langage compilé Les langages compilés nécessitent des étapes supplémentaires, la compilation et la liaison, avant que le programmeur ne puisse exécuter son œuvre. La compilation transpose le programme du langage dans lequel il a été écrit au langage natif de l’ordinateur. 17
  • 18. Introduction Définitions Programme: Le programme, écrit dans un langage de programmation, est un jeu d’instructions qui dirige l’ordinateur. 18
  • 20. Introduction Définitions Code: Le code est un autre mot servant à désigner l’ensemble d’instructions du programme. 20
  • 21. Introduction Définitions Bogue: Un bogue (de l’anglais bug) est une erreur dans le programme. Si votre programme ne s’exécute pas correctement, il vous faudra le déboguer, c’est-à-dire éliminer une à une toutes les erreurs. 21
  • 22. Introduction Définitions Utilisateur: L’utilisateur est celui qui utilise le programme. Vous, le programmeur qui écrit les programmes, êtes aussi utilisateur de vos propres programmes et de ceux qu’écrivent les autres. 22
  • 23. Introduction Editions de Visual Basic Visual Basic Edition Entreprise Créée pour la programmation en équipe et les environnements client-serveur, où le traitement et les données sont distribués à plusieurs ordinateurs. 23
  • 24. Introduction Editions de Visual Basic Visual Basic Edition Professionnelle Conçue pour les programmeurs professionnels qui souhaitent exploiter pleinement l’environnement de programmation Visual Basic. 24
  • 25. Introduction Editions de Visual Basic Visual Basic Edition Initiation L’essentiel de Visual Basic, avec un jeu complémentaire d’outils standards-tout ce dont vous avez besoin pour vous lancer dans la programmation Visual Basic. 25
  • 26. Introduction Ecran de programmation Visual Basic 2010 26
  • 27. Introduction La nature visuelle de Visual Basic Visual Basic.NETest plus qu’un simple langage de programmation. Le secret de Visual Basic tient dans son nom : Visual. Dans les systèmes d’exploitation Windows d’aujourd’hui, les programmes doivent être capables d’interagir graphiquement avec l’écran, le clavier, la souris et l’imprimante. 27
  • 28. Introduction Remarque importante Souvenez-vous : vous ne pouvez simplement dire à l’ordinateur ce qu’il doit faire et attendre qu’il fasse le boulot pour vous. L’ordinateur n’est qu’une machine stupide et sans initiative ; il a besoin pour travailler que vous lui fournissiez une liste détaillée d’instructions. 28
  • 29. Introduction Remarque importante (suite) Vous lui communiquez ces instructions sous la forme d’un programme. Un programme Visual Basic est constitué de codes et d’éléments visuels qui définissent l’aspect de l’écran et les contrôles Windows avec lesquels l’utilisateur interagit lorsqu’il lance le programme. 29
  • 30. Introduction Le processus de programmation Étape 1: Déterminer ce que votre application devra faire en créant un schéma général (partie conception). Étape 2: Définir les caractéristiques ou propriétés des éléments visuels qui composent l’interface, les écrans et les menus avec lesquels l’utilisateur interagira (partie visuelle). 30
  • 31. Introduction Le processus de programmation Étape 3: Ecrire le code de programmation en Visual Basic pour un ou plusieurs éléments de l’interface en fonction des besoins, (partie codage). 31
  • 32. Introduction Le processus de programmation Étape 4: Tester l’application afin de déceler et d’éliminer tous les bogues (partie débogage). Étape 5: Une fois les tests effectués, compiler le programme et distribuer l’application compilée aux utilisateurs. 32
  • 33. Introduction Le processus de programmation Grâce à la nature visuelle de Visual Basic, vous ne touchez au clavier que bien plus tard dans le processus de programmation. Au lieu d’utiliser du papier, vous dessinez directement vos écrans à l’aide des outils Visual Basic. Pour créer un tel écran, aucun code n’est nécessaire : tout ce que vous avez à faire, c’est de faire glisser les divers contrôle sur la fenêtre Feuilles. 33
  • 34. Introduction Le processus de programmation 34
  • 35. Introduction La maintenance du programme La maintenance du programme est le terme employé pour désigner la mise à jour du programme après sa distribution. Cette mise à jour peut être le fait d’une demande des utilisateurs ou d’un changement dans la façon dont le programme doit opérer. 35
  • 36. Introduction La maintenance du programme Un programme est écrit une fois, mais retouché de nombreuses fois. Mieux vous assurez cette maintenance du programme, plus votre programme sera actuel et efficace. Vous pouvez décider de distribuer une nouvelle version du programme avec un numéro de version différent. 36
  • 37. Introduction La maintenance du programme Remarque: Il convient de commenter et de documenter votre code afin que d’autres programmeurs puissent comprendre votre code s’ils devaient le modifier par la suite. 37
  • 38. Introduction La programmation événementielle Une fenêtre de programme Windows 38
  • 39. Introduction La programmation événementielle L’utilisateur du programme de la Figure précédente pourrait cliquer sur l’un des boutons, cocher l’une des cases ou activer l’une des zones de liste déroulante. Pour répondre efficacement aux actions de l’utilisateur et aux autres activités propres à déclencher un événement, on emploie des techniques de programmation événementielle. 39
  • 40. Introduction La programmation événementielle Par événement, on désigne toute action qui se déclenche lors de l’exécution du programme : clic de souris, frappe au clavier, etc. Est orienté événement un programme qui réagit aux événements Windows. Un événement peut être provoqué par l’un des contrôles (boutons de commande, cases à cocher, zones de liste déroulante, barres de défilement...) 40
  • 41. Prise de connaissance La programmation événementielle Un programme Visual Basic est constitué de l’interface visuelle, fenêtres et contrôles, avec laquelle l’utilisateur interagit. Le code de programmation vient relier tout cela ensemble. 41
  • 42. Prise de connaissance La programmation événementielle Chacun des multiples contrôles est différencié par les propriétés que lui affecte le code. 42
  • 43. Prise de connaissance en VB Quiz 1) Sur quel langage Microsoft s’est-il fondé pour élaborer Visual Basic ? Visual Basic est fondé sur le langage BASIC. 2) Pourquoi Visual Basic est-il adapté aux débutants comme aux programmeurs confirmés ? Visual Basic est un environnement visuel et exploite un langage simple, dérive du BASIC. Mais il permet de créer de puissantes applications Windows. 43
  • 44. Prise de connaissance en VB Quiz 3) Qu’est-ce qui est le plus important pour les novices en Visual Basic : le langage de programmation ou l’interface visuelle ? La nature visuelle de Visual Basic prime sur le langage de programmation à plusieurs égards. L’interface visuelle donne à vos programmes leur "visage" particulier et interagit avec l’utilisateur. Le langage de programmation travaille en coulisses pour connecter l’ensemble des éléments visuels. 44
  • 45. Prise de connaissance en VB Quiz 4) Que signifient les termes bogue et déboguer ? Un bogue est une erreur dans le programme. Le débogage est le processus de correction des bogues. 5) Qu’est-ce qui s’exécute le plus vite : un programme écrit dans un langage interprété ou un programme écrit dans un langage compilé ? Les programmes écrits en langage compilé s’exécutent beaucoup plus rapidement que les programmes écrits en langage interprèté. 45
  • 46. Prise de connaissance en VB Quiz 6) Quelle est la différence entre un contrôle et la valeur de propriété d’un contrôle ? Les contrôles sont des objets tels que labels, boutons de commande, boutons d’option, etc., qui apparaissent sur la feuille. Les propriétés et valeurs de propriétés d’un contrôle sont ce qui définit son comportement et le distingue des autres. 46
  • 47. Prise de connaissance en VB Quiz 7) Les contrôles contiennent le code qui leur permet de réagir aux actions de l’utilisateur. Vrai ou faux ? Faux. Les contrôles ne contiennent pas de code. Les contrôles sont des objets visuels avec lesquels l’utilisateur interagit. 47
  • 48. Prise de connaissance Démarrage de VB Cliquer sur « Démarrer », sur « Programmes », puis sur le dossier « Microsoft Visual Studio 2010 Express» ou cliquer directement su l’icône de Microsoft Visual Studio 2010 Express existant sur le bureau. 48
  • 49. Prise de connaissance Page de démarrage 49
  • 54. Prise de connaissance Windows Forms Application 54
  • 55. Prise de connaissance L‘environement Visual Basic 55 Explorateur de solutions Boîte à outils Fenêtre de propriétés Concepteur de Windows Forms Formulaire
  • 56. Prise de connaissance Espace de travail -Créer nos fenêtres, entrer nos lignes de code, etc. 56
  • 57. Prise de connaissance La Boîte à outils Il s’agit d’une collection d’outils grâce auxquels vous disposez les contrôles standards et éventuellement ceux personnalisés sur la feuille.  La boîte à outils nous sera d'une grande utilité lorsque nous créerons la partie graphique de nos applications, mais inutile lors de l'écriture du code VB. 57
  • 58. Prise de connaissance La Boîte à outils 58
  • 59. Prise de connaissance La Boîte à outils Parmi les contrôles de la boîte à outils de Windows Forms : 59 ◦ Button: bouton de commande ◦ CheckBox: Affiche une case à cocher et une étiquette pour le texte. Généralement utilisé pour définir des options. ◦ CheckedListBox: Affiche une liste déroulante d'éléments accompagnés chacun d'une case à cocher. ◦ ComboBox : Affiche une liste déroulante d'éléments ◦ DateTimePicker: Affiche un calendrier graphique permettant aux utilisateurs de sélectionner une date ou une heure. ◦ Label : Affiche du texte que les utilisateurs ne peuvent pas directement modifier.
  • 60. Prise de connaissance La Boîte à outils Parmi les contrôles de la boîte à outils de Windows Forms : 60 ◦ ListBox : Affiche une liste d'éléments texte et graphiques (icônes). ◦ PictureBox: Affiche dans un frame des fichiers graphiques tels qu'images bitmap et icônes. ◦ RadioButton: Affiche une case d'option qui peut être activée ou désactivée. ◦ TextBox : Affiche un texte entré au moment du design et pouvant être modifié par les utilisateurs au moment de l'exécution ou par programme. ◦ RichTextBox: Permet l'affichage du texte au format texte brut ou RTF. ◦ MaskedTextBox : Contraint le format d'entrée d'utilisateur.
  • 61. Prise de connaissance Concepteur Windows Forms C’est dans le Concepteur Windows Forms, appelé aussi formulaire (ou feuille), que vous effectuerez la plupart de vos opérations. Vous pouvez ajuster la fenêtre Formulaires (ou Feuilles) de façon à donner aux fenêtres créées à l’intérieur les dimensions voulues. Il permet d’afficher les formulaires que contient votre projet, avec leurs contrôles. 61
  • 63. Prise de connaissance Explorateur de solutions L’explorateur de solutions, ou Fenêtre de solutions, contient l’ensemble des composants de votre projet. 63
  • 64. Prise de connaissance Fenêtre Propriétés La fenêtre des Propriétés décrit chaque propriété du contrôle sélectionné. C’est la fenêtre des propriétés qui va nous permettre, en mode conception, de modifier les propriétés de nos objets. N.B: Vous pouvez appuyer sur la touche F4 de votre clavier pour afficher la fenêtre des propriétés. 64
  • 65. Prise de connaissance Fenêtre Propriétés présente la liste des propriétés du contrôle sélectionné par ordre alphabétique et affiche le choix des événements du contrôle concerné. 65
  • 66. Prise de connaissance Outils de débogage Lors de la compilation (Build) de votre application, les erreurs importantes seront listées au niveau de cet onglet. 66
  • 67. Prise de connaissance Préfixes courants à placer en tête des noms d’objets 67
  • 68. Prise de connaissance Préfixes courants à placer en tête des noms d’objets(suite) 68
  • 69. Prise de connaissance Préfixes courants à placer en tête des noms d’objets(suite) 69
  • 70. -4- Test et débogage de l'application -5- Création d'un fichier exécutable -6- Création d'un programme d'installation Processus de développement d’un projetProcessus de développement d’un projet avec VB.netavec VB.net Propriétés Valeurs Name BackColor Autosize Visible Font TextBox1 Blue True True Microsoft sansSérif 8pts -1- Création de l'interface utilisateur -2- Définition des propriétés des objets de l'interface utilisateur Private Sub Form1_Load(………..) Handles Form1.Load 'Ajoutez votre code ici End Sub -3- Écriture de code pour l'ajout de fonctionnalités
  • 71.  Une feuille de travail « Form » représente une fenêtre ou une boîte de dialogue qui compose l'interface utilisateur d'une application.  Quelques propriétés : Les Feuilles de travailLes Feuilles de travail (Form) (1/2)(Form) (1/2) ◦ BackColor: la couleur d'arrière-plan ◦ Font : la police du texte dans le contrôle ◦ Name: nom ◦ Size: la taille du formulaire ◦ Text : le texte associé à ce contrôle ◦ WindowState: indique si un formulaire est réduit, agrandi ou normal. Au moment de l‘exécution
  • 72.  Quelques événements : Les Feuilles de travailLes Feuilles de travail (Form) (2/2)(Form) (2/2) ◦ Closed: Se produit lorsque le formulaire est fermé. ◦ KeyPress : Se produit lorsqu'une touche est enfoncée alors que le contrôle a le focus. ◦ LostFocus: Se produit lorsque le contrôle perd le focus. ◦ Load: Se produit avant l'affichage de la feuille (au moment de son chargement dans la RAM). ◦ Shown : Se produit après l'affichage de la feuille.
  • 73.  Le contrôle Button Windows Forms permet à l'utilisateur d'effectuer une action en cliquant dessus.  Quelques propriétés : Les boutons de commandeLes boutons de commande (Button) (1/2)(Button) (1/2) ◦ BackColor: Obtient ou définit la couleur d'arrière-plan du contrôle. ◦ Font :Obtient ou définit la police du texte affiché par le contrôle. ◦ Name: Obtient ou définit le nom du contrôle. ◦ Image: Obtient ou définit l’image affichée sur le contrôle button. ◦ Text : Obtient ou définit le texte associé à ce contrôle.
  • 74.  Quelques événements : Les boutons de commandeLes boutons de commande (Button) (2/2)(Button) (2/2) ◦ Click: Se produit suite à un clic sur le bouton ◦ DragDrop : Se produit lors d'une opération de glisser-déplacer. ◦ LostFocus: Se produit lorsque le contrôle perd le focus. Private Sub BTN_Msg_Click( …….) Handles BTN_Msg.Click 'Ajoutez votre code ici End Sub L’événement « Click »: Lorsque l'utilisateur clique sur le bouton, ce dernier réagit comme s'il était enfoncé puis relâché. Chaque fois qu'un utilisateur clique sur un bouton, le gestionnaire d'événements Click est appelé.
  • 75. Atelier 1:Atelier 1: Familiarisation EDI et Bouton de commandeFamiliarisation EDI et Bouton de commande Utilisation de l’EDI de VB a. Examinez un formulaire dans le Concepteur Windows Forms, ses propriétés et l'éditeur de code b. Examinez les paramètres des propriétés des contrôles c. Ouvrez, fermez, rouvrez et masquez la boîte à outils Utilisation de formulaire et bouton de commande a. Créer la feuille suivante: 75
  • 76. Créer une application à partir de zéro Atelier 2: Affichage Salam, tout le monde On va créer un petit programme qui affiche: Salam, tout le monde! dés qu‘on clique sur le button. 76
  • 77. Créer une application à partir de zéro Atelier 3: Affichage Salam, tout le monde dans une zonte de texte 77
  • 78. Créer une application à partir de zéro Atelier 3: Version ameliorée Afficher le nouveau message centré  Changer la couleur, le texte, la position, la taille Solution: txt1.ForeColor = Color.Red txt1.TextAlign = HorizontalAlignment.Center txt1.Text = "Salam, tout le monde" txt1.Left = 10 txt1.Top = 10 txt1.Height = 50 txt1.Width = 50 78
  • 79. Créer une application à partir de zéro Atelier 3: Version ameliorée avec With Solution: With txt1 .ForeColor = Color.Red .Text = "Salam, tout le monde" .Left = 10 .Top = 10 .Height = 50 .Width = 50 End With 79
  • 80. Créer une application à partir de zéro Atelier 3: Version ameliorée avec Me Solution: Me.txt1.ForeColor = Color.Red Me. txt1.TextAlign = HorizontalAlignment.Center Me. txt1.Text = "Salam, tout le monde" Me. txt1.Left = 10 Me. txt1.Top = 10 Me. txt1.Height = 50 Me. txt1.Width = 50 Remarque: L'objet Me (autrement dit la fenêtre), il faut le lier au reste, utilisons donc le caractère « . » : nous allons donc accéder aux objets et contrôles de cette fenêtre. 80
  • 81. Créer une application à partir de zéro Atelier 3: Version ameliorée avec Me et With Solution: With Me.txt1 .ForeColor = Color.Red .Text = "Salam, tout le monde" .Left = 10 .Top = 10 .Height = 50 .Width = 50 End With 81
  • 82. Créer une application à partir de zéro Atelier 5: Affichage d‘une image avec la commande Quitter 82
  • 83. Créer une application à partir de zéro Atelier 6: Placer des contrôles sur une feuille 83
  • 84. Créer une application à partir de zéro Atelier 7: Mot de passe 84
  • 85. Créer une application à partir de zéro Atelier 8: Mot de passe avec message d‘erreur 85
  • 86. Analyse des données Définition: Module Un module est un fichier contenant du code de procédures. Le fichier qui contient la feuille et son code est un module de feuille. Vous avez donc, sans le savoir, déjà travaillé avec des modules. Module de feuille = contient la feuille et son code. 86
  • 87. Analyse des données Définition: Module Remarque: Un projet qui contient plusieurs feuilles contient plusieurs modules de feuilles. 87
  • 88. Analyse des données Les données en Visual Basic Les calculs peuvent impliquer différents types de données. Par exemple, vous pouvez travailler sur des noms, des adresses, des sommes d’argent, de grands et de petits nombres, et des données logiques du type vrai/faux, oui/non, etc. 88
  • 89. Analyse des données Les données en Visual Basic Afin de répondre à tous les besoins des différents programmes, Visual Basic supporte plusieurs types de données. 89
  • 90. Analyse des données Les données numériques En règle générale, les données numériques relèvent d’une de ces deux catégories : Entiers: nombres entiers sans décimale, tels que 614 , 0, –934 ou 3 918 938. Les entiers peuvent exprimer un âge, un numéral, un nombre d’années, etc. En anglais, "entier" se dit integer. 90
  • 91. Analyse des données Les données numériques Décimaux: nombres décimaux pouvant exprimer une valeur fractionnaire, tels que 8.709, 0.005 ou –402.35534. Les décimaux peuvent exprimer une température, une somme d’argent, un taux d’intérêt, etc. Les décimaux exigent la virgule, même si la partie décimale, située après la virgule, est zéro. 91
  • 92. Analyse des données Attention Visual Basic stocke et traite différemment les entiers et les décimaux, même si la différence n’est pas toujours évidente pour nous autres humains. Par exemple, –8 n’est pas la même chose, pour Visual Basic, que –8.00. 92
  • 93. Analyse des données Les types de données numériques supportés par Visual Basic 93 Type Stockage Plage Byte 1 octet De 0 à 255 Integer 2 octets De –32 768 à 32 767 Long 4 octets De –2 147 483 648 à 2 147 483 647 Single 4 octets De –3.402823E+38 à –1.401298E–45 1.401298E–45 à 3.402823E+38 Double 8 octets •–1.79769313486232E+308 à –4.94065645841247E– 324 •4.94065645841247E–324 à 1.79769313486232E+308 Currency 8 octets –922 337 203 685 477.5808 à 922 337 203 685 477.5807
  • 94. Analyse des données Suffixes Visual Basic désignant les types 94 Suffixe Type de données & Long ! Single # Double @ Currency
  • 95. Analyse des données Autres types de données Les types de données non numériques sont plus faciles à comprendre que les types numériques, surtout si vous n’êtes pas spécialement fort en maths. Le Visual Basic, laisse tous les autres langages loin derrière lui quand il s’agit de traiter les chaînes de texte. 95
  • 96. Analyse des données Définition: Chaîne de caractères Une chaîne est une série de caractères (une chaîne de zéro caractère est encore une chaîne). Si ces caractères peuvent être des chiffres, le contenu d’une chaîne ne peut jamais être utilisé dans un calcul. En revanche, il est possible de se servir des chaînes pour des noms, des adresses, des codes, des numéros de sécurité sociale, etc. 96
  • 97. Analyse des données Types de données non numériques supportés par Visual Basic 97 Type Stockage Plage Char 2 octets String Longueur de la chaîne Chaînes de caractères dont la longueur ne peut excéder 231 caractères Date 8 octets Du 1er janvier 100 au 31 décembre 9999 Boolean 2 octets True ou False
  • 98. Analyse des données Exemples des chaînes de caractères "Hilare or de cymbale à des poings irrités "  "44-51-54-48"  "666, rue de la Bête" " " 98
  • 99. Analyse des données Remarque sur les chaînes de caractères Une chaîne nulle est une chaîne d’une longueur de zéro octet, dont on se sert parfois pour réinitialiser le contenu d’une chaîne (lui donner la valeur zéro). 99
  • 100. Analyse des données Remarque sur les chaînes de caractères La valeur spéciale Null représente ce type de chaînes. Visual Basic supporte aussi une valeur de chaîne spéciale dite chaîne vide, représentée par le mot clé Empty. 100
  • 101. Analyse des données Remarque sur les chaînes de caractères Les chaînes vides sont semblables aux chaînes nulles, mais sont traitées d’une manière un peu différente : une propriété de contrôle qui contient le mot clé Empty sera interprétée comme n’ayant encore jamais été initialisée par quelque valeur que ce soit, pas même une chaîne nulle. 101
  • 102. Analyse des données Exemples de type Date #4 juillet 1776# #7:11 pm# #19:11:22# #1-2-2003# #5-Déc-99# 102
  • 103. Analyse des données Les variables Définition Une variable est une zone de stockage temporaire en mémoire, désignée par un nom unique. On peut y stocker pratiquement tout ce qu'on veut, comme par exemple des nombres, des phrases, des tableaux, etc. Les variables reçoivent les valeurs et les calculs intermédiaires attribués aux contrôles de la feuille et générés par eux. 103
  • 104. Analyse des données Déclaration des variables Définition Une variable est une zone de stockage temporaire en mémoire, désignée par un nom unique. Les variables reçoivent les valeurs et les calculs intermédiaires attribués aux contrôles de la feuille et générés par eux. 104
  • 105. Analyse des données Déclaration des variables Par défaut, la déclaration de variables est obligatoire Possibilité de déclaration implicite (Non recommandée): Option Explicit Off Possibilité de déclaration sans préciser le type: Option Infer On 'déduction suite à la 1ère affectation Exemple : Dim Numero = 9 ⇔ Dim Numero As Integer = 9 105
  • 106. Analyse des données Syntaxe de déclaration des variables Dim NomDeLaVariable As TypeDonnee NomDeLaVariable: le nom donné à la variable. TypeDonnee: l’un des types de données présentés aux Tableaux précédents. 106
  • 107. Analyse des données Préfixes décrivant le type de données d’une variable 107 Type Stockage Exemple bln Boolean blnBoutonEnabled byt Byte bytLength cur Currency curSales98 dte Date dteOverdue dbl Double dblScientificAmt int Integer intYear2011 lng Long lngWeatherDistance sng Single sngSales1stQte str String strFirstName
  • 108. Analyse des données Quelques conventions de nommage des variables Ne comporte que des lettres, nombres ou _ Commence par une lettre ou _ Ne peut être un mot clé Longueur limitée à 33 caractères Ne commence jamais par un nombre Toujours préfixer la variable par son type de données. 108
  • 109. Analyse des données Exemples de déclarations de variables possibles 1) Dim intTotal As Integer Dim curSales99 As Currency Dim dteFinal As Date Dim strName As String Dim blnIsChecked As Boolean 2) Dim intTotal As Integer, curSales99 As Currency 109
  • 110. Analyse des données Initialisation d’une variable Dim var, var2 As Integer var=25 var2=50 Dim var3 As Integer=5 110
  • 111. Analyse des données Les commentaires Une ligne est considérée comme commentée si le caractère « ' » (autrement dit, une simple quote) la précède ; une ligne peut aussi n'être commentée qu'à un certain niveau. 'Commentaire maVariable = 3* 4 ' Multiplie 3 et 4, et entre le résultat dans maVariable 111
  • 112. Analyse des données Remarque sur variable locale et variable globale Si vous déclarez une variable à l’intérieur d’une procédure (qu’il s’agisse ou non d’une procédure événementielle), alors la variable est disponible pour toute la procédure, et seulement pour cette procédure. Les autres procédures n’ont aucun accès à la variable, qui ainsi reste locale, c’est-à-dire valable uniquement pour la procédure qui la contient. 112
  • 113. Analyse des données Remarque sur variable locale et variable globale Si, en revanche, vous déclarez une variable dans la section de déclarations du module, cette variable sera disponible pour toutes les procédures du module. La variable est alors globale pour le module. 113
  • 114. Analyse des données Déclaration des constantes Const nomDeLaConstante As TypeDeDonnée= valeur Exemples: 1) Const pi As Single=3.14 2) Const x As Integer =140 Remarque: Ajouter le mot clé Public pour la rendre publique 114
  • 115. Analyse des données Les opérateurs Visual Basic 115 Opérateur Signification Exemple Résultat ^ Puissance 2^3 8 * Multiplication 2*3 6 / Division 6/2 2 + Addition 2+3 5 - Soustraction 5-2 3 Mod Modulo 11 Mod 3 2 Division entière 113 3 + ou & Concaténation de chaînes "Bon" & "jour" "Bonjour"
  • 116. Analyse des données L’ordre des opérateurs 116 Priorité Opérateur Exemple Résultat 1 Parenthèses () (2 + 3) * 7 35 2 ^ 2 ^ 3 + 1 9 3 *, /, , Mod 2 + 3 * 7 23 4 +, – 10 – 4 * 2 + 1 3
  • 117. Analyse des données Les opérateurs Visual Basic Opérateurs abrégés X += 6  X=X+6 Valable aussi pour les autres opérateurs : -= *= /= = ^= &= 117
  • 118. Analyse des données Déclaration des chaînes Dim strNomDeLaChaine As String Exemples de déclarations de variables à longueur variable: Dim strNomVille As String Dim strNomBoulvard As String 118
  • 119. Opérateurs et instructions de contrôle Les opérateurs conditionnels 119 Opérateur Description Exemple Résultat = Egal à 7 = 2 False > Supérieur à 6 > 3 True < Inférieur à 5 < 11 True >= Supérieur ou égal à 23 >= 23 True <= Inférieur ou égal à 4 <= 21 True <> Différent de 3 <> 3 False
  • 120. Opérateurs et instructions de contrôle Comparaison des chaines de caractères Les comparaisons de chaînes suivent ces règles générales : Les lettres capitales valent moins que les minuscules ; ainsi, "BONJOUR" vient avant "bonjour".  Les lettres se comparent selon l’ordre alphabétique ; ainsi, "A" vaut moins que "B", et le nom "Walter" passe avant le nom "William".  Les nombres valent moins que les lettres ; ainsi, "3" est plus petit que "trois". 120
  • 121. Opérateurs et instructions de contrôle Comparaison des chaines de caractères Remarque: Une instruction spéciale peut apparaître dans la section de déclarations d’un module : Option Compare Text Cette instruction, éventuellement associée à l’instruction Option Explicit, a pour effet que les capitales et les minuscules sont égales en comparaison. 121
  • 122. Opérateurs et instructions de contrôle Combinaison d’opérateurs conditionnels et logiques 122 Opérateur Description Exemple Résultat And Chaque terme de l’expression doit être True (2 < 3) And (4 < 5) True Or L’un des deux termes doit être True (2 < 3 ) Or (6 < 7) True Xor OU exclusif: une seule des deux conditions doit être vraie pour que le résultat soit Vrai ( 1 = 1) XOR (2 = 2) ( 2 > 1) XOR (3 < 1) False True Not Nie l’expression Not (3 = 3) False
  • 123. Opérateurs et instructions de contrôle Les instructions If ...Then... Syntaxe If condition Then Bloc d’instructions Visual Basic End If Remarque: Dans une instruction If, les parenthèses ne sont pas nécessaires autour de la condition; en revanche, elles désignent clairement la condition à interroger, et en cela clarifient le code. 123
  • 124. Opérateurs et instructions de contrôle Les instructions If ...Then... Remarque: Dans une instruction If, les parenthèses ne sont pas nécessaires autour de la condition; en revanche, elles désignent clairement la condition à interroger, et en cela clarifient le code. 124
  • 125. Opérateurs et instructions de contrôle Les instructions If ...Then...Else Syntaxe If condition Then Bloc d’instructions 1Visual Basic Else Bloc d’instructions 2Visual Basic End If 125
  • 126. Opérateurs et instructions de contrôle Instructions If... Else imbriquées Syntaxe If condition1 Then Bloc d’instructions Visual Basic ElseIF condition2 Then Bloc d’instructions Visual Basic Else Bloc d’instructions Visual Basic End If 126
  • 127. Opérateurs et instructions de contrôle Instructions If... Else imbriquées Exemple Dim moyenne As Short Dim appreciation As String If moyenne <10 Then appreciatioon= "Echec" ElseIf moyenne<=15 Then appreciation= "Moyen" Else appreciation="Excellent" EndIf 127
  • 128. Opérateurs et instructions de contrôle Les instructions Select Case L’instruction Select Case est la plus appropriée pour vérifier des conditions multiples. L’imbrication successive de trois ou quatre instructions If... Else complique considérablement le programme. 128
  • 129. Opérateurs et instructions de contrôle Les instructions Select Case Select Case expression Case condition Bloc d’instructions Visual Basic [ Case condition1 Bloc d’instructions Visual Basic] [ Case condition2 Bloc d’instructions Visual Basic] : [ Case conditionN Bloc d’instructions Visual Basic] [Case Else Bloc d’instructions Visual Basic] End Select 129
  • 130. Opérateurs et instructions de contrôle Les instructions Select Case Select Case choisit entre plusieurs conditions. Le nombre de ces conditions, indiqué dans le corps [ Case condition#...], varie selon la situation. Si aucune des conditions n’est remplie, le corps de Case Else (s’il y en a un) s’exécute. 130
  • 131. Opérateurs et instructions de contrôle Les instructions Select Case comparent des valeurs multiples Dim Age As Integer Select Case Age Case 18 Label1.text = "conduire" Case 23 Label1.Text = "travailler" Case 60 Label1.Text="retraite " End Select 131
  • 132. Opérateurs et instructions de contrôle Les instructions Select Case comparent des valeurs multiples Select Case txtGrade.Text Case "A" lblAnnounce.Text= "Très bien " Case "B" lblAnnounce. Text = "Bien " Case "C" lblAnnounce. Text = "Peut mieux faire" Case "D" lblAnnounce. Text= "Médiocre " Case "E" lblAnnounce. Text= "Mauvais" Case Else lblAnnounce. Text = "Note non validée" End Select 132
  • 133. Opérateurs et instructions de contrôle Les instructions Select Case Visual Basic supporte un autre format de Select Case, qui permet de spécifier, par le mot clé Is, un opérateur conditionnel pour chaque condition. 133
  • 134. Opérateurs et instructions de contrôle Comparaisons conditionnelles dans Select Case Select Case txtGrade.Text Case Is >= 18 lblAnnounce. Text = "Très bien " Case Is >= 15 lblAnnounce.Text = "Bien" Case Is >= 12 lblAnnounce. Text = "Peut mieux faire" Case Is >= 10 lblAnnounce. Text = "Médiocre" Case Else lblAnnounce. Text = "Mauvais" End Select 134
  • 135. Opérateurs et instructions de contrôle Remarque Les instructions Select Case ne conviennent pas à tous les types de comparaisons. Les opérateurs d’inclusion ou logiques ne sont pas supportés ; les conditions Case ne peuvent donc pas être interrogées par And, Or, ni Not. Pour cela, la seule solution consiste à imbriquer des instructions If... ElseIf... End If. 135
  • 136. Opérateurs et instructions de contrôle Comparaisons de valeurs séquentielles dans Select Case Select Case txtGrade.Text Case 0 To 9 lblAnnounce. Text = "Mauvais" Case 10 To 11 lblAnnounce. Text = "Médiocre" Case 12 To 14 lblAnnounce. Text = "Peut mieux faire" Case 15 To 17 lblAnnounce. Text = "Bien" Case Else lblAnnounce. Text = "Très bien" 136
  • 137. Opérateurs et instructions de contrôle Remarque d’or On peut combiner les différents formats de Case à l’intérieur d’une même instruction Select Case. Voici un exemple : Case 101, 102, 201 To 205, Is > 300 Si l’expression spécifiée dans Select Case renvoie une valeur égale à 101, 102, 201, 202, 203, 204, 205, ou supérieure à 300, le corps de Case s’exécute. 137
  • 138. Opérateurs et instructions de contrôle Les boucles Do Test antérieur: Boucle Tant Que…Faire Do While condition Bloc d’instructions Visual Basic Loop Exemple Dim Nom As String Do While Nom <> "Fin" Nom = InputBox ("saisir texte ou taper Fin") If Nom<> "Fin" Then Label1.Text=Nom EndIf Loop 138
  • 139. Opérateurs et instructions de contrôle Les boucles Do Test antérieur: Boucle TantQue…Faire La boucle Do est une instruction multiligne. Comme l’instruction If, l’instruction Do supporte différents formats . 139
  • 140. Opérateurs et instructions de contrôle Les boucles Do Test antérieur: Boucle TantQue…Faire Do While condition Bloc d’instructions Visual Basic Loop Exemple: Do While MotProposé <> MotDePasse MotProposé = InputBox("Donnez votre mot de passe") Loop 140
  • 141. Opérateurs et instructions de contrôle Les boucles Do Test antérieur: Boucle TantQue…Faire Do Until condition Bloc d’instructions Visual Basic Loop Exemple: Do Until MotProposé <> MotDePasse MotProposé = InputBox("Donnez votre mot de passe") Loop 141
  • 142. Opérateurs et instructions de contrôle Les boucles Do Test postérieur: Boucle Faire…TantQue Do Bloc d’instructions Visual Basic Loop While condition Exemple: Do MotProposé = InputBox("Donnez votre mot de passe") Loop While MotProposé <> MotDePasse 142
  • 143. Opérateurs et instructions de contrôle Les boucles Do Test postérieur: Boucle Faire …TantQue Do Bloc d’instructions Visual Basic Loop Until condition Exemple: Do MotProposé = InputBox("Donnez votre mot de passe") Loop Until MotProposé <> MotDePasse 143
  • 144. Opérateurs et instructions de contrôle Remarque Vous devez, d’une manière ou d’une autre, modifier la condition contenue dans le corps de la boucle ; autrement, la boucle s’exécuterait indéfiniment. Si d’aventure vous écrivez une boucle sans fin, votre application se bloque jusqu’à ce que vous cliquiez sur le bouton Fin de Visual Basic ou sur le bouton de fermeture de l’application. Si rien, dans le corps de la boucle, ne permet de modifier la condition testée, la boucle continuera de s’exécuter. 144
  • 145. Opérateurs et instructions de contrôle Les boucles For For compteur = ValeurInitiale To ValeurTerminale [Step PasIncrementation] Bloc d’instructions Visual Basic Next [compteur] 145
  • 146. Opérateurs et instructions de contrôle Exemples 1) For i = 1 To 10 lblOut. Text = i Next 2) For i = 10 To 100 Step 5 lblOut. Text = i Next 3) For i = 1000 To 0 Step -100 lblOut. Text = i Next 146
  • 147. Opérateurs et instructions de contrôle Exemples For Out = 1 To 4 For In = 1 To 10 ‘Ici, le bloc de code Next In Next Out 147
  • 148. Opérateurs et instructions de contrôle Les instrucitons Exit Il arrive parfois, selon les données, qu’une procédure (événementielle ou autre) doive être précipitamment interrompue. 148
  • 149. Opérateurs et instructions de contrôle Les instrucitons Exit Voici le format de l’instruction Exit : Exit Sub/Function/Do/For 149
  • 150. Opérateurs et instructions de contrôle Les instrucitons Exit Exemple: Exit for For i=1 To 10 Nom = InputBox (" Votre nom ou Fin pour quitter") if Nom = "Fin" Exit For Label1.Text=Nom Next i 150
  • 151. Opérateurs et instructions de contrôle Les instrucitons Exit Exemple: Exit Sub Private Sub cmdCalc() If (txtSales.Text < 50000) Then Exit Sub ’ Interrompt la procédure Else lblBonus. Text = txtSales.Text * .05 End If End Sub 151
  • 152. Support avancé du clavier et de l’écran Les fonctions internes La fonction MsgBox() MsgBox() est une fonction qui affiche une boîte de message. Une boîte de message contient une icône, un message, et au moins un bouton de commande. Ce bouton de commande laisse à l’utilisateur le temps de prendre connaissance du message ; lorsqu’il aura fini sa lecture, il cliquera sur le bouton. 152
  • 153. Support avancé du clavier et de l’écran Les fonctions internes Exemple 153
  • 154. Support avancé du clavier et de l’écran Les fonctions internes La fonction MsgBox() Voici le format de la fonction MsgBox() : IntResponse = MsgBox(Prompt, intStyle, strTitle]) IntResponse: indique le type de l’entier renvoyé par la fonction. strPrompt: c’est une chaîne (ou un contrôle qui contient une chaîne) spécifiant le message qui s’affichera dans la boîte de message. intStyle: détermine le style des boutons. strTitle: spécifie le libellé qui apparaîtra dans la barre de titre. 154
  • 155. Support avancé du clavier et de l’écran Les fonctions internes Exemple: 155
  • 156. Support avancé du clavier et de l’écran Valeurs entières permettant de spécifier le style des boutons Chr(13): représentant des retours à la ligne 156 Valeur Constante nommée Description 0 vbOKOnly Bouton OK 1 vbOKCancel Boutons OK, Annuler 2 vbAbortRetryIgnore Boutons Abandonner, Réessayer, Ignorer 3 vbYesNoCancel Boutons Oui, Non, Annuler 4 vbYesNo Boutons Oui, Non 5 vbRetryCancel Boutons Réessayer, Annuler
  • 157. Support avancé du clavier et de l’écran Exemples intRéponse = MsgBox("Prêt pour l’impression ?", 1, "pjtFonctionInterne") intRéponse = MsgBox("Prêt pour l’impression ?", vbOKCancel, "pjtFonctionInterne") 157
  • 158. Support avancé du clavier et de l’écran Exemples intRéponse = MsgBox("Prêt pour l’impression ?", 2, "pjtFonctionInterne") 158
  • 159. Support avancé du clavier et de l’écran Exemples intRéponse = MsgBox("Prêt pour l’impression ?", 3, "pjtFonctionInterne") 159
  • 160. Support avancé du clavier et de l’écran Exemples intRéponse = MsgBox("Prêt pour l’impression ?", 1, "pjtFonctionInterne") If (intRéponse = 1) Then ’ Ici, le code chargé de gérer ’ le clic sur le bouton OK. Else ’ Ici, le code chargé de gérer ’ le clic sur le bouton Annuler. End If 160
  • 161. Support avancé du clavier et de l’écran Les valeurs renvoyées indiquent quels boutons ont été cliqués Remarque: Echap = Annuler 161 Valeur Constante nommée Description 1 OK L’utilisateur a cliqué sur OK 2 Cancel L’utilisateur a cliqué sur Annuler 3 Abort L’utilisateur a cliqué sur Abandonner 4 Retry L’utilisateur a cliqué sur Réessayer 5 Ignore L’utilisateur a cliqué sur Ignorer 6 Yes L’utilisateur a cliqué sur Oui 7 No L’utilisateur a cliqué sur Non
  • 162. Support avancé du clavier et de l’écran Les boutons par défaut Le premier bouton d’une boîte de message est toujours le bouton par défaut. Visual Basic met automatiquement le focus sur le premier bouton (le plus à gauche), et le déclenche dès que l’utilisateur appuie sur Entrée. 162
  • 163. Support avancé du clavier et de l’écran Les boutons par défaut intRéponse = MsgBox("L’imprimante est-elle allumée", vbYesNoCancel + vbDefaultButton1) 163
  • 164. Support avancé du clavier et de l’écran Ces arguments permettent de spécifier le bouton par défaut 164 Valeur Constante nommée Description 0 vbDefaultButton1 Premier bouton par défaut 256 vbDefaultButton2 Deuxième bouton par défaut 512 vbDefaultButton3 Troisième bouton par défaut
  • 165. Support avancé du clavier et de l’écran Les icônes Valeurs spécifiant l’icône de la boîte de message 165 Valeur Constante nommée Description Icône 16 vbCritical Erreur critique 32 vbQuestion Question 48 vbExclamation Avertissement 64 vbInformation Information
  • 166. Support avancé du clavier et de l’écran Exemple en utilisant les icônes intRéponse = MsgBox("L’imprimante est-elle allumée ?", vbYesNoCancel + vbQuestion + vbDefaultButton2, "Une petite question") 166
  • 167. Support avancé du clavier et de l’écran La fonction InputBox() La fonction InputBox() affiche une boîte de message qui permet à l’utilisateur de répondre "dans le texte ". Cette combinaison d’une boîte de message et d’une sorte de zone de texte est appelée boîte d’entrée. 167
  • 168. Support avancé du clavier et de l’écran La fonction InputBox() Seuls les boutons OK et Annuler apparaissent dans une boîte d’entrée. Les boîtes d’entrée n’affichent pas non plus d’icône, contrairement aux boîtes de message. 168
  • 169. Support avancé du clavier et de l’écran La fonction InputBox() Voici le format de la fonction InputBox() : strRéponse = InputBox(Prompt, Titre, texteParDefaut, Xposition,Yposition) InputBox() renvoie une valeur de type chaîne. La chaîne renvoyée est la réponse saisie par l’utilisateur dans le champ. Prompt: Le message ou la question qui s’affiche dans la boîte d’entrée. La longueur maximale de Prompt est de 1024 caractères. 169
  • 170. Support avancé du clavier et de l’écran La fonction InputBox() Voici le format de la fonction InputBox() : strRéponse = InputBox(Prompt, Titre, texteParDefaut, Xposition,Yposition) Titre: Le texte qui apparaît dans la barre de titre. A défaut de titre, Visual Basic affiche le nom du projet. texteParDefaut: Contenu par défaut du champ de saisie. L’utilisateur peut accepter cette réponse par défaut, qui sera alors la valeur renvoyée ; il peut la modifier, ou saisir une réponse entièrement nouvelle. On se sert d’une valeur par défaut lorsque la réponse est prévisible et n’attend que d’être validée par le bouton OK. 170
  • 171. Support avancé du clavier et de l’écran La fonction InputBox() Voici le format de la fonction InputBox() : strRéponse = InputBox(Prompt, Titre, texteParDefaut, Xposition,Yposition) Xposition, Yposition: Coordonnées en twips de la boîte d’entrée. Il est préférable, quand la question posée renvoie à d’autres feuilles ou boîtes de dialogue déjà à l’écran, de ne pas afficher la boîte d’entrée par-dessus. Si vous ne spécifiez pas de coordonnées, Visual Basic affiche par défaut la boîte d’entrée au centre de l’écran. Remarque: twips = 1/567 de centimètre 171
  • 172. Support avancé du clavier et de l’écran Exemple de la fonction InputBox() strRéponse = InputBox("Quel est le nom du client ? ","Identité client") 172
  • 173. Support avancé du clavier et de l’écran Exemple de la fonction InputBox() strRéponse = InputBox("Quel est le nom du client ?", "Identité client", "Joumana Souiri", 500, 750) 173
  • 174. Support avancé du clavier et de l’écran Exemple de la fonction InputBox() strRéponse = InputBox("Quel est le nom du client ?", "Identité client", "Joumana Souiri", 500, 750) If (strRéponse <> "") Then ’ Code chargé de gérer l’entrée utilisateur Else ’ Code chargé de gérer le clic sur Annuler End If Remarque: Empty="" 174
  • 175. Support avancé du clavier et de l’écran Les cases à cocher Définition Une case à cocher (check box, en anglais) est une option proposée sur la feuille. La case est cochée lorsque l’option est sélectionnée, décochée lorsque l’option est désélectionnée. Les cases à cocher offrent à l’utilisateur le choix entre deux valeurs possibles : True/False, Enabled/Disabled, etc. 175
  • 176. Support avancé du clavier et de l’écran Les cases à cocher Remarque Une case à cocher est soit cochée, soit décochée. Checked est la propriété du contrôle Check-Box qui détermine l’état de la case. Si la propriété Checked vaut True, l’option est sélectionnée et la case est cochée. Si Checked vaut False, l’option est désélectionnée et la case décochée. 176
  • 177. Support avancé du clavier et de l’écran Les cases à cocher L’état d’une case à cocher peut être interrogé par une instruction If du format suivant : If (chkUnder.Checked = true) Then ’ Code chargé de gérer l’état "coché" Else ’ Code chargé de gérer l’état "décoché" End If 177
  • 178. Support avancé du clavier et de l’écran Exemple 1: 178
  • 179. Support avancé du clavier et de l’écran Exemple 1: Police de caractères (ou Font) Une 'Font' est définie par: - Un nom. - Une taille. - Un style (gras, italique, souligné..) 179
  • 180. Support avancé du clavier et de l’écran Exemple 1: Police de caractères (ou Font) -Pour modifier la police de caractère utilisée dans un contrôle, il faut lui assigner un objet 'Font‘: label1.Font = New System.Drawing.Font("Arial", 10) -On indique le nom de la font et la taille, on aurait pu ajouter un troisième argument: le style (gras, italique, souligné): label1.Font = New System.Drawing.Font("Arial", 10, FontStyle.Bold ) 180
  • 181. Support avancé du clavier et de l’écran Les boutons d’option Les boutons d’option donnent à l’utilisateur la possibilité de choisir parmi plusieurs options. A l’inverse des cases à cocher, en revanche, un seul bouton d’option peut être sélectionné à la fois. Les boutons d’option offrent un choix unique parmi plusieurs options. N.B: la propriété pour voir quel bouton radio est coché est la même qu’une case à cocher. 181
  • 182. Support avancé du clavier et de l’écran Exemple 182
  • 183. Support avancé du clavier et de l’écran Le contrôle Frame et les groupes d’options 183
  • 184. Support avancé du clavier et de l’écran Exemple 2 184
  • 185. Support avancé du clavier et de l’écran Exemple 3 185
  • 186. Gestion de la souris et contrôles avancés Les contrôles ListBox Voici les différents types de zones de liste : zone de liste simple ; ComboBox liste déroulante ; ComboBox simple ; ComboBox déroulante. 186
  • 187. Gestion de la souris et contrôles avancés Les zones de liste simples Le contrôle zone de liste simple permet à l’utilisateur de sélectionner un ou plusieurs éléments dans une liste prédéfinie. Pour ajouter une zone de liste simple à votre feuille, double-cliquez sur le contrôle ListBox de la Boîte à outils. 187
  • 188. Gestion de la souris et contrôles avancés Les zones de liste simples Quelques propriétés: Name: nom de la liste. SelectMode: indique le nombre d'éléments qu'on peut sélectionner et le mode de sélection. None: aucune sélection n'est possible. One: sélection d'un seul élément (valeur par défaut) MultiSimple: sélection de plusieurs éléments par un simple clic. MultiExtended: sélection de plusieurs éléments avec un clic en appuyant sur la touche Shift (ou Ctrl). 188
  • 189. Gestion de la souris et contrôles avancés Les zones de liste simples Quelques propriétés: Items: une collection (possède des propriétés et des méthodes) qui permet d'accéder aux éléments de la liste. SelectedItem: l'élément sélectionné dans la liste (si SelectionMode= One) SelectedIndex: indice de l'élément sélectionné (= -1 si aucun élément n'est sélectionné) SelectedItems: une collection représentant les éléments sélectionnés dans la liste (si SelectionMode=MultiSimple ou MultiExtended) SelectedIndices: une collection représentant les indices des éléments sélectionnés. Sorted: indique si la liste est triée (True) ou non (False) 189
  • 190. Gestion de la souris et contrôles avancés Les zones de liste simples Initialisation du contrôle listbox Dans la fenêtre Propriétés, cliquez sur la propriété Items d’un contrôle ListBox : une liste s’affiche, dans laquelle vous pouvez ajouter des valeurs. 190
  • 191. Gestion de la souris et contrôles avancés Les zones de liste simples Initialisation du contrôle listbox Méthode assistée Lors du clic sur la liste simple, elle apparaît sélectionnée et une petite flèche apparaît en haut à droite de cette sélection, comme à la figure suivante. Cliquez maintenant sur Modifier les éléments pour lui en attribuer. 191
  • 192. Gestion de la souris et contrôles avancés Les zones de liste simples Pour ajouter des éléments à une liste, on se sert de la méthode Items.Add. 192
  • 193. Gestion de la souris et contrôles avancés Les zones de liste simples Private Sub Form_Load() ’ Initialise les valeurs du contrôle. lstCouleurs.Items. Add "Rouge" lstCouleurs.Items. Add "Bleu" lstCouleurs.Items. Add "Vert" lstCouleurs.Items. Add "Jaune " lstCouleurs.Items. Add "Orange" lstCouleurs.Items. Add "Blanc" End Sub 193
  • 194. Gestion de la souris et contrôles avancés Les zones de liste simples Pour ajouter la couleur Aqua à la liste: lstCouleurs.Items.Add "Aqua" Pour Ajouter '4' : lstCouleurs.Items.Add(4.Tostring) Pour insérer ‘Kiwi’ en 4ème position : lstCouleurs.Items.Insert(4, "Kiwi") Pour ajouter plusieurs éléments en une seule fois on utilise Items.AddRange: Dim tabPays() As String {"Maroc", "Tunisie", "Lybie" } Me.ListBox1.Items.AddRange(tabPays) 194
  • 195. Gestion de la souris et contrôles avancés Les zones de liste simples Pour trier les éléments de liste simples, on utilise la proprieté Sorted lstCouleurs.Sorted=True 195
  • 196. Gestion de la souris et contrôles avancés Les zones de liste simples Remarque importante: L’élément sélectionné est mis en surbrillance et sa valeur est stockée dans lstCouleurs.text (également dans lstCouleurs.SelectedItem ) 196
  • 197. Gestion de la souris et contrôles avancés Les zones de liste simples Exemple: 197
  • 198. Gestion de la souris et contrôles avancés Les zones de liste simples Le code: Private Sub lstCouleurs_Click() ‘Copie l’élément sélectionné dans la zone de texte. txtCouleurs.Text = lstCouleurs.SelectedItem End Sub 198
  • 199. Gestion de la souris et contrôles avancés Les zones de liste simples Chaque élément de la zone de liste se voit affecter une valeur index, pour être distingué des autres. L’index commence à 0 pour le premier élément, et ainsi de suite. La méthode IndexOf de la zone de liste permet de déterminer la valeur d’index de l’élément. L’index de l’élément sélectionné est stock é dans SelectedIndex. 199
  • 200. Gestion de la souris et contrôles avancés Les zones de liste simples Pour accéder à un élément de la zone de liste: lstCouleurs.Items(3).ToString 200
  • 201. Gestion de la souris et contrôles avancés Les zones de liste simples Pour retirer le troisième élément de la liste, voici ce que serait le code : lstCouleurs.Items.RemoveAt(2) Pour retirer l’élément sélectionné de la liste: lstCouleurs.Items.Remove(lstCouleurs.SelectedItem) Pour retirer l'élément "Blanc": 201
  • 202. Gestion de la souris et contrôles avancés Les zones de liste simples Pour vider la liste: lstCouleurs.Items.Clear() 202
  • 203. Gestion de la souris et contrôles avancés Les zones de liste simples 1) Supprime les cinq éléments de la liste: For I = 0 To 4 lstCouleurs. Items.RemoveAt(I) Next I 2) Supprime tous les éléments de la liste: intTotal = lstCouleurs.Items.Count ‘Stocke le nombre total des éléments de la liste. For I = 1 To intTotal lstCouleurs. Items.RemoveAt(0) Next I 203
  • 204. Gestion de la souris et contrôles avancés Les contrôles ComboBox  Combinaison d'une liste simple et une zone de texte.  On peut sélectionner une seule valeur de la liste ou saisir une dans la zone de texte. Exemple 204 Zone de texte Bouton pour dérouler la liste
  • 205. Gestion de la souris et contrôles avancés Les contrôles ComboBox Quelques propriétés: Name: nom de la liste. DropDownStyle: indique l'apparence et le mode d'utilisation de la liste: Simple: possibilité de saisie et tous les éléments de la liste sont visibles. DropDown: possibilité de saisie et seul l'élément sélectionné sera visible (valeur par défaut) DropDownList: pas de possibilité de saisie, on ne peut que sélectionner un élément de la liste. 205
  • 206. Gestion de la souris et contrôles avancés Les contrôles ComboBox Le contrôle ComboBox est disponible en trois types:  ComboBox liste déroulante ;  ComboBox simple (fonctionne comme une combinaison de zone de liste et de zone de texte.);  ComboBox déroulante. 206
  • 207. Gestion de la souris et contrôles avancés Les contrôles ComboBox Les ComboBox liste déroulante supportent les mêmes méthodes et les mêmes propriétés que les zones de liste. 207
  • 208. Gestion de la souris et contrôles avancés Le contrôle Timer Le contrôle Timer vous permet de générer des réponses sur la base des valeurs envoyées par l’horloge interne du PC. le code peut s’exécuter sur la base d’intervalles de temps, indépendamment de la vitesse du PC, parce que le temps est une constante. 208
  • 209. Gestion de la souris et contrôles avancés Le contrôle Timer Le contrôle Timer reçoit les événements timer et y répond en fonction des propriétés que vous avez définies. Lorsque vous disposez le contrôle Timer sur la feuille, vous déterminez la fréquence des événements timer. 209
  • 210. Gestion de la souris et contrôles avancés Le contrôle Timer Cet intervalle correspond à l’une des propriétés du contrôle Timer. Lorsque ce laps de temps s’est écoulé, le contrôle Timer déclenche la procédure événementielle appropriée. 210
  • 211. Gestion de la souris et contrôles avancés Le contrôle Timer Remarque: Le contrôle Timer ne peut être dimensionné, et n’apparaît pas sur la feuille lors de l’exécution. 211
  • 212. Gestion de la souris et contrôles avancés Le contrôle Timer La seule propriété réellement spécifique au contrôle Timer est Interval. La propriété Interval spécifie la fréquence à laquelle le contrôle répondra aux événements. Cet intervalle en millisecondes peut être défini lors de la création ou lors de l’exécution. 212
  • 213. Gestion de la souris et contrôles avancés Le contrôle Timer Exemple: vous affectez à la propriété Interval la valeur 1000, les événements timer se produiront toutes les 1 000 millisecondes, soit une fois par seconde environ. N.B: le contrôle Timer connaît quelques limites. La propriété Interval ne peut contenir que des valeurs situées entre 0 et 64,767. L’intervalle maximal sera donc de 65 secondes, pas plus. 213
  • 214. Gestion de la souris et contrôles avancés Le contrôle Timer Exemple: 214
  • 215. Gestion de la souris et contrôles avancés Le contrôle Timer Propriétés: Timer 1: Text1(resp. 2): Interval: 1000 Name: txtTime1(resp. 2) Name: tmrTimer1 Text = 1 Timer 2: Police = 18 Interval: 500 Alignement= Center Name: tmrTimer2 Width = 1000 215
  • 216. Gestion de la souris et contrôles avancés Le contrôle Timer Le code pour tmrTimer1: Private Sub tmrTimer1_Tick() ’ Ajoute 1 à la valeur affichée. txtTimer1.Text = txtTimer1.Text + 1 End Sub 216
  • 217. Gestion de la souris et contrôles avancés Le contrôle Timer Le code pour tmrTimer1: Private Sub tmrTimer2_Tick() ’ Ajoute 1 à la valeur affichée. txtTimer2.Text = txtTimer2.Text + 1 End Sub 217
  • 218. Gestion de la souris et contrôles avancés Le contrôle Timer Lebels pour chaque Timer: Lent pour Timer1 Rapide pour Timer2 218
  • 219. Gestion de la souris et contrôles avancés Le contrôle Timer Résultat: 219
  • 220. Application multi-feuilles • Une application contient généralement plusieurs feuilles dont une est feuille de démarrage. • Le raccourci permet d'ajouter une feuille. Dans la fenêtre qui sera affichée, cliquer sur le bouton Ajouter (Add) • Dans le menu principal, utiliser Project/ NomApplication Properties pour choisir la feuille de démarrage en utilisant la liste Startup Form 220 Nouvelle feuille
  • 221. Application Multi-feuilles • Afficher une deuxième feuille à partir d'une première o NomFeuille.Show( ) On peut utiliser les deux feuilles o NomFeuille.ShowDialog( ) On ne peut pas utiliser que la deuxième feuille (feuille modale). Pour revenir à la première, on doit fermer la deuxième. Exemple: - Form1 et Form2 deux feuilles - Cmd1 un bouton de commande sur Form1. Objectif: Clic sur Cmd1  Afficher Form2 221
  • 222. Application Multi-feuilles Private Sub cmd1_Click(…..) Handles cmd1.Click Form2.Show() ' on peut accéder aux deux feuilles Form1 et Form2 End Sub Ou Private Sub cmd1_Click(…..) Handles cmd1.Click Form2.ShowDialog() ' on ne peut pas accéder à Form1 tant que Form2 est End Sub ' affichée 222 Name= Form1 Name= Form2 Name= Cmd1
  • 223. Application Multi-feuilles • Fermer une feuille NomFeuille.Close( ) Exemple: Form2.Close( ) 223
  • 224. Les Menus • Dans les applications multi-feuilles, on utilise généralement des menus et des feuilles MDI. Exemple: Dans ce projet par exemple, on a trois feuilles On va créer un menu dans Form3 pour accéder aux feuilles Form1 et Form2. o Ouvrir Form3 en mode conception (Design) o Mettre sa propriété Text à "Accueil" et IsMdiContainer à True. Cela signifie que les deux autres feuilles vont s'afficher à l'intérieur de Form3. 224
  • 225. Les Menus o Utiliser le contrôle pour créer graphiquement un menu dans Form3 o Cliquer sur le cadre du menu pour avoir une zone de texte pour la première option du menu o Saisir &Gestion dans cette zone de texte o Saisir &Informations et &Aide dans les deux autres zones de texte. 225 Cadre du menu Zone de texte
  • 226. Les Menus o Chaque option du menu a des propriétés qu'on peut modifier o Cliquer sur la première option Gestion pour avoir ses propriétés o Mettre la propriété Name à OptionGestion o Mettre la propriété ToolTipText à "Charger Form1 ou Form2". C'est le texte qui s'affichera dans une info-bulle lorsqu'on passera le pointeur de la souris sur l'option pendant l'exécution. 226 Name de l'option Text de l'option
  • 227. Les Menus o Cliquer sur l'option Gestion pour avoir une zone de texte afin de créer une sous-option. o Saisir dans cette zone de texte "Première Feuille" o Saisir dans la deuxième zone de texte "Deuxième Feuille" 227
  • 228. Les Menus o Cliquer sur la sous-option Première Feuille afin de modifier ses propriétés: o Name = SOptionFeuille1 (nom de la sous-option) o Shortcutkeys = Ctrl + F1 ( raccourci de la sous-option) o Image = une image de votre choix (icône de la sous-option) o Faire de même pour la sous-option Deuxième Feuille: o Name = SOptionFeuille2 o Shortcutkeys = Ctrl + F2 o Image = une image de votre choix 228
  • 229. Les Menus o Ajouter la sous-option Quitter: o Modifier le code de l'événement Load de la feuille Form1 Private Sub Form1_Load(…) Handles Me.Load Me.MdiParent = Form3 ' La feuille From1 s'affichera à l'intérieur de Form3 End Sub o Faire de même pour l'événement Load de la feuille form2 229 Name = SOptionQuitter
  • 230. Les Menus o Dans Form3, faire un double-clic sur la sous-option "Première Feuille" pour avoir son événement Click: Private Sub SOptionFeuille1_Click(…..) Handles SOptionFeuille1.Click Form1.Show() End Sub o Faire de même pour l'événement Click de la sous-option "Deuxième Feuille": Private Sub SOptionFeuille2_Click(…..) Handles SOptionFeuille2.Click Form2.Show() End Sub o Choisir Form3 comme feuille de démarrage. o Exécuter votre projet et cliquez sur les deux sous-options. o Essayer ShowDialog au lieu de Show et exécuter votre projet. 230
  • 231. Les Menus o Dans Form3, faire un double-clic sur la sous-option Quitter pour avoir son événement Click: Private Sub SOptionQuitter_Click(…..) Handles SOptionQuitter.Click End 'fin de l'application End Sub o Exécuter votre projet et cliquez sur la sous-option Quitter. 231
  • 232. Gestion de la souris et contrôles avancés Déclaration des tableaux Public NomDuTableu(Dimensions) As TypeDonnées Ou Dim NomDuTableau(Dimensions) As TypeDonnées Ou Dim NomDuTableau(PremierIndice To DernierIndice) As TypeDonnées Cette instruction déclare un tableau NomDuTableau de taille Dimension+1. Remarque: Par défaut, le premier indice est 0. 232
  • 233. Gestion de la souris et contrôles avancés Déclaration des tableaux Exemples: Dim intTab(5) As Integer 'Tableau de 6 entiers Dim intCounts(1 To 5) As integer 'Tableau de 5 entiers Dim Employes (9) As String 'Tableau de 10 chaînes de caractères Public strCustName(200 To 999) As String Dim Mat(10, 10) As Single 'Matrice de 10 lignes et 10 colonnes Dim T(0 to 19) As Integer 'Tableau de 20 entiers Dim Matrice(4,3) As Integer 'Matrice de 5 lignes et 3 colonnes 233
  • 234. Gestion de la souris et contrôles avancés Déclaration des tableaux Initialisation d‘un tableau: 1) Dim intTab(5) As Integer ‘Déclaration du tableau intTab(0)=5 intTab(1)=10 intTab(2)=15 intTab(3)=20 intTab(4)=25 intTab(5)=30 234
  • 235. Gestion de la souris et contrôles avancés Déclaration des tableaux Initialisation d‘un tableau: 2) Dim Employes () As String = {"Marrakchi", "Souiri", "Soussi"} Remarque : La taille 3 du tableau est déduite 235
  • 236. Gestion de la souris et contrôles avancés Déclaration des tableaux Accéder aux éléments d’un tableau Employes (5) ‘l’élément d'indice 5 dans le tableau Matrice(0,2) ‘la cellule à la 1ère ligne et 2nd colonne de la m 236
  • 237. Gestion de la souris et contrôles avancés Manipulation des tableaux Redimensionner un tableau La taille d'un tableau peut être redimensionnée au cours d'une application Redim intTab(30) Redim Preserve intTab(30) Remarque Le redimensionnement du tableau ⇒ la perte des données existantes. Pour pouvoir conserver le contenu d'un tableau lors d'un redimensionnement, il faut spécifier le mot-clé Preserve après Redim. 237
  • 238. Gestion de la souris et contrôles avancés Manipulation des tableaux Vider un tableau Array.Clear(nomDuTableau, premierIndice, nombreDeCasesAVider) nombreDeCasesAVider : le nombre de cases à vider Exemple Array.Clear(intTab, 0, 5) 238
  • 239. Gestion de la souris et contrôles avancés Manipulation des tableaux Inverser le sens du tableau Array.Reverse(nomDuTableau) Exemple Dim Tab() As Integer={1,2,3,4} Array.Reverse(Tab) ‘le tableau Tab contient maintenant 4,3,2,1 239
  • 240. Gestion de la souris et contrôles avancés Manipulation des tableaux Copier un tableau dans un autre: Copy Pour copier un tableau dans un autre tableau, on utilise la fonction Copy Array.Copy(tableauDuSource, tableauDuDestination, nbreElement) nbreElement: le nombre d’éléments à copier depuis l'élément 0. Exemple Array.Copy(tab1, tab2, 7) Array.Copy(tab1, tab2, 7) 240
  • 241. Gestion de la souris et contrôles avancés Manipulation des tableaux Trier un tableau: Sort Pour trier les elements d’un tableau, on utilise la fonction Sort Array.sort(tab) ‘Trie le tableau tab 241
  • 242. Gestion de la souris et contrôles avancés Manipulation des tableaux La méthode IndexOf Recherche un objet spécifié dans un tableau unidimensionnel (trié ou non) retourne l'index de la première occurrence. Exemple Dim myIndex As Integer = Array.IndexOf(myArray, myString) Remarque Retourne -1 si l'élément n'est pas trouvé. LastIndexOf fait une recherche à partir de la fin. 242
  • 243. Gestion de la souris et contrôles avancés Manipulation des tableaux Fonctions Ubound et Lbound Ubound : Retourne le plus grand indice disponible pour la dimension indiquée d'un tableau Lbound : retourne la limite inférieure ( = 0 ) Exemple: A = Ubound (NomTableau) 243
  • 244. Gestion de la souris et contrôles avancés Manipulation des tableaux Tableaux dynamiques La taille du tableau est définie au moment de l’exécution avec Redim Exemple: Dim Temperature () As Single Dim Jours As Short Jours = InputBox ("Combien de jours? ") Redim Temperature (Jours-1) 244
  • 245. Gestion de la souris et contrôles avancés Manipulation des tableaux La fonction Length Length retourne un entier qui représente le nombre d'éléments total dans le tableau. Pour un tableau à une dimension Length-1 retourne l'indice du dernie élément. Exemple: Tab.Length 245
  • 246. Fonctions de chaînes La fonction Len() Voici le format de Len() : Len(Expression) Len() renvoie (retourne) la longueur en nombre de caractères de la variable chaîne, de la constante chaîne ou de l’expression chaîne située entre les parenthèses. Exemples: La fonction MsgBox() affiche le résultat 6 : intMsg = MsgBox(Len("abcdef")) 246
  • 247. Fonctions de chaînes Fonctions de conversion de chaînes Remarque: CStr() et Str() convertissent leurs arguments en chaînes. La différence est que Str() fait précéder d’un blanc (espace) les nombres positifs convertis en chaîne. 247 Fonction Description CStr() Convertit l’argument en chaîne. Str() Convertit un argument numérique en chaîne (plus précisément en Variant exploitable comme chaîne). Val() Convertit un argument chaîne en nombre (si la chaîne passée contient bien un nombre).
  • 248. Fonctions de chaînes Fonctions de sous-chaînes Les fonctions de sous-chaînes renvoient une partie de la chaîne. Right() renvoie les caractères à partir de la droite, Left() à partir de la gauche. Mid() prélève les caractères à partir du milieu de la chaîne. Voici le format des fonctions de sous-chaînes : Left(chaineDeCaracteres, valeurNumerique) Right(chaineDeCaracteres, valeurNumerique) Mid(chaineDeCaracteres, startPosition[, length]) 248
  • 249. Fonctions de chaînes Fonctions de sous-chaînes Exemples: Le code suivant illustre le comportement de Left() : strA = "abcdefg" partSt1 = Left(strA, 1) ’ Renvoie (Retourne) "a". partSt2 = Left(strA, 3) ’ Renvoie "abc". partSt3 = Left(strA, 20) ’ Renvoie "abcdefg". 249
  • 250. Fonctions de chaînes Fonctions de sous-chaînes Exemples: Right() fait la même chose en sens inverse : strA = "abcdefg" partSt1 = Right(strA, 1) ’ Renvoie "g". partSt2 = Right(strA, 3) ’ Renvoie "efg". partSt3 = Right(strA, 20) ’ Renvoie "abcdefg". 250
  • 251. Fonctions de chaînes Fonctions de sous-chaînes Exemples: Mid() peut prélever n’importe quel nombre de caractères depuis n’importe quel point de la chaîne. Voici un exemple : strA = "Visual Basic FORTRAN COBOL C Pascal« lang1 = Mid(strA, 1, 12) ’ Renvoie "Visual Basic". lang2 = Mid(strA, 14, 7) ’ Renvoie "FORTRAN". lang3 = Mid(strA, 22, 5) ’ Renvoie "COBOL". lang4 = Mid(strA, 28, 1) ’ Renvoie "C".  lang5 = Mid(strA, 30, 6) ’ Renvoie "Pascal". 251
  • 252. Fonctions de chaînes Fonctions UCase() et LCase() Exemples: UCase() renvoie l’argument chaîne en lettres capitales. LCase() le renvoie en lettres minuscules. La fonction MsgBox() suivante affiche VISUAL BASIC : intMsg = MsgBox(UCase("Visual Basic")) 252
  • 253. Fonctions de chaînes Les fonctions LTrim() et RTrim() LTrim() et RTrim() suppriment les espaces au début et à la fin de la chaîne. LTrim() renvoie l’argument chaîne sans les espaces de début, RTrim() sans les espaces de fin. La fonction Trim() supprime les espaces de début et de fin. Voici le format de ces fonctions :  LTrim(stringExpression)  RTrim(stringExpression)  Trim(stringExpression) 253
  • 254. Fonctions de chaînes Les fonctions LTrim() et RTrim() Exemples: Les instructions suivantes suppriment les espaces de début, de fin, et des deux : st1 = LTrim(" Bonjour") ’ Renvoie "Bonjour". st2 = RTrim("Bonjour ") ’ Renvoie "Bonjour". st3 = Trim(" Bonjour ") ’ Renvoie "Bonjour". 254
  • 255. Fonctions de chaînes La fonction ReverseIt() La fonction ReverseIt() suivante inclut plusieurs des fonctions de chaînes présentées ci-dessus. Cette fonction inverse un certain nombre de caractères dans la chaîne passée. Exemples: Supposons que la fonction ReverseIt() soit appelée par l’instruction suivante : newStr = ReverseIt ("Visual Basic", 6) Si tout se passe bien, la chaîne newStr prendra comme contenu 255
  • 256. Procédures et fonctions Fonctions internes Fonctions numériques:  Int(valeurNumerique)  Fix(valeurNumerique) Exemples: 1) intAns1 = Int(6.8) ’ 6 2) intAns2 = Fix(6.8) ’ 6 3) intAns3 = Int(-6.8) ’ -7 4) intAns4 = Fix(-6.8) ’ -6 256
  • 257. Procédures et fonctions Fonctions internes Méthodes de la classe Math Utiliser l’instruction : Imports System.Math 257 Abs(n) Renvoie la valeur absolue de n Atan(n) Renvoie l’arc tangente de n en radians Cos(n) Cosinus de n en radians Exp(n) Constante e élevée à la puissance n Sign(n) -1 si n négatif / +1 si n positif Sin(n) Sinus de n en radians Sqrt(n) Racine carrée de n Tan(n) Tangente de n en radians
  • 258. Procédures et fonctions Fonctions internes Fonctions de type de données  IsDate(): vérifie si son argument est de type Date (ou s’il peut être correctement converti en date). IsEmpty(): vérifie si son argument a été initialisé. IsNull(): vérifie si son argument contient une valeur Null. IsNumeric(): vérifie si son argument est d’un type numérique (ou s’il peut être correctement converti en nombre). 258
  • 259. Procédures et fonctions Fonctions internes La fonction abrégée IIf(): Syntaxe: IIf(condition, TrueBody, FalseBody) N.B: IIf() ne doit être utilisé qu’en remplacement d’instructions If... Else courtes. 259
  • 260. Procédures et fonctions Fonctions internes La fonction abrégée IIf(): Exemple 1: If (curSales < 5000.00) Then curBonus = 0.00 Else curBonus = 75.00 End If équivalent à curBonus = IIf(curSales < 5000.00, 0.00, 75.00) 260
  • 261. Procédures et fonctions Fonctions internes La fonction abrégée IIf(): Exemple 2: Dim Note As Single Dim Reponse As String Note = InputBox (" Tapez votre note ") Reponse = IIf (Note >= 10, " Admis ", " Ajourné ") MsgBox (Réponse) 261
  • 262. Procédures et fonctions Procédures privées et publiques 1) Private Sub ReportIt() 2) Public Sub ReportIt() Remarque:  Une procédure déclarée comme Private n’est exploitable qu’à l’intérieur de son propre module.  Une procédure déclarée comme Public peut être appelée depuis n’importe quelle autre procédure de l’application. 262
  • 263. Procédures et fonctions Procédures privées et publiques 1) Private Sub ReportIt() 2) Public Sub ReportIt() Remarque:  Une procédure déclarée comme Private n’est exploitable qu’à l’intérieur de son propre module.  Une procédure déclarée comme Public peut être appelée depuis n’importe quelle autre procédure de l’application. 263
  • 264. Procédures et fonctions Comment déclarer une fonction Syntaxe : Public|Private Function nomDeLaFonction(Arg) As typeDeRetour Exemple: Public Function SalesTax(curTotal As Currency, sngRateDisc As Single) As Currenc 264
  • 265. La syntaxe pour déclarer une fonction Appel de la fonction TotalImpot Dim PrixTotal, PrixVente As Single PrixVente = 500 PrixTotal = PrixVente + TotalImpot (PrixVente) 265 Function NomFonction ([arguments]) As Type Liste d’instructions NomFonction = Expression End Function __________________________________ Type : Type de la valeur retournée Possibilité d’utiliser l’instruction Return Function TotalImpot(ByVal Prix as Single) As Single Dim ImpotNational, ImpotLocal As Single ImpotNational = Prix*0,05 ImpotLocal = Prix*0,015 TotalImpot = ImpotNational+ImpotLocal ‘ ou Return ImpotNationale+ImpotLocal End Function Procédures et fonctions
  • 266. Procédure Sub Appel d’une procédure Sub VoeuAnniversaire ("Lina") 266 Sub NomProcédure ([arguments]) Instructions End Sub Sub VoeuAnniversaire (ByVal Personne As String) Dim Msg As String If Personne <> " " Then Msg = " Joyeux anniversaire" & Personne & "!" Else Msg = "Nom non spécifié" EndIf MsgBox = (Msg, , "Meilleurs voeux") End Sub Procédures et fonctions
  • 267. Dans une procédure/fonction, les arguments sont passés soit par valeur, soit par référence  Arguments passés par valeur (par défaut) : Mot clé ByVal Tout changement apporté à une variable passée par valeur n’est pas renvoyé à la procédure/fonction appelante.  Arguments passés par référence : Mot clé ByRef Tout changement apporté à une variable passée par référence est renvoyé à la procédure/fonction appelante Exemple Sub CoutPlusInteret (ByVal Cout As Single, ByRef Total As Single) Cout = Cout * 1,05 Total = Int (Cout) ‘Arrondit à l’entier End Sub 267 Procédures et fonctions
  • 268. Modules et Procédures Modules Un module est un fichier destiné à comporter du code utile à la conception du programme. Il comporte les déclarations de variables et de procédures/fonctions afin d’étendre leur portée sur tout le projet. Par défaut, les fonctions déclarées dans un module sont publiques. Création d’un module Accessible depuis le Menu Projet (Ajouter un nouvel élément) 268
  • 269. Références 1. Visual Basic 6. Créez des applications efficaces en VB6, Greg Perry, Pearson Education France, 2009 . 2. https ://openclassrooms.com/fr/courses/993975-apprenez-a-programmer-e 3. https://vb.developpez.com/cours/ 269

Notes de l'éditeur

  1. Tip: Add your own speaker notes here.
  2. Tip: Add your own speaker notes here.
  3. Tip: Add your own speaker notes here.
  4. Tip: Add your own speaker notes here.
  5. Tip: Add your own speaker notes here.
  6. Tip: Add your own speaker notes here.
  7. Tip: Add your own speaker notes here.
  8. Tip: Add your own speaker notes here.
  9. Tip: Add your own speaker notes here.
  10. Tip: Add your own speaker notes here.
  11. Tip: Add your own speaker notes here.
  12. Tip: Add your own speaker notes here.