Вы находитесь на странице: 1из 44

Visual Basic

SOMMAIRE

I- INTRODUCTION :.............................................................................................................. 3
II- LENVIRONNEMENT DE DEVELOPPEMENT DE VISUAL BASIC :.................... 3
1- ELEMENTS DE LENVIRONNEMENT DE DEVELOPPEMENT INTEGRE VISUAL BASIC (IDE) :.... 4
1- Barre de menus : ............................................................................................................. 4
2- Barres doutils : .............................................................................................................. 4
3- Bote outils : ................................................................................................................. 4
2- LES ETAPES DE CREATION DUNE APPLICATION EN VISUAL BASIC :..................................... 5
3- LES STRUCTURES DE BASE DU VISUAL BASIC : .................................................................... 5
4- LES VARIABLES :.................................................................................................................. 5
1- Types de variables :......................................................................................................... 6
2- Les dclarations : ............................................................................................................ 7
3- Porte des variables :...................................................................................................... 7
4- Les constantes : ............................................................................................................... 8
5- LES TABLEAUX : .................................................................................................................. 8
6- LES OPERATEURS : ............................................................................................................... 9
III- LES INSTRUCTIONS DE CONTROLE : ..................................................................... 9
1- AFFECTION : ........................................................................................................................ 9
2- IF THEN ELSE : ......................................................................................................... 10
3- GOTO : .............................................................................................................................. 10
4- FOR NEXT : ................................................................................................................... 10
5- DO LOOP :..................................................................................................................... 11
While Wend : ................................................................................................................. 12
Select Case : ...................................................................................................................... 13
IV- SOUS-PROGRAMMES : ............................................................................................... 13
1- APPEL INTERNE GOSUB RETURN :.............................................................................. 14
2- APPEL EXTERNE PROCEDURES ET FONCTIONS : ............................................................... 14
V- TRAITEMENT DES CHAINES DE CARACTERES :................................................ 17
1- BOITE DE SAISIE :............................................................................................................... 18
2- MSGBOX : ....................................................................................................................... 19
VI- CREATION DUNE INTERFACE UTILISATEUR : ................................................ 20
1- CARACTERISTIQUES DES FEUILLES MDI EN MODE EXECUTION : ........................................ 21
2- CREATEURS DE MENUS : .................................................................................................... 21
3- ORGANISATION DES FEUILLES FILLES : .............................................................................. 22
4- LES MENUS CONTEXTUELS :............................................................................................... 22
LES CONTROLES DE VISUAL BASIC : .......................................................................... 23
CATEGORIES DE CONTROLES :................................................................................................ 23
Les groupes de contrles :................................................................................................. 23

www.developpez.c.la

Visual Basic

VII- LES FICHIERS.............................................................................................................. 32


1- MODES DE TRAITEMENT DES FICHIERS :............................................................................. 33
1) Accs Squentiel :.......................................................................................................... 33
2) Accs direct ou accs alatoire :................................................................................... 34
3) Accs binaire :............................................................................................................... 35
2- LES INSTRUCTIONS DE TRAITEMENT DES FICHIERS :........................................................... 35
1) Open : ............................................................................................................................ 35
2) Line Input : .................................................................................................................... 36
3) Input () : ........................................................................................................................ 36
4) Input # : ......................................................................................................................... 37
5) Print # : ......................................................................................................................... 38
6) Write # :......................................................................................................................... 38
7) Close : ........................................................................................................................... 39
8) Freefile : ........................................................................................................................ 39
9) Get :............................................................................................................................... 39
10) Put : ............................................................................................................................. 40
11) Seek : ........................................................................................................................... 41
12) Loc :............................................................................................................................. 42
13) EOF :........................................................................................................................... 43
14) LOF : ........................................................................................................................... 43
15) FileLen : ...................................................................................................................... 44

www.developpez.c.la

Visual Basic

Un langage de programmation, cest un outil qui sert crire des programmes


rpondant lattente de lutilisateur de manire les excuter laide dinstructions propre
chaque langage.
Par leur faon de communiquer, on dfinit deux types de langage :
- Le langage bas niveau : Langage qui communique directement avec le
matriel (Assembleur)
- Le langage haut niveau : Basic, Pascal, Fortran.
On les diffrencie aussi par leurs aspects, cest dire, le domaine dutilisation :
1- Aspect scientifique : C, Pascal, PLM, Fortran
2- Gestion : (SGBD : Dbase, Clipper, Foxpro), Langage COBOL
3- Langage Orient Objet : Visual C++, C++, Small Talk.

I- Introduction :
Visual Basic est loutil le plus facile utiliser pour crer des applications Microsoft
Windows. Visual Basic se compose des deux mots Visual et Basic.
Le mot Visual fait rfrence la mthode utilise pour crer linterface graphique
utilisateur (GUI, Graphical User Interface). Au lieu de rdiger de multiples lignes de code
pour dcrire lapparence et lemplacement des lments dinterface, il vous suffit de glisser
dplacer des objets prdfinis lendroit adquat sur lcran.
Le mot Basic fait rfrence au langage BASIC (Beginners All-Purpose Symbolic
Instruction Code), langage le plus utilis par les programmeurs depuis les dbuts de
linformatique. Visual Basic constitue une volution par rapport au langage BASIC initial et
comporte aujourdhui plusieurs centaines dinstructions de fonctions et de mots cls, dont un
grand nombre font directement rfrence linterface graphique utilisateur (GUI) de
Windows.

II- Lenvironnement de dveloppement de Visual Basic :


Lenvironnement de travail de Visual Basic est souvent dsign sous le nom de
environnement de dveloppement intgr (IDE, Intergrated Development Environment),
car il intgre de nombreuses fonctions varis telles que la cration, la modification, la
compilation et le dbogage au sein du mme environnement.
Dans la plupart des outils de dveloppement traditionnels, chacune de ces fonctions est
excute par un programme distinct dot de sa propre interface.

Lenvironnement de dveloppement intgr Visual Basic

www.developpez.c.la

Visual Basic

1- Elments de lenvironnement de dveloppement intgr Visual Basic (IDE) :


1- Barre de menus :
Affiche les commandes qui vous permettent dutiliser Visual Basic. Outre menus
habituels, savoir Fichier, Edition, Affichage, Fentre et ? (Aide), des menus permettent
daccder des fonctions spcifiques ncessaires la programmation, notamment les menus
Projet, Format et Dbogage.
2- Barres doutils :
Contiennent des boutons constituant des raccourcis vers des lments de menu
frquemment utiliss. Vous pouvez cliquer sur un bouton de la barre doutils pour excuter
laction quil reprsente. Par dfaut, la barre doutils Standard apparat lorsque vous dmarrez
Visual Basic.
3- Bote outils :
Fournit un ensemble doutils ncessaires au moment de la cration pour disposer les
contrles sur une feuille.
Icne

Nom du contrle
Zone dimage
Etiquette
Zone de Texte
Cadre

Bouton de
commande
Case cocher

Bouton doption
Zone de liste
Liste modifiable

Liste de
rpertoires
Liste de lecteurs

Liste de fichiers
Barres de

Nom de la classe
Description
PictureBox
Affiche une image, effectue des sorties graphiques
ou peut servir de cadre dautres contrles.
Label
Ltiquette pour afficher du texte, sans permettre
une saisie de lutilisateur.
TextBox
Pour saisir du texte, sur une ou plusieurs lignes.
Frame
Peut regrouper dautres contrles (notamment des
boutons doption), ou tre utilis des fins de
dcoration.
CommandButton Le bouton de commande qui permet la saisie de
commande de lutilisateur.
Check Box
La case cocher cre une case que lutilisateur
peut cocher facilement pour indiquer si un tat est
vrai ou faux, ou pour afficher des choix multiples
lorsque lutilisateur peut en slectionner plusieurs.
OptionButton
Le bouton doption utilis en groupe pour autoriser
le choix dune option ou de plusieurs possibles.
ListBox
Zone de liste affiche une liste dlments parmi
lesquels lutilisateur peut faire un choix.
ComboBox
Liste Modifiable allie les fonctions dune zone de
texte et dune zone de liste. Permet lutilisateur
de taper dans un lment slectionn ou den
slectionner un dans une liste droulante.
DirListBox
Liste de rpertoires affiche une liste de dossiers et
de chemins daccs parmi lesquels lutilisateur peut
faire un choix.
DriveListBox
Liste de lecteurs affiche une liste de lecteurs de
disque valides parmi lesquels lutilisateur peut faire
un choix.
FileListBox
Liste de fichier affiche une liste de fichiers parmi
lesquels lutilisateur peut faire un choix.
HscrollBar et
Barres de dfilement horizontal et vertical

www.developpez.c.la

Visual Basic

dfilement
horizontale et
vertical

VscrollBar

Forme

Shape

Ligne
Minuterie

Line
Timer

Image

Image

Conteur OLE

OLE

Donnes

Data

permettent un utilisateur dajouter des barres de


dfilement dans des contrles qui ne les fournissent
pas automatiquement. Ces contrles sont diffrents
des barres de dfilement intgres dans de
nombreux contrles.
Forme Ajoute un rectangle, un carr, une ellipse ou
un cercle sur une feuille, un cadre ou une zone
dimage.
Ligne Ajoute un segment de droite sur une feuille
Minuterie Excute des vnements Timer des
intervalles dfinis.
Affiche des images bitmap, des icnes, ou encore
des fichiers JPEG ou GIF. Agit comme un bouton
de commande lorsque lutilisateur clique dessus.
Incorpore des donnes dans une application Visual
Basic.
Permet de se connecter une base de donnes
existante et dafficher les informations quelle
contient sur vos feuilles.

2- Les tapes de cration dune application en Visual Basic :


La cration dune application en Visual Basic comprend trois tapes :
Cration de linterface (icnes, fentres )
Dfinition de proprits (lgende de boutons, couleur des fentres, taille
type dimages ou dicnes )
Lcriture du code.
3- Les structures de base du Visual Basic :
Un programme en Visual Basic est une suite dinstructions qui peuvent soit
senchaner Squence dinstructions soit sexcuter dans certains cas et pas dans dautres on
parle alors de Structures alternatives ou se rpter plusieurs fois Structures rptitives.
Comme tout langage de programmation, VB fournie une liste dinstructions qui sont
implmentes (propres lui) et que lon peut donc utiliser sans les rcrire.
4- Les variables :
Le code dune application VB se droule en rponse des vnements. Les
instructions sont constitues de verbes qui agissent sur des variables. Une variable peut tre
considre comme une case en mmoire. Elle est identifie par un nom, permet de la dsigner,
et son contenu est appel valeur.
Le nom dune variable est choisi par celui qui crit le programme, en respectant
quelques rgles :
Il est constitu de lettres, de chiffres et du caractre _ (soulign)
Le premier caractre est obligatoirement une lettre.
Les lettres majuscules et minuscules sont quivalentes, et les caractres
accentus sont accepts.
Il ne peut y avoir plus de 40 caractre dans un nom de variable.
Les mots rservs de Visual Basic (tels que Loop, If, Constant ) ne
peuvent tre utiliss.

www.developpez.c.la

Visual Basic

Exemple :
I
J18
Compteur
Bnfice_de_l_anne_1999
BnficedeLanne1999
1- Types de variables :
Visual Basic permet lutilisation de divers types de variables qui peuvent tre
regroupes dans les catgories suivantes :
Les variables numriques utilises pour stocker un nombre. Il en existe plusieurs
catgories :
Les entiers sur 2 octets (Integer) ou 4 octets (Long) qui peuvent stocker un nombre
entier, sans dcimale, positif ou ngatif. Les premiers sont plus conomiques, mais ne peuvent
tre utiliss pour le grands nombres.
Les nombres virgule flottante sur 4 octets (single) ou 8 octets (Doublon) utiliss pour
stocker un nombre rel quelconque.
Les units montaires qui sont des nombres virgule fixe ayant 4 dcimales
(currency).
Les chanes de caractres (string) utilises pour stocker des textes, des libells Une
seule chane de caractre ou une date/heure. Visual Basic effectue automatiquement les
conversions selon les besoins. Il sagit du type de donnes par dfaut, dcrit ci-aprs.
Les types spcifiques (Type) principalement utiliss pour la dclaration des
enregistrements dun fichier.
Suffixe
%
&
!

Type de donnes
Integer (entier simple)
Long (entier long)
Single simple prcision
virgule flottante

Taille
2 octets
4 octets
8 octets

Double (valeur virgule


flottante double
prcision)

8 octets

8 octets

Currency (entier virgule


fixe 4 chiffres dcimaux)
String

Aucun

Variant

Aucun

Dfini par lutilisateur


(avec type)

1 octet par
caractre
Variable

Plage
-32768 32767
-2 147 483 648 2 147 483 647
-3,402823E38 1,401298E-45 pour
les valeurs ngatives ; 1,401298E-45
3,402823E38 pour les valeurs positives
-1,797693134862315E308
4,94066E-324 pour les valeurs
ngatives ; 4,90466E-324
1,797693134862315E308 pour les
valeurs positifs
-922337203685477,5808
922337203685477,5807
0 approximativement 65535 octets
Toute valeur numrique ou chane de
caractres

Nombre
doctets
requis par
les lments
Le type de donnes par dfaut est variant : cest le type de donne attribuer toutes les
variables non dclares, il peut contenir des donnes numriques des chanes de caractres,
des dates

www.developpez.c.la

Visual Basic

2- Les dclarations :
Le langage Basic prsente une originalit par rapport de nombreux autres langages :
il autorise lutilisation de variables sans imposer une dclaration au pralable. Ainsi, la simple
utilisation dune variable dans une ligne de code gnre une dclaration implicite. Mais il est
galement possible de dclarer explicitement les variables avant leur utilisation.
La dclaration explicite dune variable peut se faire nimporte o dans le code du
programme : dans la section des dclarations dune feuille ou dun module, ou dans le corps
dune fonction ou dune procdure. Elle se fait laide de linstruction DIM ou STATIC
dans une feuille ou un module, ou GLOBAL dans la section des dclarations dun module.
Chaque fois que linstruction DIM est excute, la variable correspondante est
rinitialise 0 sil sagit dune variable numrique, la chane vide (une chane de caractres
sans caractre) sil sagit dune variable String, ou la valeur particulire Empty sil sagit
dune variable Variant. Si vous souhaitez quune variable garde sa valeur de faon
permanente, il faut remplacer le mot Dim par Static. Dans ce cas, la variable est initialise aux
valeurs prcdentes lors du lancement de lapplication, et ensuite le seul moyen den modifier
la valeur est dutiliser une instruction daffection.
Sub Maproc ()
Dim i as integer
i=i+1
End Sub
A chaque appel de la procdure MaProc, la variable i est initialise 0 par contre si
on crit :
Sub Maproc ()
Static i as integer
i=i+1
End Sub
i est initialise 0 lors du lancement de lapplication, puis garde sa valeur prcdente
dun appel lautre, cest dire quelle est incrmente dune unit chaque appel.
Pour imposer la dclaration explicite des variables, il suffit de placer, dans la section
des dclarations de chaque feuille ou module, la ligne suivante : Option Explicit.
3- Porte des variables :
Si une variable est utilise sans avoir t pralablement dclare, elle nest connue
qu lintrieur de la fonction ou de la procdure o elle est initialement utilise. Si vous faites
rfrence au mme nom de variable dans une autre procdure, il sagit en fait dune variable
diffrente.
Si la variable est dclare dans une fonction ou une procdure, avec Dim ou Static, elle
est dite locale cette fonction ou procdure, et nest pas connu lextrieur.
Si elle est dclare dans la section des dclarations dune feuille ou dun module avec
Dim elle est connue dans toutes les procdures de al feuille ou du module mais pas dans les
autres.
Si enfin elle est dclare dans la section des dclarations dun module avec
linstruction Global au lieu de Dim, elle peut tre utilise dans toutes les feuilles et tous les
modules. Il sagit dune variable globale.

www.developpez.c.la

Visual Basic

Global i as integer

Dim i as integer
Sub
Dim i as integer

Porte des variables


End Sub

Sub
Static i as integer
End Sub

4- Les constantes :
Une constante ressemble une variable dans a mesure o elle correspond galement
une case en mmoire. Elle sen distingue cependant par le fait que son contenu est dfini
initialement et ne peut pas tre modifi par le programme.
La dclaration dune constante se fait laide de linstruction Const dans une feuille
ou un module, et Global Const dans un module, pour que sa porte soit globale dans
lapplication.
Const Mai = 5
Global Const Pi = 3,14
5- Les tableaux :
On trouve souvent, dans un programme, un type de donnes qui doit se rpter avec
des valeurs diffrentes. Par exemple, une application de comptabilit peut tre amene
calculer des valeurs pour chacun des mois dune anne. On peut alors utiliser une seule
variable et faire appel un indice pur cliquer chacun des mois, il sagit dun tableau. Pour le
dclarer, on note :
Dim Montant (1 to 12) As Single
Dim Mois As Integer
Mois = 5
Montant (Mois) = 192.8
Lindice de la variable Montant peut varier entre 1 et 12 (les 12 mois de lanne). la
dernire ligne dsigne le montant du mois de mai. Si de plus on souhaite travailler sur cinq
annes, on peut dfinir un tableau deux dimensions :
Dim Montant (1985 to 1990, 1 to 12) As Single
Dim Mois As Integer, Anne As Integer
Anne = 1987
Mois = 5
Montant (Anne, Mois) = 192.8

www.developpez.c.la

Visual Basic

Remarques :
Il peut y avoir jusqu 60 dimensions.
Les tableaux peuvent tre dun type de donnes quelconque.
Visual Basic autorise galement la dclaration de tableaux dynamiques. Pour cela, il
faut initialement crer le tableaux sans spcifier de dimensions, par exemple :
Dim Anne ()
Avant dutiliser le tableau, il convient de fixer des dimensions laide de linstruction
ReDim, par exemple :
ReDim Anne (1985 to 1990)
On peut utiliser plusieurs fois cette instruction pour changer les dimensions dun
tableau. Mais, chaque fois, le contenu du tableau est rinitialis. Pour viter cela, il faut
utiliser le mt cl Preserve :
ReDim Preserve Annes (1985 to 1993)
Un tableau dynamique ou non, peut tre rinitialis laide de linstruction Erase qui
rinitialise les lments de tableaux statiques et libre la mmoire affecte aux tableaux
dynamique.
Les fonctions LBound et UBound retournent respectivement le plus petit ou le plus
grand indice dun tableau, dans une dimension donne. Par exemple :
Dim Montant (1985 to 1990, 1 to 12)
Lbound (Montant, 1)
Retourne 1985
Lbound (Montant, 2)
Retourne 1
Ubound (Montant, 1)
Retourne 1990
Ubound (Montant, 2)
Retourne 12
6- Les oprateurs :
Lorsquune expression renferme plusieurs oprations. Chaque partie est value et
rsolue dans un ordre prdtermin ; cet ordre est connu sous le nom de priorit des
oprateurs. Quant des expressions contiennent des oprateurs de diffrentes catgories, les
oprateurs arithmtiques sont valus au premier suivi des oprateurs de comparaison puis
des oprateurs logiques. Au sein de ces divers catgories, les oprateurs sont valus dans
lordre de priorit ci-dessous :
Oprateurs arithmtiques
Evaluation une puissance (^)
Ngation (-)
Multiplication et division (*, /)
Division dentier (\)
Arithmtique modulo (mod)
Concatnation de chanes (&)

Oprateurs de comparaison
=
<>
<
>
<=
>=

Oprateurs logiques
Not
And
Or
Xor

III- Les instructions de contrle :


Le code dun programme Visual Basic est constitu dinstructions qui peuvent tre des
dclarations ou bine des instructions plus actives.
1- Affection :
Une des actions les plus couramment effectues dans un programme est laffectation
de valeur, qui consiste donner une variable la valeur dune autre variable, dune constante
ou dune fonction. Laffectation scrit simplement laide du signe gal = : le membre
situ gauche du signe prend la valeur de celui situ droite ; (on peut galement ajouter le

www.developpez.c.la

Visual Basic

mot cl Let devant linstruction). Les deux membres doivent donc tre de mme type, cest-dire soit numrique, soit chane de caractres.
2- If Then Else :
Si une condition est vraie alors faire ceci sinon cela. Linstruction IF Then Else
prend deux formes principales. Sur une seule ligne, elle scrit :
If condition Then instructions [Else instructions]
Et sur plusieurs lignes :
If condition 1 Then
[bloc-instructions-1]
ElseIf condition 2 Then
[bloc-instructions-2]
ELse
[bloc-instructions-n]
End If
Exemple :
If a > b then Max = a else Max = b
If Not a < = b then Max = a else Max = b
If i = 1 then
Instructions si i vaut 1
ElseIf i = 2 then
Instructions si i vaut 2
ElseIf i = 3 then
Instructions si i vaut 3
End If
3- GoTo :
A ct de laffectation et du test, le dbranchement inconditionnel faisait partie de la
panoplie dinstructions des premiers programmeurs. Le GoTo existe toujours dans Visual
Basic, mais on peut la plupart du temps sen passer grce aux autres instructions de contrle
qui permettent dobtenir des programmes plus faciles lire.
Linstruction GoTo permet de transfrer lexcution du programme en un autre point,
identifi par une tiquette (on peut galement utiliser des numros de ligne). Une tiquette est
un nom (comme un nom de variable) suivi par : la syntaxe est :
GoTo {tiquette-de-ligne | numro-de-ligne}
Exemple :
GoTo Erreur
instructions
instructions
Erreur :
instructions

Etiquette

4- For Next :
Linstruction For Next permet dexcuter un bloc dinstructions plusieurs fois en
utilisant une variable numrique comme compteur. La syntaxe est la suivante :
For compteur = dbut To fin [Step pas]
[bloc-dinstructions]
[Exit For]

www.developpez.c.la

10

Visual Basic

[bloc-dinstructions]
Next [compteur]
Exemple :
Dim montant (1 to 12) as Single
Dim total as Single
Dim mois as Integer
Total = 0
For mois = 1 To 12
Total = Total + montant (mois)
Next
Le fonctionnement de cet exemple est le suivant :
1. Instruction For : donner Mois la valeur 1
2. Excuter les instructions entre For et Next
3. Instruction Next : si Mois est suprieur ou gal 12, passer linstruction
suivante (fin de boucle) sinon retourner au point 2.
La valeur ajoute chaque boucle est 1 par dfaut. On peut la modifier laide du mot
cl Step. Lexemple suivant donne le mme rsultat que le prcdent, amis le calcul est
effectu en commenant par le dernier mois. La valeur 1 est ajoute chaque itration, ce
qui quivaut dire que 1 est retir :
For mois = 12 To 1 Step 1
Total = Total + montant (mois)
Next
Plusieurs boucles peuvent tre imbriques.
Exemple :
Dim tableau (5, 10) as integer
Dim i = 0 as Integer
For i = 0 to 5
For j = 0 to 10
Tableau (i, j) = 1
Next j
Next i
On peut galement quitter la boucle avant la fin grce Exit For. La boucle suivante
se termine quand les 12 lments sont initialiss ou quand le total dpasse la valeur 10000 :
For Mois = 1 to 12
Total = Total + Montant (Mois)
If Total > 10000 Then Exit For
Next
5- Do Loop :
Linstruction Do Loop permet dexcuter un bloc dinstructions dans une boucle
mais tant quune condition est vraie, ou jusqu ce quune condition devient vraie. Il y a deux
faons dutiliser cette instruction :
Do [{While | Until} condition]
[Bloc-dinstructions]
[Exit Do]
[Bloc-dinstructions]

www.developpez.c.la

11

Visual Basic

Loop
Ou
Do
[Bloc-dinstructions]
[Exit Do]
[Bloc-dinstructions]
Loop {While | Until} Condition]
Exemple :
Total = 0
Mois = 0
Do While Total < 10000 and mois < = 12
Total = Total + montant (Mois)
Mois = Mois + 1
Loop
Le fonctionnement on est le suivant :
1. Si la condition est fausse, aller aprs Loop
2. Sinon excuter les instructions jusqu Loop
3. Retourner 1
On pourrait galement crire :
Total = 0
Mois = 0
Do Until Total > = 10000 or Mois > 12
Total = Total + Montant (Mois)
Mois = Mois + 1
Loop
La seconde forme est un peu diffrente dans le sens o au moins une boucle est
toujours effectue, puisque la condition nest teste quen fin de boucle. Par exemple :
Do
Total = Total + montant (mois)
Mois = Mois + 1
Loop While Total < 10000 and Mois < = 12
Le fonctionnement est le suivant :
1. Excuter les instructions
2. Si la condition est vraie retourner en 1, sinon terminer la boucle.
Comme pour linstruction For, il est possible dinterrompre la boucle en dehors du test
laide de Exit Do qui provoque un dbranchement immdiat linstruction qui suit GloopG.
While Wend :
Linstruction Whille Wend permet dexcuter un bloc dinstructions dans une
boucle tant quune condition est vraie. Elle peut toujours tre remplace par un bloc Do While
Loop. La syntaxe est :
While condition
[bloc-dinstructions]
Wend
Lexemple prcdent peut scrire :
While Total < 10000 and mois < = 12
Total = Total + Montant (Mois)
Mois = Mois + 1
Wend

www.developpez.c.la

12

Visual Basic

Select Case :
Linstruction Select Case permet de slectionner le bloc dinstructions excuter
selon la valeur dune variable de contrle. La syntaxe est :
Select Case expression-teste
[Case liste-dexpression 1]
[bloc-dinstructions-1]
[Case liste-dexpression 2]
[Bloc-dinstructions-2]
[Case Else]
[bloc-dinstructions-n]
End Select
Lexpression-teste peut tre une expression numrique ou une chane de caractres.
Les liste-dexpressions peuvent tre des suites de valeurs spares par des virgules, des
intervalles du type expression to expression, ou un oprateur relationnel introduit par Is. Par
exemple :
Select Case valeur
Case 0
instructions-1
Case 1, 5, 6
instructions-2
Case 2 to 4
instructions-3
Case Is > = 7
instructions-4
Case Else
instructions-5
End Select
Cela peut se lire de la faon suivante :
1. Si Valeur est 0, excuter les instructions-1 puis aller linstruction qui suit End
Select.
2. Si Valeur est 1, 5 ou 6, excuter les instructions-2 puis aller linstruction qui suit
End Select.
3. Si Valeur est 2 et 4, excuter les instructions-3 puis aller linstruction qui suit
End Select.
4. Si Valeur est suprieur ou gale 7, excuter les instructions-4 puis aller
linstruction qui suit End Select.
5. Dans les autres cas, excuter les instructions-5 puis aller linstructions qui suit
End Select.
Une instruction Select Cas peut souvent remplacer avantageusement une suite IF
Elself, tout en rendant la lecture du programme plus aise.

IV- Sous-programmes :
Lutilisation de ce qui peut tre appel de faon gnrale des sous-programmes permet
de rendre la programmation dune application plus structure. Un sous-programme est un bloc
dinstructions qui peuvent tre excutes partir dautres parties du programme. Lappel du
sous-programme (Call) provoque un dbranchement vers sa premire instruction (comme un
GoGo) mais ladresse de linstruction ayant provoqu lappel est mmorise. A la fin du sousprogramme, le dbranchement se fait vers cette adresse, cest le retour (return).

www.developpez.c.la

13

Visual Basic

Programme appelant


Call


Sous-programme




Visual Basic comprend deux types dappels de sous-programmes : les appels de


lintrieur dune procdure et les appels dune procdure ou dune fonction.
1- Appel interne GoSub Return :
Linstruction Gosub ressemble fortement un GoTo. Comme elle, elle provoque un
branchement ltiquette indique. Mais en plus, ladresse de retour (instruction suivant le
Gosub) est mmorise, et la rencontre dune instruction Return conduit au retour cette
instruction. La syntaxe est :
Gosub {tiquette-de-ligne | numro-de-ligne}
Exemple :
GoSub Calcul
Instructions-1
Exit Sub
Calcul :
Instructions-2
Return
Lorsque linstruction GoSub est rencontre, les instructions qui suivent ltiquette
Calcul (Instructions-2) sont excutes, jusqu la rencontre dun Return. Alors les
Instructions-1 sont excutes. On remarquera la prsence dun Exit Sub qui vite dexcuter
une seconde fois les instructions do il est appel. Il peut y avoir plusieurs instructions
Return dans un sous-programme.
2- Appel externe Procdures et fonctions :
Linstruction GoSub est peu utilise dans Visual Basic. Les sous-programmes sont
gnralement des procdures (Sub) ou des fonctions (Function) qui offrent plus de
souplesse : lappel peut se faire nimporte o dans un fichier module partir dun autre fichier
de lapplication et il est possible de transmettre des paramtres.
Une procdure et une fonction se ressemblent beaucoup. Elles suivent toutes les deux
le schma prsent prcdemment. Leur seule diffrence se trouve dans le fait que la fonction
retourne une valeur, contrairement la procdure.
Pour mettre en uvre une procdure ou une fonction, il y a deux phases : La
dclaration et lappel. la dclaration se fait selon les syntaxe suivantes :
[Public | Static] [Private] Sub nom-global [(liste-darguments)]
[bloc-dinstructions]
[Exit Sub]
[bloc-dinstructions]
End Sub
Pour une procdcure, et :
[Public | Static] [Private] Function nom-global [(liste-darguments)] [As type]
[bloc-dinstructions]

www.developpez.c.la

14

Visual Basic

[Exit Sub]
[bloc-dinstructions]
[nom-global = expression]
End Function
Pour une fonction.
Dans les deux cas les mots cls Public, Static et Private Signifient :
Elment
Public

Description
Facultatif. Indique que la procdure Function est accessible toutes les
autres procdures de tous les modules. Si cet lment est utilis dans un
module contenant un lment Option Private, la procdure nest pas
disponible en dehors du projet.

Static

Facultatif. Indique que les variables locales de la procdure Function


sont conserves entre les appels. Lattribut Static na pas deffet sur les
variables dclares en dehors de la procdure Function, mme si elles
sont utilises dans cette dernire.

Private

Facultatif. Indique que les procdure Function nest accessible qu


dautres procdures du module dans lequel elle a t dclare.
Dans les deux cas, la liste-darguments la forme suivante :
[Optional] [ByVal | ByRef] [ParamaArray] varname [()] [As type] [= defaultvalue]

Elment
Optional

Description
Facultatif. Indique quun argument nest pas obligatoire. Sil est utilis,
les arguments suivants doivent galement tre facultatifs et tre dclars
aucun argument si le mot cl ParamArray est utilis.

ByVal

Facultatif. Indique que largument est pass par valeur. Moyen


permettant de passer une procdure la valeur dun argument plutt que
son adresse. La procdure peut de ce fait accder une copie de la
variable. La valeur relle de cette dernire nest donc pas modifie par la
procdure laquelle elle est passe.

ByRef

Facultatif. Indique que largument est pass par rfrence. ByRef est
loption par dfaut dans Visual Basic.

ParamArray

Facultatif. Utilis uniquement comme dernier argument pour indiquer


que le dernier argument est un tableau Optional dlments de type
Variant. Le mot cl ParamArray, qui permet dindiquer un nombre
quelconque darguments, ne peut pas tre utilis avec les mots cls
ByVal, ByRef ou Optional.

Varname

Nom de la variable reprsentant largument. respecte les conventions


standard daffectation de noms aux variables.

Type

Facultatif. Type de donnes de largument pass la procdure

Defaultvalue

Facultatif. Toute constante ou expression constante. Valide uniquement


pour les paramtres Optional.

www.developpez.c.la

15

Visual Basic

Exemple :
Sub AfficheRsultat (Mois as Integer, Titre As string)
Instructions
End Sub
La procdure sappelle AfficheRsultat. Lors de son appel il faut fournir deux
paramtres, le premier tant un entier et le second une chane de caractres. Les instructions
sont excutes jusqu la rencontre du End Sub qui marque la fin physique de la procdure, ou
dune instruction Exit Sub qui provoque un retour. Lappel de cette procdure peut se faire de
la faon suivante :
AfficheRsultat 5, Rsultats de Mai
Ou encore :
AfficheRsultat (5, Rsultats de Mai )
Les deux syntaxes quivalentes, mais lutilisation de Call implique lemploi des
paramtres. Une procdure peut ne pas avoir de paramtres :
Sub Enregistre ()
Instructions
End Sub
Lappel se fait alors de la faon suivante :
Enregistre
Ou :
Call Enregistre
Une fonction se caractrise par le fait quelle a une valeur de retour dont le type doit
tre calcul. Par exemple :
Function Racine (n1 As Double, n2 As Double) As Double
Instructions
Racine =
End Function
Avant de quitter al fonction, ou dappeler linstruction Exit Function, il faut donc
donner une valeur de retour. Lutilisation de la fonction se fait de la faon suivante.
N = Racine (3, 4)
Les parenthses sont ici obligatoires, mme si aucun paramtre nest dfini pour la
fonction.
Une procdure ou fonction dfinie dans un fichier feuille peut tre appele partir
dune autre procdure ou fonction du mme fichier, mais pas partir des autres fichiers.
Tandis que les procdures ou fonctions dfinies dans un module (fichier .BAS) peuvent tre
appeles de nimporte o, sauf si le mot Private est utilis lors de la dclaration, ce qui
restreint la porte de la procdure au module o elle est dfinie.
Exemples :
Cette fonction dfinie par lutilisateur renvoie la racine carre de largument qui lui
est transmis.
Function CalculSquareRoot (NumberArg As Double) As Double
If NumberArg < 0 Then Evalue largument
Exit Function Quitte pour revenir la procdure appelante.
Else
CalculateSquareRoot = Sqr (NumberArg) Renvoie la racine carr
EndIf
End Function
Le mot cl ParamArray permet une fonction daccepter un nombre variable
darguments. dans la dfinition suivante, FirstArg est transmis par valeur.
Function CalcSum (By FirstArg as Integer, ParamArray OtherArgs ())

www.developpez.c.la

16

Visual Basic

Dim ReturnValue
Si la fonction est appele sous la forme :
ReturnValue = CalcSum (4, 3, 2, 1)
Les variables locales ont les valeurs suivantes : FirstArg = 4, OtherArgs (1) = 3,
OtherArgs (2) = 2, etc., en supposant que la limite infrieure par dfaut des tableaux = 1.
Les arguments Optional peuvent tre dots de types et de valeurs par dfauts autres
que Variant.
Si les arguments dune fonction sont dfinis sous la forme :
Function MyFunc(MyStr As String, Optional MyArg1 As Integer = 5, Optional
MyArg2 = Dolly )
Dim RetVal
La fonction peut tre appele de plusieurs faons :
RetVal = MyFunc( Bonjour , 2, tous ) Les 3 arguments sont fournis.
RetVal = MyFunc( Test , , 5)
Les deuximes argument est omis.
Arguments un et deux indiqus en utilisant des argument est omis.
RetVal = MyFunc(MyStr := Bonjour , MyArg1 :=7)

V- Traitement des chanes de caractres :


Les comparaisons de chanes de caractres peuvent se faire en diffrenciant ou non les
majuscules de minuscules. Pour cela, il faut utiliser linstruction option Compare dans la
section des dclarations dune feuille ou dun module. Pour que les majuscules et les
minuscules soient diffrencies, on peut utiliser :
Option Compare Binary
Pour ne pas faire de distinction
Option compare Text
De plus, certaines instructions utilisent un paramtre pour changer localement loption
retenue.
Les fonctions suivantes agissent sur des chanes de caractres.
Fonction
& oprateur

Space$
Space

Signification
Retourne une chane qui est la concatnation
de deux autres. On peut galement utiliser
loprateur + pour la concatnation, mais il
peut tre ambigu dans le cas de variants.
Construit une chane de caractres qui
comprend un nombre donn despaces.

String$
String

Construit une chane de caractres qui


comprend un nombre donn dun caractre
spcifique.

Len

Retourne la longueur dune chane de


caractres, ou le nombre doctets ncessaires
pour le stockage dune variable.

Instr

Retourne la position dune sous-chane de


caractres dans une chane de caractres, en
tenant compte ou non des majuscules /
minuscules
Retourne uen chane de caractres constitue

Left$, Left

www.developpez.c.la

Exemple
bonjour & messieurs
retourne bonjour messieurs

Space$ (20)
Retourne une chane de 20
espaces
String$ (20, "*")
String$ (20, 42)
Retourne une chane de 20
caractres "*"
Len ("coucou !")
Retourne 8
Dim d as double : print Len(d)
Retourne 8
Instr ("mon papa est l", "pa")
Retourne 5 (1er "pa"), et :
Instr (6, "mon papa est l", "pa")
Retourne 7 (2e "pa")
Left$ ("Jean Pierre Durand", 4)
17

Visual Basic

Right", Right

Mid$, Mid

des n caractres situs gauche dans une


autre chane de caractres.
Retourne une chane de caractres constitue
des n caractres situes droite dans une
autre chane de caractres.
Retourne une chane de caractres constitue
des n caractres situs partir dune position
donne dans une autre chane de caractres.

Retourne "Jean"
Right$ ("Jean Pierre Durand", 6)
Retourne "Durand"

Mid$ ("Jean Pierre Durand", 6)


Retourne "Pierre", et :
Mid$ ("Jean Pierre Durand", 6)
Retourne "Pierre Durand"
Mid$, Mid
Remplace dans une chane de caractres n Nom$ = "Jean Pierre Durand"
caractres dune autre chane de caractres. Mid$ (Nom$, 6) = "Michel"
Place dans Nom$ "Jean Michel
Durand" et :
Mid$ (Nom$, 6, 1) = "Michel"
Place dans Nom$ "Jean Pierre
Durand"
LTrim$,
Retourne une chane de caractres do sont Ltrim$ ("Bonjour")
LTrim
supprims tous les espaces situs gauche Retourne "Bonjour"
dune chane de caractres donne.
RTrim$,
Retourne une chane de caractres do sont RTrim$ ("Bonjour")
RTrim
supprims tous les espaces situs droite Retourne "Bonjour"
dune chane de caractres donne.
Trim$, Trim
Retourne une chane de caractres do sont Trim$ ("Bonjour")
supprims tous les espaces situs gauche et Retourne "Bonjour"
droite dune chane de caractre donne
Lcase$, Lcase Convertit en Minuscules tous les caractres Lcase$ ("Bonjour")
alphabtiques dune chane de caractres.
Retourne "Bonjour"
Ucase$, Ucase Convertit en majuscules tous les caractres Ucase$ ("Bonjour")
alphabtiques d'ne chane de caractres.
Retourne "Bonjour"
Lset
Place dans une chane de longueur fixe une Dim nom as string * 10
chane de caractres en la cadrant gauche et Lset nom = "Coucou"
en la remplissant droite avec des espaces.
Print ">>" ; Nom ; "<<"
Affiche ">> Coucou <<" (les
"." reprsentent des espaces)
Rset
Place dans une chane de longueur fixe une Dim Nom as String * 10
chane de caractres en la cadrant droite et Rset Nom = "Coucou"
en la remplissant gauche avec des espaces, Print ">>" ; Nom ; "<<"
Affiche ">> Coucou <<" (les
"." reprsentent des espaces).
Strcomp
Compare deux chanes de caractres
Stromp ("Andr", "Bernard")
Retourne 1
1- Bote de saisie :
La bote de saisie affiche un texte et retourne une chane de caractres saisie. Deux
boutons Ok et Annuler permettent lutilisateur de valider sa saisie ou de lannuler.
Saisie = Inputbox ("nom ? ", "saisir un nom", "ahmed")
Le premier paramtre est le texte affich, le deuxime le titre de la bote le troisime la
valeur par dfaut dans le champ de saisie. Si lutilisateur slectionne le bouton Ok, la chane
retourne est le contenu du champ de saisie de la bote, sinon elle est vide.

www.developpez.c.la

18

Visual Basic

2- MSGBOX :
Affiche un message dans une bote de dialogue, attend que lutilisateur clique sur un
bouton, puis renvoie une valeur de type Integer qui indique le bouton choisi par lutilisateur.
MsgBox (prompt[, buttons] [, title] [, helpfile, context])
La syntaxe de la fonction MsgBox comprend les arguments nomms suivants :
Elment
Prompt

Description
Expression de chane affiche comme message dans la bote de dialogue.
La longueur maximale de largument prompt est denviron 1 024 caractres
selon la largeur des caractres utiliss.

Buttons

Facultatif. Expression numrique qui reprsente la somme des valeurs


indiquant le nombre et le type de boutons afficher, le style dicne
utiliser, lidentit du bouton par dfaut, ainsi que la modalit du message.
Si largument buttons est omis, sa valeur par dfaut est 0.

Title

Facultatif. Expression de chane affiche dans la barre de titre de la bote de


dialogue. Si largument title est omis, le nom de lapplication est plac dans
la barre de titre.

Helpfile

Facultatif. Expression de chane indiquant le fichier daide utiliser pour


fournir une aide contextuelle sur la bote de dialogue. Si largument helpfile
est dfini, largument context doit ltre galement.

Context

Facultatif. Expression indiquant le numro de contexte attribu par lauteur


de laide la rubrique approprie. Si largument context est dfini,
largument helpfile doit ltre galement.

Valeur :
Largument buttons prend les valeurs suivantes :
Constante
VbOKOnly
VbOKCancel
VbAbortRetryIgnore
VbYesNoCancel
VbYesNo
VbRetryCancel
VbCritical
VbQuestion
VbExclamation
VbInformation
VbDefaultButton1
VbDefaultButton2
VbDefultButton3
VbDefaultButton4
VbApplicationModal

Valeur
0
1
2
3
4
5
16
32
48
64
0
256
512
768
0

Description
Affiche le bouton OK uniquement
Affiche les boutons OK et Annuler
Affiche le bouton Abandonner, Ressayer et Ignorer
Affiche les boutons Oui, Non et Annuler
Affiche les boutons Oui et Non
Affiche les boutons Ressayer et Annuler
Affiche licne Message critique
Affiche licne Requte davertissement
Affiche licne Message davertissement
Affiche licne Message dinformation
Le premier bouton est le bouton par dfaut
Le deuxime bouton est le bouton par dfaut
Le troisime bouton est le bouton par dfaut
Le quatrime bouton est le bouton par dfaut
Bote de dialogue modale. Lutilisateur doit rpondre
au message affich dans la zone de message avant de
pouvoir continuer de travailler dans lapplication en
cours.

www.developpez.c.la

19

Visual Basic

VbSystemModal

1096

Modal systme. Toutes les applications sont


interrompues jusqu ce que lutilisateur rponde au
message affich dans la zone de message

Valeurs renvoyes :
Constante
VbOK
VbCancel
VbAbort
VbRetry
VbIgnore
VbYes
VbNo

Valeur
1
2
3
4
5
6
7

Bouton
OK
Annuler
Abondonner
Ressayer
Ignorer
Oui
Non

Exemple :
Dim Msg, Style, Title, Help, Ctxt, Response, MyString
Msg = Souhaitez-vous continuer ? Dfinit le message
Style = vbYesNo + vbCritical + vbDefautButton2
Dfinit les boutons
Title = Dmonstration de MsgBox
Dfinit le titre
Help = DEMO.HLP
Dfinit le fichier daide
Ctxt = 1000 Dfinit le contexte de la rubrique
Response = MsgBox (Msg, Style, Title, Help, Ctxt)
Affiche le message
If Response = vbYes Then Lutilisateur a choisit Yes
MyString = Yes Effectue une Action
Else
Lutilisateur a choisi No.
MyString = No Effectue uen action
End If

VI- Cration dune interface utilisateur :


Linterface est peut-tre la partie la plus importante dune application mais elle est
aussi celle que lon remarque le plus. Pour les utilisateurs, elle reprsente lapplication et
certains ne doivent mme pas savoir quun programme est excut en arrire-plan.
On distingue deux principaux styles dinterfaces : linterface simple document (SDI)
et linterface multidocument (MDI). Lapplication WordPad fournie avec Microsoft Windows
est un exemple dinterface SDI. En effet, cette application ne vous permet douvrir quun seul
document la fois ; vous devez fermer un pour en ouvrir un autre. Par contre Microsoft Excel
et Microsoft Word sont des interfaces MDI qui permettent dafficher simultanment plusieurs
documents, chaque document saffichant dans sa propre fentre.
Linterface multidocument (MDI) vous permet de crer une application qui gre
plusieurs feuilles lintrieur dune seule feuille conteneur. Une application MDI permet
lutilisateur daffiche simultanment plusieurs documents, chaque document possdant sa
propre fentre. Les documents ou fentre filles saffichent dans une fentre mre, qui fournit
lespace de travail ncessaire toutes les fentres filles de lapplication.
Une application MDI permet lutilisateur dafficher simultanment plusieurs
documents, chaque document possdant sa propre fentre. Les documents ou fentres filles
saffichent dans une fentre mre, qui fournit lespace de travail ncessaire toutes les
fentres filles de lapplication. Les fentres filles sont incluses dans les limites de la zone de la
fentre mre, lorsque vous rduisez celle-ci toutes les fentres de documents sont aussi
rduites ; seule licne de la fentre mre apparat dans la barre des tches.

www.developpez.c.la

20

Visual Basic

Une feuille fille est une feuille ordinaire dont la proprit MDIChild a la valeur True.
Votre application peut inclure plusieurs feuilles filles MDI de types similaires ou diffrents.
Une feuille MDI standard est semblable une feuille ordinaire, mais vous ne pouvez
pas y placer directement un contrle, sauf si ce dernier est dot de la proprit Align (tel
quun contrle PictureBox) ou sil na pas dinterface visible (tel quun contrle Timer).
1- Caractristiques des feuilles MDI en mode excution :
Lorsque vous rduisez une feuille fille, son icne saffiche dans la feuille MDI et non
dans la barre des tches.
Lorsque vous agrandissez une feuille fille, le libell est associ celui de feuille MDI,
et il saffiche dans la barre de titre de cette dernire.
Si vous dfinissez la proprit AutoShowChildren, vous pouvez afficher
automatiquement les feuilles lors de leur chargement (True), ou les charger sans les afficher
(false).
Les menus actifs dune feuille fille saffichent, le cas chant, dans la barre de menus
de la feuille MDI, et non dans la feuille fille.
2- Crateurs de menus :
Le crateur de menu permet de crer des menus et des barres de menu, dajouter de
nouvelles commandes aux menus existants, de remplacer les commandes de menu existantes
par vos propres commandes, dajouter et de supprimer des menus et des barres de menu
existants.
Pour afficher le Crateur de menus, cest partir du menu Outils, loption Crateur de
menus.

Les deux proprits de contrles de menu les plus importantes sont les suivantes :
Name : non utilis pour dsigner un contrle de menu dans un code.
Caption : Texte qui saffiche dans le contrle.
1. Dans la zone de texte Caption, entrez le premier titre de menu que vous voulez afficher
dans la barre de menus. Insrez une perlute (&) avant la lettre que vous voulez dfinir
comme touche daccs rapide pour cette lment de menu. La lettre est automatiquement
souligne dans le titre du menu.
2. Dans la zone de texte Name, entrez le nom que vous voulez utiliser pour dsigner le
contrle de menu dans le code.
3. Cliquez sur les flches gauches ou droite pour modifier le niveau de retrait du contrle ;
dans le crateur de menu chaque niveau de retrait est prcd de quatre points (.).
4. Slectionnez suivant pour crer un autre contrle de menu ou cliquez sur insrer pour
ajouter un contrle de menu entre les contrles existants.

www.developpez.c.la

21

Visual Basic

5. Pour affecter une touche de raccourci un lment de menu, slectionnez une touche de
fonction ou une combinaison de touches dans la zone de liste modifiable Shortcut.
6. Loption Index permet de crer un groupe de contrles de menu : cest un ensemble
dlments dun mme menu qui partagent le mme nom et les mmes procdures
dvnements.
7. La proprit Checked permet dinsrer une coche  dans un menu pour indiquer
lutilisateur ltat dune condition active/dsactive.
8. La proprit Enabled permet de dsactiver un menu et vous pouvez lactiver au niveau de
votre code. Exemple la commande coller du menu dition est dsactiv.
9. La proprit Visible permet dafficher ou de masquer un contrle de menu. Le fait
dactiver la coche permet dafficher le contrle de menu par contre si on la dsactive le
contrle sera masquer.
10. La proprit WindowsList est utilise au niveau dun contrle de menu dune feuille MDI
ou dune feuille fille MDI pour afficher la liste des feuilles filles ouverte.
3- Organisation des feuilles filles :
Certaines applications affichent dans un menu des actions telles que Mosaque,
Cascade et Rorganiser les icnes, avec la liste des feuilles filles ouvertes. La mthodes
Arrange permet de rorganiser les feuilles filles dans une feuille MDI. Vous pouvez afficher
des feuilles filles en cascade, superposes horizontalement ou sous la forme dicnes de
feuilles filles disposes le long de la partie infrieure de al feuille MDI.
Private sub mnucascade_click ()
FrmMDI.Arrange Vbcascade
Dispose les feuilles filles en cascade
End Sub
Private sub mnuTileH_click ()
FrmMDI.Arrange VbTileHorizontal Dispose les feuilles filles en mosaque (horizontale)
End Sub
Private sub mnuTileV_click ()
FrmMDI.Arrange VbTileVertical
Dispose les feuilles filles en mosaque (Verticale)
End Sub
Private sub mnuArrange_click ()
FrmMDI.Arrange VbArrangeIcons Organisez toutes les icnes des feuilles filles
End Sub
4- Les menus contextuels :
Un menu contextuels est un menu flottant qui saffiche sur une feuille,
indpendamment de la barre de menus. Comme les lments de ce menu dpendent de
lendroit o le pointeur a t plac lors du clic du bouton droit de al souris, ce type de menu
est appel menu contextuel.
Le code suivant affiche le menu mnufile lorsque lutilisateur clique sur une feuille
avec le bouton droit de la souris. Vous pouvez utiliser lvnement MouseUp ou MouseDown
pour dtecter le moment o lutilisateur clique sur le bouton droit de al souris, bien que
MouseUp soit lvnement standard :
Private Sub Form_MouseUp (Button as Integer, Shift as Integer, X as Single, Y as Single)
If Button = 2 tne Vrifie si le bouton droit de la souris a t actionn.
PopupMenu mnufile Affiche le menu fichier en tant que menu contextuel
End If
End Sub

www.developpez.c.la

22

Visual Basic

Les contrles de Visual Basic :


Catgories de contrles :
Les trois catgories principales de contrles de Visual Basic sont les suivantes :
Contrles intrinsques : il sagit, par exemple, des contrles CommandButton et
Frame. Ces contrles intrinsques figurent en permanence dans la bote outils, la
diffrence des contrles ActiveX et des objets insrables qui peuvent tre retirs ou
ajouts la bote outils.
Contrles ActiveX : ils existent sous forme de fichiers spars dots de lextension
.oxc. Ces fichiers renferment lensemble des contrles disponibles dans toutes les
ditions de Visual Basic (contrles DBGrid, DBCombo, DBList, etc.) et ceux
utiliss seulement dans les ditions Professionnelle et Entreprise (tels que les
contrles listView, Toolbar, Animation et SSTab).
Objets insrables : il peut sagir dune feuille de calcul Microsoft Excel contenant
la liste des employs de votre socit ou dun objet Calendrier Microsoft Project
contenant des informations de planification relatives un projet. Etant donn que
ces objets peuvent tre ajouts dans la bote outils, ils sont considrs comme des
contrles.
Les groupes de contrles :
Un groupe de contrles est un ensemble de contrles de mme type et portant le mme
nom. Les contrles dun groupe partagent galement les mmes procdures dvnement. un
groupe de contrles comprend au moins un lment et peut comporter autant dlments que
le permettent les ressources et la mmoire de votre systme.
Lajout de groupes de contrles consomme moins de ressources que lajout de
plusieurs contrles individuels de mme type une feuille au moment de la cration. Vous
pouvez aussi utiliser des groupes de contrles si vous souhaitez que plusieurs contrles
utilisent un code commun.
Pour crer un groupe de contrles, dessinez un contrle, cliquez sur copier puis sur
coller. Visual Basic affiche une bote de dialogue vous demandant de confirmer la cration du
groupe de contrles, choisissez oui pour confirmer lopration.
Le nouveau contrle prend la valeur dindex 1. Le premier contrle que vous avez
dessin possde la valeur 0.
CheckBox :
Un contrle CheckBox affiche une coche  lorsque la case cocher correspondante
est active ; la  disparat lorsque la case cocher est dsactive. Les cases cocher offrent
lutilisateur le choix entre Vrai/Faux ou Oui/Non. Vous pouvez utiliser des groupes de cases
cocher pour afficher plusieurs possibilits dont lutilisateur peut slectionner une ou plusieurs.
Vous pouvez galement dfinir la valeur dune case cocher par programme, laide de la
proprit Value.
Les contrles CheckBox est OptionButton fonctionnent de la manire similaire, une
diffrence importante prs : vous pouvez activer autant de cases cocher (CheckBox) que
vous le souhaitez sur une mme feuille, tandis quil nest possible dactiver quune seule case
doption (OptionButton) la fois dans un groupe.
Pour afficher un texte en regard dune case cocher, dfinissez sa proprit Caption.
Check1.caption = Windows 95
La proprit Value indique ltat de la case : active, dsactive ou grise.

www.developpez.c.la

23

Visual Basic

Etat
Dsactiv
Activ
Gris

Valeur
0
1
2

Constante
VbUnchecked
VbChecked
VbGrayed

ComboBox :
Un contrle ComboBox runit les fonctionnalits dune zone de texte et celles dune
zone de liste. Ce type de contrle permet lutilisateur de procder une slection soit en
tapant du texte (TextBox) dans la partie modifiable, soit en slectionnant lun des lments
dans la partie (ListBox).
Styles des listes :
Il existe trois styles de listes modifiables :
Style
Liste modifiable droulante
Liste Modifiable simple
Zone de liste droulante

Valeur
0
1
2

Constante
VbComboDropDown
VbComboSimple
VbComboDropDownList

Liste modifiable droulante :


Cette liste donne la possibilit lutilisateur de taper directement du texte ou de
cliquer sur la zone afin douvrir une liste de choix.
Liste modifiable simple :
La liste modifiable simple affiche en permanence la liste de tous les choix possibles.
Une barre de dfilement vertical est automatiquement insre lorsque le nombre dlments
est suprieur au nombre dlments pouvant tre affichs dans la liste.
Zone de liste droulante :
Une zone de liste droulante ressemble une zone de liste normale, elle affiche une
liste doptions parmi lesquelles lutilisateur doit choisir. Toutefois contrairement la liste
modifiable droulante, on ne peut pas taper du texte dans la zone.
Ajout dlment dans une liste :
Pour ajouter des lments dans un contrle ComboBox, on utilise la mthode
AddItem.
Combo1.AddItem Technicien en informatique
Combo1.AddItem Technicien en Bureautique
Pour ajouter un lment un endroit prcis, spcifiez une valeur dindex la suite de
llment ajouter. Par exemple, la ligne suivante insre Tib en premire position et
repositionne les lments qui suivent :
Combo1.AddItem Tib , 0
Vous pouvez galement ajouter des lments la liste en utilisant la proprit List au
moment de la cration.
Tri dune liste :
Afin de trier les lments dune liste par ordre alphabtique, en affecte la valeur True
la proprit Sorted.
Combo.Sorted = True

www.developpez.c.la

24

Visual Basic

Suppression des lments dune liste :


Linstruction RemoveItem permet de supprimer des lments dans une liste
modifiable. Cette mthode dispose dun argument, index, qui sert spcifier llment
supprimer :
Combo1.RemoveItem 2
Pour supprimer tous les lments dune liste modifiable, utilisez la mthode Clear.
Combo1.Clear
ListIndex :
La proprit ListIndex dfinit ou renvoie lindex de llment slectionn dans le
contrle et nest disponible quau moment de lexcution. la valeur de cette proprit est 0 si
le premier lment de al liste est slectionn, 1 si le deuxime lments est slectionn, et
ainsi de suite. La valeur de la proprit ListIndex est 1 si aucun lment nest slectionn.
ListCount :
Pour connatre le nombre dlments contenus dans une liste modifiable, on utilise la
proprit ListCount.
Text1.Text = Combo1.ListCount
CommandButton :
Le contrle CommandButton permet lutilisateur de commencer ou dinterrompre
une opration, ou encore dy mettre fin. Lorsque le bouton de commande (CommandButton)
correspondant est slectionn, il semble senfoncer lcran, ce qui explique pourquoi on
appelle parfois les boutons de commande boutons-poussoirs .
Lorsque lutilisateur clique sur un bouton, il appelle une commande, crite dans la
procdure dvnement Click associe au bouton.
Pour afficher un texte sur un bouton de commande, dfinissez sa proprit Caption
Commande1.Caption = Ajouter
La proprit Caption permet de crer des touches de raccourci correspondant vos
boutons de commande. Pour ce faire, vous ajoutez un signe & devant la lettre qui sera utilise
comme touche daccs rapide. Par exemple, pour crer une touche de raccourci pour le bouton
ajouter, vous ajoutez un signe & devant la lettre A .
Command1.Caption = &Ajouter
A lexcution, la lettre A sera souligne et lutilisateur pourra slectionner le
bouton de commande en appuyant simultanment sur les touche ALT + A
Lutilisateur peut toujours cliquer sur un bouton de commande pour choisir . pour
permettre lutilisateur de le slectionner en appuyant directement sur la touche ENTREE,
affectez la valeur True la proprit Default du contrle CommandButton correspondant.
Pour permettre lutilisateur de le slectionner en appuyant sur la touche ECHAP,
affectez la valeur True sa proprit Cancel.
Contrle Data :
Le contrle Donnes (Data) est utilis pour crer des applications simples de base de
donnes sans crire aucun code. De plus, il permet de crer des applications plus compltes
qui vous octroient un plus haut niveau de contrle sur vos donnes.
Les contrles Zone de liste dpendante (DBList), Liste modifiable dpendante
(DBGrid) et Microsoft FlexGrid (MSFlexGrid) sont tous capables de grer des jeux
denregistrements lorsquils sont lis un contrle Data. Grce ces contrles, il est possible
dafficher et de manipuler simultanment plusieurs enregistrements.

www.developpez.c.la

25

Visual Basic

DriveListBox :
La liste de lecteurs (DriveListBox) est une zone de liste droulante permettant
lutilisateur de slectionner un lecteur valide au moment de lexcution. ce contrle affiche la
liste de tous les lecteurs valides du systme de lutilisateur. Si lutilisateur slectionne un
nouveau lecteur dans la liste celui-ci apparat en haut de la zone de liste.
Vous pouvez utiliser du code pour examiner la proprit Drive de la liste de lecteurs et
dterminer quel est le lecteur slectionn. Vous pouvez galement spcifier le lecteur qui doit
apparatre en haut de la zone de liste laide de linstruction suivante :
Drive1.Drive = C:\
La liste de lecteurs afficher les lecteurs valides disponibles. Le fait de choisir un
lecteur dans cette zone de liste ne permet pas automatiquement de changer de lecteur au
niveau du systme dexploitation en la spcifiant comme argument dans linstruction
ChDrive :
ChDrive Drive1.Drive
DirListBox :
La liste de rpertoires (DirListBox) affiche larborescence du lecteur en cours sur le
systme de lutilisateur, en commenant par le dossier de plus haut niveau. Lorsque
larborescence saffiche, le nom du dossier en cours apparat en surbrillance et en retrait par
rapport aux dossiers de niveau suprieur dans la hirarchie, jusqu la racine.
La proprit Path de la liste de rpertoires permet de dfinir ou de renvoyer le dossier
en cours dans la zone de liste (ListIndex = -1).
Vous pouvez galement affecter la proprit Drive de la liste de lecteurs la proprit
Path de la liste de rpertoires :
Dir1.Path = Drive1.Drive
Une fois cette affectation excute, la liste de rpertoires affiche tous les dossiers et
sous-dossiers disponibles sur ce lecteur. Par dfaut, la liste de rpertoires affiche galement
tous les dossiers situs au-dessus du dossier en cours du lecteur affect la proprit
Dir1.Path, ainsi que tous les sous-dossiers situs immdiatement au-dessous.
Pour dfinir le dossier de travail en cours, utilisez linstruction ChDir. Par exemple,
linstruction suivante dfinit comme dossier en cours celui qui est affich dans la liste de
rpertoires :
ChDir Dir1.Path
FileListBox :
Un contrle FileListBox (Liste de fichiers) permet de rpertorier les fichiers contenus
dans le dossier spcifi par la proprit Path au moment de lexcution. A laide de
linstruction suivante, vous pouvez afficher tous les fichiers se trouvant dans le dossier et le
lecteur en cours :
File.Path = Dir1.Path
Visual Basic accepte le caractre gnrique ?. Par exemple, la spcification, ? ? ?.txt
permet dafficher les fichiers dont le nom de base se compose de trois caractres et qui
possdent lextension.txt.
Frame :
Un contrle Frame permet de regrouper des contrles de manire aisment
identifiable. On peut aussi utiliser ce contrle pour subdiviser fonctionnellement une feuille,
en vue de sparer, par exemple, des groupes de contrles OptionButton.
Pour regrouper des contrles, dessinez dabord le contrle Frame, puis dessinez les
contrles lintrieur. Cela vous permet de dplacer simultanment le cadre et les contrles

www.developpez.c.la

26

Visual Basic

quil contient. Si vous dessinez un contrle hors dun cadre, puis tentez de lamener
lintrieur de ce cadre, le contrle sera superpos et non intgr au cadre. Cous devrez alors
dplacer sparment le cadre et les contrles.
Pour donner un titre au contrle Frame vous pouvez changer au niveau de la proprit
Caption.
HScrollBar VScrollBar :
Les barres de dfilement sont des contrles permettant de parcourir rapidement une
longue liste dlment ou un grand nombre dinformations. Elles peuvent galement indiquer
la position courante sur une chelle. Vous pouvez utiliser une barre de dfilement comme
dispositif dentre de donnes ou comme indicateur de vitesse ou de quantit pour rgler, par
exemple, le volume sonore dun jeu sur ordinateur ou pour visualiser le temps coul lors
dun processus minut.
Les barres de dfilement utilisent les vnements Scroll et Change pour surveiller le
mouvement du curseur le long de la barre de dfilement.
Evnement
Change

Description
Se produit aprs tout mouvement du curseur de dfilement.

Scroll

Se produit lors du dplacement du curseur. Ne se produit pas si


lutilisateur clique sur les flches de dfilement ou sur la barre de
dfilement.

Lvnement Scroll permet daccder la valeur de la barre de dfilement mesure


que lutilisateur dplace le curseur. Lvnement Change se produit une fois quil relche le
curseur ou clique sur la barre ou les flches de dfilement.
La proprit Value (dont la valeur par dfaut est 0) est une valeur spcifie sous forme
dentier correspondant la position du curseur dans la barre de dfilement. Lorsque la
position du curseur de dfilement est dfinie la valeur minimale, le curseur se place la
position la plus gauche (pour les barres de dfilement horizontal) ou la plus haute (pour les
barres de dfilement vertical). Lorsque la position du curseur de dfilement est dfinie sa
valeur maximale, le curseur se place lextrme droite ou tout en bas de la barre. De mme, la
valeur correspondant au milieu de la plage place le curseur au milieu de la barre de
dfilement.
Lutilisateur peut non seulement cliquer avec la souris pour modifier la valeur de la
barre de dfilement, mais peut galement faire glisser le curseur de dfilement jusqu
nimporte quel point de la barre. La valeur rsultante dpend de la position du curseur, mais
elle se trouve systmatiquement dans la plage comprise entre les valeurs des proprits Min et
Max dfinies par lutilisateur.
Le proprit LargeChange spcifie la valeur de la modification qui survient lorsque
lutilisateur clique dans la barre de dfilement tandis que la proprit SmallChange spcifie
la valeur de la modification qui survient lorsque lutilisateur clique sur les flches situes aux
extrmits de la barre de dfilement. La proprit Value de la barre de dfilement augmente
ou diminue selon les valeurs affectes aux proprits LargeChange et SmallChange. Vous
pouvez positionner le curseur de dfilement au moment de lexcution en affectant la
proprit Value une valeur comprise entre 0 et 32767 inclus.
Image :

www.developpez.c.la

27

Visual Basic

Ce contrle permet dafficher une image. Ce contrle affiche des graphiques dans les
formats suivants : image bitmap, icne, mtafichier, ainsi que des mtafichiers tendus et des
fichiers JPEG ou GIF.
Les images peuvent tre charge dans le contrle image au moment de la cration en
slectionnant la proprit Picture dans la fentre proprits du contrle, ou au moment de
lexcution en utilisant la proprit Picture et la mthode LoadPicture.
Image1.Picture = LoadPicture ( C : \Windows \ Winlogo.bmp )
Quand une image est charge dans le contrle Image, celui-ci est redimensionn la
taille de limage, quelle que soit sa taille lorsquil a t dessin sur la feuille.
Pour effacer le graphique dans le contrle Image, utilisez la mthode LoadPicture
sans spcifier de nom de fichier. Par exemple :
Image1.Picture = LoadPicture
La proprit Stretch dtermine si limage sagrandit automatiquement lorsque le
contrle Image est redimensionn au moment de la cration. Si la valeur True est affecte la
proprit Stretch, limage charge dans le contrle Image par lintermdiaire de sa proprit
Picture est agrandie automatiquement.
Label :
Un contrle Label est un contrle graphique qui permet dafficher du texte que
lutilisateur ne peut pas modifier directement. Il peut tre utilis aussi pour afficher des
informations au moment de lexcution en rponse un vnement ou un processus de votre
application.
Pour modifier le texte afficher dans un contrle Label, utilisez la proprit Caption.
Au moment de la cration, vous pouvez dfinir cette proprit en la slectionnant dans la
fentre Proprits du contrle. Ou bien au moment de lexcution en crivant :
Label1.Caption = Type de Rsolution
Par dfaut, lorsque le texte de la proprit Caption excde la largeur du contrle, il
revient automatiquement la ligne, et il est tronqu sil dpasse la hauteur du contrle.
Pour que le contrle soit automatiquement redimensionn en fonction de son contenu,
affectez la valeur True la proprit AutoSize. Le contrle stend en longueur afin de
sadapter au contenu complet de la proprit Caption. Pour que le contenu revienne
automatiquement la ligne et stende en hauteur, affectez la valeur True la proprit
WordWrap.
Line :
Un contrle Line est un contrle graphique affich sous la forme dune ligne
horizontale, verticale ou diagonale.
Vous pouvez utiliser un contrle Line au moment de la cration afin de tracer des
lignes sur des feuilles. Vous pouvez contrler la position, la longueur, la couleur et le style
des contrles.
La couleur et le style dun segment sont dfinis laide des proprits BorderStyle et
BorderColor.
La proprit BorderStyle, propose six styles de ligne :
Transparent (0 Transparent)
Continu (1 Solid)
Tiret (2 Dash)
Point (3 Dot)
Tiret Point (4 Dash-Dot)
Tiret Point Point (5 Dash-Dot-Dot)
Intrieur plein (6 Inside Solid)

www.developpez.c.la

28

Visual Basic

La couleur est dtermine par la proprit BorderColor dans la fentre Proprits du


contrle Line.
ListBox :
Un contrle ListBox affiche une liste dans laquelle lutilisateur peut slectionner un
ou plusieurs lments. Si le nombre dlments est trop grand pour tenir dans la zone affiche,
une barre de dfilement lui est automatiquement ajoute.
Pour ajouter des lments dans une zone de liste, utilisez la mthode AddItem, dont la
syntaxe est la suivante :
List1.AddItem Maroc
Pour ajouter un lment un endroit prcis, spcifiez une valeur dindex la suite de
llment ajouter .Ex :
List1.AddItem Algrie , 0
La valeur 0, spcifie le premier lment de la liste.
Vous pouvez spcifier que les lments dune liste soient tris par ordre alphabtique
en affectant la valeur True la proprit Sorted. Le tri seffectue sont tenir compte des
majuscules et minuscules.
Pour supprimer des lments dune zone de liste, utilisez la mthode RemoveItem en
spcifiant lindex de llment supprimer :
List1.RemoveItem 0
Pour supprimer tous les lments dune liste, utilisez la mthode Clear :
List1.Clear
La manire la plus simple pour connatre la valeur de llment slectionn dans une
liste consiste utiliser la proprit Text. La proprit Text correspond toujours un lment
de la liste que lutilisateur slectionne au moment de lexcution.
Si vous souhaitez connatre la position de llment slectionn dans une liste, utilisez
la proprit ListIndex. Cette proprit dfinit ou renvoie lindex de llment slectionn
dans le contrle et nest disponible quau moment de lexcution. si aucun lment nest
slectionn, la proprit ListIndex a la valeur 1. La proprit ListIndex du premier lment
de la liste a la valeur 0.
Pour renvoyer le nombre dlments contenus dans une liste, utilisez la proprit
ListCount.
Text1.Text = Lixt1.LixtCount
La proprit Columns vous permet de spcifier le nombre de colonnes dune zone de
liste. Cette proprit peut prendre les valeurs suivantes :
Valeur
Description
0
Zone de liste une colonne avec dfilement vertical
1
Zone de liste une colonne avec dfilement horizontal
>1
Zone de liste multicolonne avec dfilement horizontal
Vous pouvez permettre aux utilisateurs de slectionner plusieurs lments dans une
liste en utilisant la proprit MultiSelect, qui peut prendre les valeurs suivantes :
Valeur
0
1

Type de Slection
None
Simple

Extended

Description
Zone de liste standard
Un clic ou lappui sur ESPACE permet de
slectionner ou de dslectionner des lments
supplmentaires dans la liste
La combinaison MAJ + clic ou MAJ + une touche de
direction permet dtendre la slection afin dy

www.developpez.c.la

29

Visual Basic

inclure tous les lments compris entre llment


slectionn et celui slectionn prcdemment.
CTRL + clic permet de slectionner un lment dans
la liste.
Option Button :
Un contrle OptionButton affiche une option qui peut tre active ou dsactive.
Dans un groupe de boutons doption, lutilisateur ne peut effectuer quune seule slection.
Bien que les contrles OptionButton et CheckBox semblent fonctionner de manire
similaire, il existe entre eux une diffrence importante : lorsquun utilisateur slectionne une
case doption, les autres cases du mme groupe sont automatiquement dsactives, ce qui
nest pas le cas des cases cocher, dont lutilisateur peut slectionner un nombre illimit.
Pour changer le label dun bouton doption vous pouvez utiliser la proprit Caption :
Option1.Caption = Penyium
La proprit Value indique si le bouton est slectionn. Si tel est le cas, la valeur
devient True.
OptOui.Value = True
PictureBox :
Un contrle PictureBox peut afficher un lment graphique issu dune image bitmap,
dune icne ou dun mtafichier, ainsi que dun mtafichier tendu ou de fichiers JPEG ou
GIF.
Llment graphique est dcoup si le contrle nest pas assez grand pour afficher
limage complte.
Le contrle PictureBox est similaire au contrle Image dans le sens quils peuvent tre
utiliss pour afficher des graphiques dans lapplication et quils grent tous deux les mmes
formats graphiques. Toutefois, le contrle PictureBox contient des fonctionnalits qui
nexistent pas dans le contrle Image, par exemple, la possibilit de jouer le rle de conteneur
pour les autres contrles et de grer des mthodes graphiques.
Un contrle PictureBox peut tre utilis pour regrouper des contrles OptionButton et
pour afficher les donnes de sortie des mthodes graphiques et les textes crits au moyen de la
mthodes Print.
Pour que la zone dimage dun contrle PictureBox se redimensionne
automatiquement de manire pouvoir afficher lensemble du graphisme, affectez la valeur
True sa proprit AutoSize.
Il est possible de charger des images dans le contrle PictureBox au moment de la
cration, en slectionnant la proprit Picture dans la fentre Proprits du contrle, ou au
moment de lexcution en utilisant la proprit Picture et la mthode LoadPicture.
Picture1.Picture = LoadPicture ( C:\Windows\Winlogo.bmp )
PictureBox est Data sont les seuls contrles Visual Basic standard que vous pouvez
placer dans la zone interne dune feuille MDI. Vous pouvez utiliser un contrle PictureBox
pour regrouper des contrles en haut ou en bas de la zone interne afin de crer une barre
doutils ou une barre dtat.
Comme les feuilles, les zones dimage peuvent tre utilises pour afficher les donnes
en sortie des mthodes graphiques telles que Circle, Line et Point. Par exemple, vous pouvez
utiliser la mthode Circle pour dessiner un cercle dans une zone dimage en affectant la
valeur True la proprit AutoRedraw du contrle.
Picture1.AutoRedraw = True
Picture1.Circle (1200, 1000), 750

www.developpez.c.la

30

Visual Basic

Le fait daffecter la valeur True la proprit AutoRedraw permet aux donnes en


sortie de ces mthodes dtre dessins dans le contrle et automatiquement redessines quand
le contrle PictureBox est redimensionn ou affich de nouveau aprs avoir t masqu par
un autre objet.
Vous pouvez utiliser le contrle PictureBox pour afficher du texte en sortie en
utilisant la mthode Print et en affectant la valeur True la proprit AutoRedraw. Par
exemple :
Picture1.Print Bonjour !CasaBlanca
Shape :
Le contrle Shape est un contrle graphique qui saffiche sous forme de rectangle, de
carr, dellipse, de cercle, de rectangle arrondi ou de carr arrondi.
Vous pouvez dfinir le style, la couleur, le style de remplissage, la couleur et le style
de bordure de toutes les formes que vous dessinez sur une feuille.
La proprit Style du contrle Shape vous propose six formes prdfinies.
Forme
Rectangle
Carr
Ovale
Cercle
Rectangle coins arrondis
Carr coins arrondis

Style
0
1
2
3
4
5

Constante
VbShapeRectange
VbShapeSquare
VbShapOval
VbShapCircle
VbShapeRoundedRectangle
VbShapeRoundedSquare

Vous pouvez utiliser les proprits FillStyle et BorderStyle pour dfinir le style de
remplissage et de bordure de toutes les formes que vous dessinez sur une feuille.
La proprit FillStyle, comme la proprit Style, vous propose une varit de motifs
de style de remplissage prdfinis : Plein, transparent, ligne horizontale, ligne verticale,
Diagonale montante, Diagonale descendante, Croix et Croix diagonale.
La proprit BorderStyle vous propose une varit de style de bordure prdfinis :
Transparent, Continu, Tiret, Point, Tiret-Point, Tiret-Point-Point et intrieur plein.
Les proprits BackColor et FillColor vous permettent dajouter des couleurs une
forme et sa bordure.
TextBox :
Un contrle TextBox, parfois appel champ ddition ou contrle ddition, affiche
des informations entres au moment de la cration, tapes par lutilisateur ou affectes au
contrle au moment de lexcution.
Le texte entr dans le contrle TextBox est contenu dans la proprit Text. Par dfaut,
vous pouvez entrer jusqu 2048 caractres dans une zones de texte. Si vous affectez la valeur
true la proprit MultiLine du contrle, vous pouvez entrer jusqu 32 Ko de texte.
Lorsque la taille du texte excde les limites du contrle, vous pouvez affecter la valeur
True la proprit multiline du contrle pour grer automatiquement le renvoi du texte la
ligne et ajouter des barres de dfilement horizontal, vertical, ou les deux, en dfinissant la
proprit ScrollBars.
Quand vous affectez la valeur true la proprit MultiLine, vous pouvez aussi ajuster
lalignement du texte sur aligner gauche (Left Justify), centrer (center) ou ligner droite
(Right Justify). Par dfaut, le texte est align gauche. I la valeur False est affecte la
proprit MultiLine, la dfinition de la proprit Alignment na aucun effet.

www.developpez.c.la

31

Visual Basic

La proprit PasswordChar spcifie le caractre qui apparat dans la zone de texte.


Par exemple, si vous souhaitez que la zone de texte pour mot de passe contienne des
astrisques, affectez la valeur* cette proprit dans la fentre Proprits. Quel que soit le
caractre que lutilisateur tape dans la zone de texte, un astrisque apparat.
La proprit MaxLength vous permet de dterminer le nombre de caractres pouvant
tre taps dans la zone de texte. Si ce nombre est dpass, un bip sonore est mis et la zone
naccepte plus aucun caractre.
Vous pouvez utiliser la proprit Locked pour empcher les utilisateurs de modifier le
contenu dune zone de texte. Affectez la valeur True cette proprit pour permettre aux
utilisateurs de faire dfiler et de mettre en surbrillance le contenu dune zone de texte sans
pour autant autoriser les modifications.
Timer :
Les contrles Minuterie (Timer), indpendants de lutilisateur, ragissent au passage
du temps. Vous pouvez les programmer pour dclencher certaines actions intervalles
rguliers. Une rponse type de la minuterie consiste vrifier lhorloge systme pour voir si
le moment est venu deffectuer une tche donne. Les minuteries savrent galement utiles
pour dautres types de traitement darrire-plan.
Un contrle Timer possde deux proprits principales.
Proprit
Enabled

Valeur
Si vous souhaitez que la minuterie se dclenche ds le chargement de la
feuille, affectez la valeur True cette proprit. Dans le cas contraire, laissez
cette proprit dfinie sur la valeur False. Vous pouvez choisir quun
vnement extrieur (le clic dun bouton de commande, par exemple)
dclenche le fonctionnement de la minuterie.

Interval

Nombre de millisecondes entre les vnements de la minuterie

La proprit Enabled de la minuterie est diffrente de la proprit Enabled des autres


objets. Dans la plupart des objets, cette proprit dtermine si lobjet peut rpondre un
vnement provoqu par lutilisateur. dans le contrle Timer, le fait daffecter la valeur False
la proprit Enabled interrompt le fonctionnement de la minuterie.
La proprit Interval dtermine plus la frquence que la dure. La longueur de
lintervalle dpend du degr de prcision que vous recherchez.
Lintervalle peut tre compris entre 0 et 64767 inclus, ce qui signifie que mme
lintervalle le plus long sera de lordre dune minute (64,8 secondes environ).
Lexemple suivant permet dafficher au niveau dune tiquette lheure systme en
utilisant un contrle Timer dont lintervalle est 1000 (1 seconde) et la proprit Enabled est
True.
Private Sub Timer1_Timer ()
Lbltime.Caption = Time
End Sub

VII- Les fichiers


Un fichier est constitu dun ensemble de donnes, normalement situes sur disque ou
disquette, et identifies par un nom de fichier. Un fichier nest autre quune suite doctets
connexes enregistrs sur un disque. Lorsque votre application accde un fichier, elle doit
imaginer ce que reprsente ces octets (des caractres, des enregistrements de donnes, des
entiers, des chanes, etc.)

www.developpez.c.la

32

Visual Basic

Une application doit traiter un fichier en trois phases :


Ouverture du fichier. Le systme rserve une place en mmoire pour permettre laccs au
fichier par lapplication. Louverture peut se faire selon plusieurs modes, et elle peut
donner lieu la cration du fichier sil nexistait pas. Elle est ralis laide de
linstruction Open.
Traitement du fichier. Ce peut tre des lectures ou des critures de donnes. Il est
galement possible de se positionner dans le fichier un endroit quelconque.
Fermeture du fichier, qui indique au systme quil peut librer la mmoire rserve pour le
fichier. La fermeture se fait avec linstruction Close.
1- Modes de traitement des fichiers :
Visual Basic permet de voir le contenu dun fichier de trois faons diffrentes
correspondant trois modes daccs.
Le mode daccs squentiel est utilis pour la lecture et lcriture de fichiers textes dans
des blocs continus.
Le mode daccs direct o le fichier est constitu denregistrements ayant chacun une
mme longueur. Chaque enregistrement peut lui - mme tre constitu de plusieurs
champs, quil appartient lapplication de traiter correctement.
Le mode daccs binaire o le fichier est simplement constitu dun suite doctets sans
liens logiques.
Laccs squentiel t conu pour les fichiers texte sans mise en forme. Chaque
caractre du fichier est cens reprsenter un caractre de texte ou une squence de mise en
forme du texte. Les donnes sont stockes sous forme de caractres ANSI. Un fichier ouvert
pour accs direct est cens tre constitu dun ensemble denregistrements de mme longueur.
Grce aux types dfinis part lutilisateur, vous pouvez crer des enregistrements constitus de
nombreux champs pouvant mme possder chacun un type de donnes diffrent. Les donnes
sont stockes sous forme dinformations binaires.
Laccs binaire vous permet de stocker des donnes dans un ordre quelconque au sein
de fichiers. Ce mode daccs est semblable laccs direct, mais sen diffrencie par le fait
quil ny a aucune estimation du type de donnes ou de la longueur des enregistrements.
Toutefois, il est ncessaire de connatre avec prcision la manire dont les donnes ont t
crites dans le fichier pour les extraire correctement.
Il faut bien comprendre quil sagit de modes daccs, qui ne sont pas enregistres
dans le fichier. Un mme fichier peut tre trait dans les trois modes, avec des rsultats qui
peuvent videmment tre souhaits.
1) Accs Squentiel :
Le mode daccs squentiel est en ralit le nom commun donn trois modes
daccs, spcifis lors de louverture du fichier avec Open, qui prcisent le type daccs
effectu :
Input indique que laccs au fichier doit se faire en lecture seule.
Output indique son accs en criture. Si le fichier est ouvert dans ce mode, il est rinitialis
vide et son prcdent est perdu.
Append indique son accs en criture. Le contenu prcdent est conserv, et lcriture dans le
fichier ajoute de nouveaux enregistrements.
Exemple:
Open MYFILLE.TXT For Input As 1
Open MYFILLE.TXT For Output As 1
Open MYFILLE.TXT For Append As 1

www.developpez.c.la

33

Visual Basic

Si le fichier est ouvert en lecture, on peut en lire les enregistrements successifs laide
de linstruction line input qui lit la prochaine ligne (initialement la premire) , puis
positionne le fichier la ligne suivante. La fonction EOF peut tre utilise pour savoir si la
lecture a atteint la fin du fichier. Laccs squentiel autoris galement dautres instructions
de lecture: Input # et Write.
Dim varline
Open FICHTEST For Input As #1Ouvre le fichier.
Do While Not EOF(1)
Effectue la boucle jusqu la fin du fichier
LineInput #, Varrline
Lit une ligne et laffecte la variable varline
Txtnom.text = varline
Affiche le rsultat dans la zone de texte.
Loop
Close # 1
Ferme le fichier.
Pour crire dans un fichier en mode squentiel, ouvert en Output, ou en Append, on
utilise linstruction Print #, qui crit le texte donn, et ajoute les caractres de fin de lignes;
Print 1, thebox. text
ou bien linstruction Write #
Dim varnom as string, varnum as integer
Varnom = Bonjour
Varnom = 1230
Write # 1 varnon, varnum
Visual Basic crit don les caractres suivants (signe de ponctuation compris) dans le
fichier: Bonjour , 1230.
2) Accs direct ou accs alatoire :
Un fichier ouvert en mode daccs est vu comme une suite denregistrements de
longueur fixe. La structure dun enregistrement est souvent dfinie laide dun directive
Type qui permet den spcifier les champs. Par exemple:
Type enrclient
Nom As String* 25
Numro As Integer
Rue As String * 20
Montant As Currency
End Type
Par la suite il est ncessaire de dclarer une variable denregistrement, soit avec Dim
pour une utilisation en local avec Global au niveau dun module pour une utilisation globale.
Dim Client As EnreClient
Global Client as EnrClient
Louverture du fichier se fait toujours avec linstruction Open, dans laquelle le mode
est Random. De plus, il faut prciser la longueur de lenregistrement, avec le mot cl Len. Par
exemple:
Open Clients. Dat For Random As 1 Len = Len (Client)
Contrairement aux fichiers accs squentiel, il est possible de lire et dcrire la fois
des enregistrements dans un fichier accs direct, moins que laccs t restreint lors de
louverture avec le mot cl Access.
La lecture dun enregistrement se fait avec linstruction Get, et lcriture avec
linstruction Put. il est galement possible de se positionner un enregistrement donne avec
linstruction Seek. Par exemple:
Get #1, Numenr, Client
Saisie de lenregistrement en modification
Put #1 Numenr, Client

www.developpez.c.la

34

Visual Basic

3) Accs binaire :
Accder un fichier en mode binaire se rvle lorsque les deux autres modes ne se
prtent pas sa structure. Le mode daccs binaire considre le fichier comme une suite
doctets, sans structure particulire. Celle - ci peut tre, si ncessaire, ajoute dans la logique
du programme.
Louverture se fait toujours avec linstruction Open:
Open fichier For Binary As 1
Comme pour le mode daccs direct, les instructions Get et Put permettent de lire ou
dcrire des donnes dans le fichier. Le numro denregistrement est ici remplac par un
numro doctet dans le fichier, le premier octet ayant le numro 1.Sek permet de modifier la
position courante dans le fichier. Par exemple:
Dim Tampon as string* 16
Get1,32, Tampon
Lit 16 octets (taille de Tampon) partir du 32me octet du fichier.
On peut galement utiliser la fonction Input$ qui retourne une chane de caractres contenant
un nombre spcifi de caractres du fichier, partir de la position courante. Lexemple:
Dim Tampon As String
Seek 1,32
Tampon = Iput$ (16,1)
Est quivalent au prcdent.
2- Les instructions de traitement des fichiers :
1) Open :
Permet dexcuter une opration dEntre / Sortie (E/S) sur un fichier.
Open pathname For mode [ Access access] As [#
#] filenumber [Len = reclength]
La syntaxe de linstruction Open comprend les lments suivants:
Elment
pathname

Description
Expression de chane indiquant un nom de fichier qui peut comprendre un
nom de rpertoire ou de dossier et un non de lecteur.

mode

Mot cl indiquant le mode douverture du fichier: Append, Binary, Input,


Output, ou Randam. Sil nest pas indiqu, le fichier est ouvert en mode
Random.

Access

Facultatif. Mot cl indiquant les oprations autorises sur le fichier


ouvert: Read, Write ou Read Write

filenumber

Numro de fichier valide compris entre 1 et 511 inclus. Utilisez la


fonction FreeFile pour obtenir le prochain numro de fichier disponible

reclength

Faxultatif. Nombre infrieur ou gal 32767 (octets) . Pour les fichiers


ouverts en mode Random, cette valeur reprsente la longueur de
lenregistrement. Pour les fichiers squentiels, elle reprsente le nombre
de caractres contenus dans la zone tampon.

www.developpez.c.la

35

Visual Basic

Remarques :
Avant de pouvoir excuter une opration dEntre/Sortie sur un fichier, vous devez
louvrir. Linstruction Open permet dassocier une zone tampon dEntre/Sortie au fichier et
de dterminer le mode daccs ce fichier dans cette zone.
Si le fichier indiqu par largument pathname nexiste pas, il est cre au moment o un
fichier est ouvert en mode Append, Binary, Output ou Random.
Si le fichier, a dj t ouvert par un autre processus et si le type indiqu nest pas
autoris, linstruction Open choue et une erreur se produit.
La clause Len nest pas prise en compte si largument mode a la valeur Binary.
Important : En mode Binary, Input et Random, vous ntes pas oblig de fermer un
fichier avant de louvrir sous un autre numro de fichier. En mode Append et Output, vous
devez fermer un fichier avant de louvrir sous un autre numro de fichier.
Ouvre le fichier FICHTEST en mode lecture squentielle.
Open FICHTEST For Input As 1
Ouvre le fichier en mode Random (alatoire). Ce fichier contient des enregistrements
de type Record dfini par lutilisateur.
Dsigne le type dfini par lutilisateur.
Type Record
ID As Integer
Name As String * 20
End Type
Dim MyRecord As Record
Dclare la variable.
Open FICHTEST For Random As 1 Len = Len (MyRecord)
2) Line Input :
Lit une ligne unique partir dun fichier squentiel ouvert et lattribue une variable
de type string.
Line Input # filenumber, varname
La syntaxe de linstruction Line Input # comprend les lments suivants:
filenumber
Tout numro de fichier valide
varname
Nom de variable de type Variant ou String valide
Remarques :
Les donnes lues dans un fichier laide de linstruction Line Input # sont
gnralement crites laide de linstruction Print #.
Linstruction Line Input # lit un les caractres dun fichier jusquau premier retour
chariot (Chr(13)) ou retour chariot - saut de ligne (Chr(13)) + (Chr(10)) rencontr.
Les squences retour chariot - saut de ligne ne sont pas prises en compte (elles ne sont
pas ajoutes la chane de caractres).
Dim TextLine
Open FICHTEST For Input As #1Ouvre le fichier.
Do While Not EOF (1)
Effectue la boucle jusqu la fin du fichier.
Line Input #1, TextLine
Lit la ligne dans la variable.
Debug. Print TextLine
Affiche dans la fentre Excution.
Loop
Close #1 Ferme le fichier.
3) Input () :
Renvoie une valeur de type String contenant les caractres lus dans un fichier ouvert
en mode Input ou Binary.

www.developpez.c.la

36

Visual Basic

Input (number, [#
#] filenumber)
number
Toute expression numrique valide indiquant le nombre de caractre
renvoyer .
filenumber
Tout numro de fichier valide.
Remarques :
Les donnes lues avec linstruction Input # sont gnralement crites dans un fichier
laide de linstruction write #. Utilisez cette instruction uniquement avec des fichiers ouverts
en mode Input ou Binary.
Contrairement linstruction Input #, la fonction Input renvoie tous les caractres lus,
y compris les virgules, les retours chariot, les sauts de ligne, les points dinterrogation et les
espaces gauche.
Dans le cas de fichiers ouverts en mode Binary, une erreur se produit si vous tentez de
lire le fichiers laide de la fonction Input jusqu ce que la fonction EOF renvoie la valeur
True. Utilisez les fonctions LOF et Loc au lieu de la fonction EOF pour la lecture de fichiers
binaires laide de linstruction Input, ou utilisez linstruction Get avec la fonction EOF.
MyChar = Input (1, #1)
Lit un caractre.
4) Input # :
lit des donnes dans un fichier squentiel ouvert et les attribue des variables.
Input # filenumber, varlist
La syntaxe de linstruction Input # comprend les lments suivants :
Filenumber
Tout numro de fichier valide.
Varlist
Liste, dlimite par des virgules, de variables auxquelles sont attribues
les valeurs lues dans le fichier.
Remarques :
Les donnes lues avec linstruction Input # sont gnralement crites dans une fichier
laide de linstruction Write #. Utilisez cette instruction uniquement avec des fichiers
ouverts en mode Input ou Binary.
Lorsquelles sont lues, les chanes standard ou les donnes numriques sont effectues
aux variables sans tre modifies.
Les guillemets double (" ") inclus dans les donnes dentre ne sont pris en compte.
Les lments de donnes dun fichier doivent apparatre dans le mme ordre que les
variables de largument varlist et doivent correspondre des variables possdant le mme
type de donnes. Si une variable est numrique et si les donnes ne le sont pas, la valeur zro
est attribue la variable.
Si la fin du fichier est atteinte pendant lentre dun lment de donnes, cela met fin
lentre et une erreur se produit.
Note :
Pour tre sr que les donnes dun fichier sont correctement lues et attribues aux
variables laide de linstruction Input #, utilisez linstruction Write # au lieu de linstruction
Print # pour crire les donnes dans les fichiers. Linstruction Write # garantit une
dlimitation correcte de chaque champ de donnes.
Dim MyString, MyNumber
Open FICHTEST For Input As # 1
Do While Not EOF(1)
Lit les donnes dans deux variables.

www.developpez.c.la

37

Visual Basic

Input # 1, MyString, MyNumber


Loop
Close # 1 Ferme le fichier.
5) Print # :
Ecrit des donnes mises en forme pour laffichage dans un fichier squentiel.
Print #filenumber, [ out putlist]
La syntaxe de linstruction Print # comprend les lments suivants :
Element
Description
filenumber
Tout numro de fichier valide
outputlist
Facultatif. Expression ou liste dexpression imprimer.
Remarques:
Les donnes crites laide de linstruction Print # sont gnralement lues dans un
fichier avec les instructions Line Input # ou Input.
Si vous omettez largument outputlist et si vous indiquez uniquement un sparateur de
liste aprs largument filenumber, une ligne vierge est imprim dans le fichier. Les diffrentes
expressions peuvent tre spares indiffremment par un espace ou un point-virgule. Ex:
Open FICHTEST For Output As # 1 ouvre le fichier en criture
Print # 1, ceci est un test Ecrit le texte dans le fichier.
Print # 1,
Insre une ligne vierge dans le fichier
Print # 1, Zone 1 ; Tab; Zone 2 spare la chane en deux.
Print # 1, Bonjour ; " "; tous spare les chanes de caractres avec des espaces.
Print # 1, Spc (5); "5 espaces gauche" Ecrit cinq espaces gauche.
Print # 1, Tab (10); "Bonjour" Ecrit le mot partir de la colonne 10.
6) Write # :
Ecrit des donnes dans un fichier squentiel.

Write filenumber, [ outputlist]


Elment
Description
filenumber
Tout numro de fichier valide
outputlist
Facultatif. Une ou plusieurs expressions numriques
ou expressions de chane dlimites par des sparateurs virgules,
devant tre crites dans un fichier.
Remarques :
Les donnes crites laide de linstruction Write # sont gnralement dans un fichier
avec linstruction Input #.
Si vous omettez largument outputlist et si vous insrez un sparateur virgule aprs
largument filenumber, une ligne vierge est imprime dans le fichier. Vous pouvez sparer
plusieurs expressions par un espace, un point-virgule ou une virgule. Un espace ou un point
virgule ont le mme effet.
Contrairement linstruction Print #, linstruction Write # insre des virgules entre les
lments et des guillemets doubles de part et dautre des chanes de caractres au moment de
leur criture dans le fichier. Vous navez donc pas placer des sparateurs explicites dans la
liste. Linstruction Write # insre un caractre de passage la ligne, cest dire un retour
chariot-saut de ligne (chr(13)+chr(10)), aprs lcriture dans le fichier du dernier caractre
contenu dans largument outputlist.

www.developpez.c.la

38

Visual Basic

Exemple :
Ouvre le fichier en criture.
Open FICHTEST For Output As # 1
Write #1, Bonjour tous , 234 crit des donnes spares par des virgules.
Write #1Ecrit une ligne vierge.
7) Close :
Termine les oprations dEntre / Sortie (E/S) dans un fichier ouvert laide de
linstruction Open.
Close [ filenumberlist]
Largument facultatif filenumberlist reprsente ou un plusieurs numros de fichiers qui
utilisent la syntaxe suivante, o filenumber peut tre tout numro de fichier valide:
[[#] filenmber], [[#] filenmber].......
Remarques :
Si vous omettez largument filenumberlist, tous les fichiers actifs ouverts laide de
linstruction Open sont ferms.
Lorsque linstruction Close est excute, lassociation dun fichier avec son numro de
fichier est dsactive.
Close # 1.
8) Freefile :
Renvoie une valeur de type Integer reprsentant le prochain numro de fichier pouvant
tre utilise par linstruction Open.
FreeFile [(rangenumber)]
Largument facultatif rangenumber est une valeur de type Variant qui indique la plage
dans laquelle doit se trouver le prochain numro de fichier disponible renvoy par la fonction.
indiquez 0 (valeur par dfaut) pour renvoyer un numro de fichier compris entre 1 et 255
inclus. Indiquez 1 pour renvoyez un numro de fichier compris entre 256 et 511.
Remarques :
Utilisez la fonction FreeFile pour fournir un numro de fichier encore non utilis.
Cet exemple utilise la fonction FreeFile pour renvoyez le prochain numro de fichier
disponible. Cinq fichiers sont ouverts lintrieur de la boucle et des donnes sont crites
dans chacun deux.
Dim FileNumber
File Number = FreeFile
Lit le numro de fichier inutilis
Open TEST For Output As # File Number
9) Get :
Lit les donnes dun fichier disque ouvert et les place dans une variable.
Get [#] filenumber, [recnumber], varname
La syntaxe de linstruction Get compremd les lments suivants :
Elment
Filenumber

Description
Tout numro de fichier valide.

Recnumber

Facultatif. Donne de type Variant (Long). Numro de lenregistrement


(fichiers ouverts en mode Random) ou de loctet (fichiers ouverts en
mode Binary) par lequel la lecture dbute.

www.developpez.c.la

39

Visual Basic

Varname

Nom de variable valide destin recevoir les donnes lues.

Remarques :
Les donnes lues avec linstruction Get sont gnralement places dans un fichiers
laide de linstruction Put.
Le premier enregistrement ou octet dun fichier occupe la position 1, le deuxime
enregistrement ou octet la position 2, et ainsi de suite. Si largument recnumber est omis, la
lecture commence partir de lenregistrement ou de loctet suivant la dernire instruction Get
ou Put (ou partir de celui dsign par la dernire fonction Seek). Vous devez toujours
inclure des sparateurs virgules. Exemples :
Get # 4, FileBuffer
Les rgles suivantes sappliquent aux fichiers ouverts en mode Random :
Si la longueur des donnes lues est infrieurs la longueur indique dans la clause Len de
linstruction Open, linstruction Get lit les enregistrements suivants conformment aux
limites de longueur des enregistrements. Lespace compris entre la fin dun enregistrement
et le dbut de lenregistrement suivant est rempli par le contenu de la zone tampon du
fichier. Comme il est impossible de dterminer avec certitude le volume des donnes de
remplissage, il est gnralement prfrable que la longueur des enregistrements
corresponde la longueur des donnes lues.
Si la variable lue est une chane de longueur variable, linstruction Get lit dabord un
descripteur de deux octets contenant la longueur de la chane, puis les donnes qui sont
places dans la variable. Par consquent, la longueur denregistrement indique par la
clause Len dans linstruction Open doit tre suprieur dau moins deux octets la longueur
relle de la chane.
Dsigne un type dfini par lutilisateur.
Type Record
ID As Integer
Name As String* 20
End Type
Dim MyRecord As Record, Position Dclare les variables.
Ouvre lexemple de fichier en accs alatoire.
Open FICHTEST For Random As # 1 Len = (MyRecord)
Position 3
Dfinit le numro denregistrement
Get # 1, Position, MyRecord
Lit le troisime enregistrement.
Close # 1
Ferme le fichier.
10) Put :
Ecrit les donnes dune variable dans un fichier disque.
Put [#]filenumber, [recnumber], varname
La syntaxe de linstruction Put comprend les lments suivants :
Elment
Filenumber
Recnumber

Description
Tout numro de fichier valide.
Facultatif. Donne de type Variant (Long). Numro de lenregistrement
(fichiers ouverts en mode Random) ou de loctet(fichiers ouverts en mode
Binary) qui marque le dbut de lcriture.

www.developpez.c.la

40

Visual Basic

Varname

Nom de la variable contenant les donnes crire sur le disque.

Remarque :
Les donnes crites laide de linstruction Put sont gnralement lues dans un
fichiers avec linstruction Get.
Le premier enregistrement ou octet dun fichier occupe la position 1, le deuxime
enregistrement ou octet la position 2, et ainsi de suite. Si lenregistrement recnumber est omis,
lcriture commence partir de lenregistrement ou de loctet suivant la dernire instruction
Get ou Put (ou partir de celui dsign par la dernire fonction Seek). Vous devez inclure des
sparateurs virgules, Exemple :
Put # 4, FileBuffer
Les rgles suivantes sapplique aux fichiers ouverts en mode Random :
Si la longueur des donnes crites est infrieure la longueur indique dans la clause Len
de linstruction Open, linstruction Put poursuit lcriture des enregistrements suivants
conformment aux limites de longueur des enregistrements. Lespace compris entre la fin
dun enregistrement et le dbut de lenregistrement suivant est rempli par le contenu de la
zone tampon du fichier. Comme il est impossible de dterminer avec certitude le volume
des donnes de remplissage, il est gnralement prfrable que la longueur des
enregistrements corresponde la longueur des donnes crites. Une erreur se produit si la
longueur des donnes crites est suprieur celle indique dans la clause Len de
linstruction Open.
Si la variable crite est une chane de longueur variable, linstruction Put crit dabord un
descripteur de 2 octets contenant la longueur de la chane, puis la variable. La longueur
denregistrement indique par la clause Len dans linstruction Open doit tre suprieure
dau moins 2 octets la longueur relle de la chane.
Dsigne un type dfini par lutilisateur.
Type Record
ID As Integer
Name As String* 20
End Type
Dim MyRecord As Record, RecordNumber
Dclare les variables.
Ouvre le fichier en accs alatoire.
Open FICHTEST For Random As # 1 Len = Len (MyRecord)
For RecordNumber = 1 To 5
Effectue la boucle 5 fois
MyRecord.ID = RecordNumber
Dfinit lidentificateur.
MyRecord.Name = Mon Nom & RecordNumber
Cre une chane
Put # 1, RecordNumber, MyRecord
Ecrit lenregistrement dans le fichier.
Next RecordNumber
Close # 1
Ferme le fichier.
11) Seek :
Renvoie une valeur de type Long indiquant la position de lecture / criture courante
dans un fichier ouvert laide de linstruction Open.
Seek(Filenumber)
Largument filenumber est une valeur de type Integer contenant un numro de fichier
valide.
Remarques :
La fonction Seek renvoie une valeur comprise entre 1 et 2 147 483 647, inclus.

www.developpez.c.la

41

Visual Basic

Le tableau suivant indique les valeurs renvoyes pour chaque mode daccs au fichier.
Mode
Random

Valeur renvoye
Numro de lenregistrement suivant lu ou crit.

Binary
Output
Append
Input

Position de loctet partir duquel lopration suivante doit avoir lieu. Le premier
octet dun fichier occupe la position 1, le deuxime octet la position 2, et ainsi de
suite.

Dsigne un type dfini par lutilisateur.


Type Reccord
ID As Integer
Name As String * 20
End Type
Dans le cas de fichiers ouverts en mode daccs alatoire, la fonction Seek renvoie le
numro de lenregistrement suivant.
Dim MyRecord As Record
Dclare la variable.
Open FICHTEST For Random As #1 Len = Len(MyRecord)
Effectue la boucle jusqu la fin du fichier.
Do While Not EOF(1)
Get # 1, MyRecord
Lit lenregistrement suivant.
Affiche le numro denregistrement dans la zone de texte pos
Txtpos.text = Seek(1)
Loop
Close # 1
Ferme le fichier.
Dans le cas de fichiers ouverts en dautres modes que le mode Random, la fonction
Seek renvoie la position de loctet partir duquel lopration suivante doit seffectuer. nous
supposons que FICHTEST est un fichier contenant quelques lignes de texte.
Dim MyChar
Open FICHTEST For Input As # 1 Ouvre le fichier en lecture.
Do While Not EOF(1)
Effectue la boucle jusqu la fin du fichier.
MyChar = Input (1, #1)
Lit le caractre suivant.
Textpos.text = Seek (1)
Affiche la position de loctet dans la zone de texte.
Loop
Close # 1
Ferme le fichier.
12) Loc :
Renvoie une valeur de type Long indiquant la position de lecture / criture courante
dans un fichier ouvert.
Loc(Filenumber)
L(argument filenumber peut tre tout numro de fichier valide de type integer.
Remarques :
Le tableau suivant dcrit la valeur renvoye en fonction du mode daccs au fichier :
Mode
Random

Valeur renvoye
Numro du dernier enregistrement lu ou crit dans le fichier.

Sequential Position courante de loctet dans le fichier divis par 128. Les informations

www.developpez.c.la

42

Visual Basic

renvoyes par la fonction Loc pour les fichiers squentiels ne sont toutefois ni
utilises, ni obligatoires.
Binary

Position du dernier octet lu ou crit.

Dim MyLocation, MyLine


Open FICHTEST For Binary As #1 Ouvre le fichier qui vient dtre cr.
Do While MyLocation < LOF(1)
Effectue la boucle jusqu la fin du fichier.
MyLine = MyLine & Input (1, #1) Lit le caractre dans la variable.
MyLocation = Loc(1)
Lit la position en cours dans le fichier.
Loop
Close #1
Ferme le fichier.
13) EOF :
renvoie une valeur de type Integer contenant la valeur Boolean True lorsque la fin
dun fichier ouvert en mode Random on Input squentiel est atteinte.
EOF (filenumber)
Largument filenumber est une valeur de type Integer contenant nimporte quel
numro de fichier valide.
Remarques :
Utilisez la fonction EOF pour viter de gnrer une erreur lorsque vous tentez
dobtenir des donnes au-del de la fin dun fichier.
La fonction EOF renvoie la valeur False tant que la fin du fichier nest pas atteinte.
Avec des fichiers ouverts en mode Random ou Bianry, une erreur se produit si vous tentez de
lire le fichier laide de al fonction Input jusqu ce que la fonction EOF renvoie la valeur
True. Utilisez les fonctions LOF et Loc au lieu de la fonction EOF pour la lecture de fichiers
binaires avec la fonction Input, ou utilisez linstruction Get avec la fonction EOF. Pour des
fichiers ouverts en mode Output, la fonction EOF renvoie toujours la valeur True.
Dim InputData
Ouvre le fichier afin dy entrer des donnes.
Open MONFICH For Input As # 1
Do While Not EOF(1)
Vrifie si la fin du fichier est atteinte.
Line Input #1, InputData Lit les lignes de donnes.
Loop
Close #1
Ferme le fichier.
14) LOF :
renvoie une valeur de type Long reprsentant la taille, exprim en octets, dun fichier
ouvert laide de linstruction Open.
LOF(filenumber)
Largument filenumber peut reprsenter toute valeur de type Integer contenant un
numro de fichier valide.
Note :
Utilisez la fonction FileLen pour obtenir la longueur dun fichier qui nest pas ouvert.
Dim FileLength
Open FICHTEST For Input As #1 Ouvre le fichier.
FileLength = LOF(1)
Lit la taille du fichier.
Close #1
Ferme le fichier.

www.developpez.c.la

43

Visual Basic

15) FileLen :
Renvoie une valeur de type Long indiquant la longueur en octets dun fichier.
FileLen (pathname)
Largument pathname est une expression de chane dfinissant un fichier. Largument
pathname peut prciser le rpertoire ou dossier, et le lecteur.
Remarques :
Si le fichier indiqu est ouvert lors de lappel de la fonction FileLen, la valeur
renvoye reprsente la taille du fichier juste avant son ouverture.
Note :
Pour connatre la longueur dun fichier ouvert, utilisez la fonction LOF.
Dim MySize
Renvoie la longueur du fichier (en octets).
MySize = Filelen ( FICHTEST )

www.developpez.c.la

44

Вам также может понравиться