<Â
‘Une image vaut mille mots’Â
Bien débuter avec Visual Basic Â
1.  IntroductionÂ
2.  Comment démarrer avec Visual Basic ? Â
3.  Les étapes de la réalisation d’une applicationÂ
4.  Sauvegarder une applicationÂ
5.  Notions de base (Le contrôle Form)Â
6.  Notions de base (Le Label)Â
7.  Notions de base (Le CommandButton)Â
8.  Apprentissage par l’exempleÂ
2/74Â
Introduction Â
Visual Basic 6.0 est un logiciel de programmation crée par la société Microsoft pour permettre leÂ
developpement des applications qui peuvent fonctionner de manière autonome sousÂ
Windows.Â
Le modèle de programmation utilisé par Visual Basic est de type événementiel c'est-à -dire queÂ
seulement une partie du code est exécuté suite à  une action précise de l’utilisateur (appeléeÂ
événement).Â
Visual Basic est considéré egalement comme un langage de programmation orientée objet : chaqueÂ
partie du code est liée à  un objet, et c’est une action sur cet objet qui déclenche son exécution.Â
Il existe sur le marché trois éditions  de Visual Basic: Â
    - L’édition Initiation est la moins fournie des trois mais permet de créer de puissantes Â
applications.Â
    - L’édition Professionnelle dispose de toutes les fonctionnalités de l’édition initiation et se voitÂ
enrichie de nombreux contrôles et outils de développement.Â
    - L’édition Entrepriseest la plus complète.    Â
3/74Â
2. Les étapes de la réalisation d’une application Â
La création d'une application dans Visual Basic implique trois étapes principales :Â
ü  Créer l'interface.Â
ü  Définir les propriétés.Â
ü  Écrire le code.Â
3. Sauvegarder une application Â
Lorsqu’on sauvegarde une application, Visual Basic va créer :Â
1.Un ou plusieurs fichiers feuilles (.frm) : Un fichier mémorise tous les éléments attachés à Â
une feuille : la description de la fenêtre, la description des contrôles inclus dans la fenêtre,Â
les procédures et fonctions liées à  la feuille.Â
2.Un fichier dit projet (.vbp) : Il mémorise la liste de tous les  fichiers nécessaires au projet.Â
Quand le projet est terminé il peut être transformé (compilé) en un seul fichierÂ
exécutable « .EXE » qui s’exécutera sans lancer Visual Basic, mais il necessiteraÂ
toutefois d’avoir le logiciel installé.Â
2. Notions de base (le contrôle Form)Â
Par défaut Visual basic affiche une feuille vierge appélée Form1Â
Pour commencer, nous allons examiner deux propriétés :Â
- La propriété Name : il s’agit du nom de l’objet tel qu’il est géré par l’application. Par défaut,Â
Visual Basic donne à  tous les objets que vous créez de noms génériques, comme Form1, Form2,Â
Form3…
- La propriété Caption : il s’agit du texte associé à  l’objet sur l’écran.Â
NotesÂ
CConcernant  la  propriété  name,  il  est  important  de  changer  les  noms  donnés  par  défautÂ
  aux contrôles utilisés et de choisir des noms plus évocateurs.Â
Par  convention,  on  utilise  un  préfixe  de  3  lettres  spécifique  à   la  famille  de  l'objetÂ
concerné, suivi d'un nom significatif du rôle rempli par le contrôle dans le projet.Â
Exemple : Au lieu de concerver form1 comme name, on choisira frmclients pour uneÂ
feuille qui servira à  réunir les détails sur les clients.Â
4/74Â
Les préfixes souvent utilisés pour chaque objet :Â
ObjetÂ
PréfixeÂ
Bouton de commandeÂ
cmdÂ
(CommandButton)Â
Bouton d'option (OptionButton)Â
optÂ
Cadre (Frame)Â
fraÂ
Case à  cocher (CheckBox)Â
chkÂ
Etiquette (Label)Â
lblÂ
Formulaire ou Feuille (Form)Â
frmÂ
Image (Image)Â
imgÂ
Liste modifiable (ComboBox)Â
cboÂ
Menu (Menu)Â
mnuÂ
Minuterie (Timer)Â
tmrÂ
Photo (Picture)Â
picÂ
Zone de liste (ListBox)Â
lstÂ
Zone de texte (TextBox)Â
txtÂ
La boite à  outilsÂ
Zone image (PictureBox)Â
LabelÂ
Zone de texte (TextBox)Â
Encadré avec un titre (Frame)Â
Bouton de commande (CommandButton)Â
Case à cocher (CheckBox)Â
Bouton d’option (OptionButton)Â
Liste modifiable (ComboBox)Â
Liste non modifiable (ListBox)Â
Barre de défilement horizontale (HScrollBar)Â
Barre de défilement verticale (VScrollBar)Â
Minuterie (Timer)Â
Liste de lecteurs (DriveListBox)Â
Liste de répertoires (DrilistBox)Â
Liste de fichiers (FilelistBox)Â
(Shape)Â
Trait (Line)Â
ImageÂ
DataÂ
5/74Â
NotesÂ
C
Les principales propriétés d’un contrôle Label sont :Â
Ÿ Alignment : qui règle l’alignement du texte (gauche, centré, droite) Â
Ÿ BorderStyle : qui désigne le type de bordure du labelÂ
Ÿ Autosize    : permet d’ajuster la taille du Label à  son contenu.
Dans une zone de texte, il y a 3 possibilités :Â
·  Afficher une valeurÂ
·  Inscrire une valeurÂ
·  Modifier une valeur ;Â
Dans un label, il y’a UNE possibilité :Â
·  Afficher une valeurÂ
6/74Â
4. Notions de base (Le CommandButton)Â
Il s’agit du bouton de commande du type Ok, Annuler, et permet a l’utilisateur de déclencher unÂ
événement avec la souris ou le clavier. Â
Quelques propriétés de la classe CommandButton :Â
Ÿ Enabled  :  cette  propriété  permet  au  bouton  d’être  actif  (valeur  True),  c’est-à -dire  de  pouvoirÂ
recevoir  des  événements,  et  donc  de  déclencher  des  procédures.  Inversement,  elle  interditÂ
(valeur  False)  à   un  contrôle  de  recevoir  quelque  événement  que  ce  soit  de  la  part  deÂ
l’utilisateur. Dans ce cas, le contrôle apparaît grisé à  l’écran.  Â
Ÿ STYLE : si cette propriete possede comme valeur graphical, il devient alors possible d’ajouterÂ
une image sur le bouton, ou d'en modifier la couleur. dans le cas contraire (valeur standard,Â
par defaut), le bouton conserve l’aspect par defaut des boutons de windows (le gris). Â
7/74Â
5. Apprentissage par l’exempleÂ
Réalisez votre premier programme qui permet de contrôler l’affichage de la date et l’heure à  partirÂ
de deux boutons.Â
1. Créer l’interface suivante :Â
Form1Â
Label 1Â
Command1Â
Command2Â
2. Définir les objets et leurs propriétés :Â
L'étape suivante consiste à  définir pour chaque objet des propriétés.Â
1.Appuyez sur la touche F4 pour ouvrir la Fenêtre Propriétés ;Â
(Si cette fenêtre est déjà  ouverte passez à  l’étape suivante)Â
2.Choisissez  un objet de la liste :Â
3.Affectez les propriétés suivantes :Â
8/74Â
ObjetsÂ
PropriétésÂ
ValeursÂ
Form1Â
CaptionÂ
EssaiÂ
Command1Â
CaptionÂ
DateÂ
Command2Â
CaptionÂ
HeureÂ
CaptionÂ
Label1Â
AlignmentÂ
CenterÂ
Border StyleÂ
Fixed SingleÂ
3. Ecrire le code Â
Pour ouvrir la fenêtre du Code, Double-cliquez sur la feuille ou sur le contrôle pour lequel vousÂ
souhaitez écrire le code (Dans notre exemple on a choisit le bouton de commande Command1.Â
·Â
Command1 est le name du bouton de commande choisi ;Â
·  Command1_Click veut dire que le code qui sera écrit entre Private Sub et End Sub seraÂ
executé quand l'utilisateur va cliquer sur ce bouton ;Â
·  Private veut dire que ce code sera utilisable UNIQUEMENT que dans cette feuille.Â
·Â
Label1=Date : signifie que l’objet Label1va afficher la date systéme (quandÂ
l’utilisateur aura cliqué sur le bouton Command1).Â
9/74Â
Pour exécuter l'application, cliquez sur Exécuter dans le menu Exécution, ou sur le boutonÂ
  de la barreÂ
d'outils, ou encore appuyez sur la touche de fonction F5.Â
D’autres codes à  tester:Â
·  Le premier exemple montre qu’auÂ
contraire des fonctions Time etÂ
Date, pour afficher un texte dansÂ
un Label, il doit être placé entre ";Â
·  Le deuxiéme exemple montreÂ
l’utilité du caractére & :Â
concaténer une fonction et unÂ
texte ;Â
·  Space(5) permet d’insérer 5Â
espaces ;Â
D’autres propriétés valables pour de nombreux éléments :Â
PropriétésÂ
SignificationÂ
BackColorÂ
couleur de l'arrière-plan de l'objet (ex. : couleur de la fenêtre)Â
ForeColorÂ
couleur du premier plan de l'objet (ex. : couleur du texte)Â
FontÂ
style d'écritureÂ
AutosizeÂ
Permet pour un Label d’adapter le texte à  son bordure Â
Quelques règles à  respecter :Â
·Â
Un name doit toujours commencer par une lettre, ne doit pas dépasser 255 caractères et neÂ
doit pas comporter d’espaces.Â
10/74Â
·Â
Les mots réservés par Visual Basic (if, then, time, date…) ne peuvent pas être utilisés pourÂ
la propriété name.Â
Ajout du bouton ‘Quitter’ :Â
Objectif : ajouter un bouton de command qui permet de terminer l’application :Â
·  Ce code  permet d'arrêter la procédure du programme.Â
Ajout des touches de raccourcis :Â
Pour chaque bouton, ajouter un "&" pour que la première lettre devienne un raccourci ;Â
Exemple : pour le bouton ‘Quitter’Â
Ce qui donne Â
Ainsi en mode execution, il suffit d’utiliser la combinaison detouches ‘ALT+Q’ pour teminerÂ
l’application.
11/74Â
6. Notions de base (La Zone de Texte (TextBox))Â
Contrairement à  un Label, les "TextBox" servent généralement à  saisir une information.   Â
La propriété essentielle d'une Zone de Texte est Text. C’est la propriété qui désigne son contenu.Â
Il  faut  savoir  que toute  information  contenue  dans  une  zone  de  texte  estÂ
obligatoirement  de  type  texte !  Donc,  l’emploi  de  fonctions  de  conversion  s’avèreraÂ
indispensable pour travailler avec des nombres.Â
12/74Â
Apprentissage par l’exemple :Â
1.Créez l’interface suivante : Â
LabelÂ
FrameÂ
3Â OptionButtonÂ
CommandButtonÂ
Le but de cette application est de contrôler l’affichage dans Le Label en fonction du choix effectué :Â
–L’option Word pour afficher «  Traitement de texte »Â
–L’option Excel pour obtenir « Tableur »Â
–L’option Access pour obtenir « Système Gestion bases de donnée »Â
Définir les propriétés :  Â
V a l e u r Â
O b j e t s Â
P r o p r i é t é s Â
d e   c h a q u e   p r o p r i é t é Â
F o r m 1 Â
CaptionÂ
Boutons d'options:Â
CaptionÂ
LogicielsÂ
F r a m e Â
FontÂ
GrasÂ
CaptionÂ
WordÂ
O p t i o n 1 Â
NameÂ
optwordÂ
CaptionÂ
ExcelÂ
O p t i o n 2 Â
NameÂ
OptexcelÂ
CaptionÂ
AccessÂ
O p t i o n 3 Â
NameÂ
OptaccessÂ
CaptionÂ
&QuitterÂ
C o m m a n d 1 Â
NameÂ
CmdfinÂ
CaptionÂ
NameÂ
lblaffichageÂ
L a b e l 1 Â
AlignmentÂ
CenterÂ
Border StyleÂ
Fixed SingleÂ
FontÂ
Gras, Taille 12Â
13/74Â
Ecrire le code pour  optword :Â
Ecrire le code pour  optexcel :Â
Ecrire le code pour  optaccess :Â
14/74Â
2éme exempleÂ
On désire offrir à  l’utilisateur de faire un choix entre trois possibilités :Â
–Â
L’option Word pour afficher «  Traitement de texte »Â
–Â
L’option Excel pour obtenir « Tableur »Â
–Â
L’option Access pour obtenir « Système Gestion bases de donnée »Â
Également, vous devez ajouter à  votre application un bouton Fin pour quitter.Â
Label1Â
FrameÂ
Option1Â
Option2Â
Option3Â
Command1Â
2.  Définir les objets :Â
V a l e u r s Â
O b j e t s Â
P r o p r i é t é s Â
d e   c h a q u e p r o p r i é t é Â
Form1Â
CaptionÂ
LogicielsÂ
CaptionÂ
LogicielsÂ
FrameÂ
FontÂ
GrasÂ
CaptionÂ
WordÂ
Option1Â
NameÂ
optwordÂ
CaptionÂ
ExcelÂ
Option2Â
NameÂ
OptexcelÂ
CaptionÂ
AccessÂ
Option3Â
NameÂ
OptaccessÂ
CaptionÂ
FinÂ
Command1Â
NameÂ
CmdfinÂ
CaptionÂ
NameÂ
lblaffichageÂ
Label1Â
AlignmentÂ
CenterÂ
Border StyleÂ
Fixed SingleÂ
FontÂ
Gras, Taille 12Â
3.  Définir les évènements Â
Private Sub optword_Click()Â
     lblaffichage.Caption = "Traitement de texte"Â
End SubÂ
Private Sub optexcel_Click()Â
     lblaffichage.Caption = "Tableur"Â
End SubÂ
Private Sub optaccess_Click()Â
      lblaffichage.Caption = "Système Gestion bases de données"Â
End SubÂ
Private Sub cmdfin_Click()Â
      EndÂ
End SubÂ
15/74Â
3éme exempleÂ
Créer un projet qui permet de calculer la conversion d’une devise vers le dirham à  partir d’un taux choisis par l’utilisateur.Â
1.  Définir les objets :Â
V a l e u r s   d e   c h a q u e Â
O b j e t s Â
P r o p r i é t é s Â
p r o p r i é t é Â
Form1Â
CaptionÂ
Changement de devisesÂ
Label1Â
CaptionÂ
Bureau de changeÂ
CaptionÂ
Montant DevisesÂ
Label2Â
AutosizeÂ
TrueÂ
CaptionÂ
TauxÂ
Label3Â
AutosizeÂ
TrueÂ
CaptionÂ
Montant en DHÂ
Label4Â
AutosizeÂ
TrueÂ
CaptionÂ
NameÂ
LblaffichageÂ
Label5Â
BorderstyleÂ
FixedsingleÂ
FontÂ
Gras, Taille : 12Â
TextÂ
Text1Â
NameÂ
TxtmontantÂ
TextÂ
Text2Â
NameÂ
TxtauxÂ
CaptionÂ
&ChangerÂ
Command1Â
NameÂ
cmdchangerÂ
CaptionÂ
&AutreÂ
Command2Â
NameÂ
cmdautresÂ
CaptionÂ
&FinÂ
Command3Â
NameÂ
CmdfinÂ
NBÂ :Â
La propriété Autosize permet d’ajuster le contrôle à  son contenu ;Â
Les propriétés Font et Forecolor permettent de changer l’attribut de l’objet (la taille, la couleur…)Â
Le caractère & permet d’affecter une touche de raccourcis à  un Bouton de commande.Â
La propriété setfocus permet d’insérer automatiquement le curseur dans une zone de texte (voir la procédure cmdAutre).Â
L’instruction val permet de convertir une chaîne de caractère en nombre (voir la procédure cmdchanger)Â
2.   Définir les évènements Â
16/74Â
Private Sub cmdchanger_Click()Â
    lblaffichage.Caption = Val() * Val()Â
End SubÂ
Private Sub cmdautre_Click()Â
     lblaffichage.Caption = ""Â
     = ""Â
     = ""Â
     txtmontant.SetFocusÂ
End SubÂ
Private Sub cmdfin_Click()Â
     EndÂ
End SubÂ
17/74Â
4éme exempleÂ
Chaque option donne unÂ
taux :Â
1 Euro   = Â
1 $Can  = Â
1 $Usa  = Â
          1 £      = Â
1ère méthodeÂ
Private Sub cmdchanger_Click()Â
    lblmontant.Caption = lbltaux.Caption * Val()Â
End SubÂ
Private Sub optcan_Click()Â
    lbltaux.Caption = 7.18Â
End SubÂ
Private Sub optfb_Click()Â
    lbltaux.Caption = 0.268Â
End SubÂ
Private Sub optfr_Click()Â
    lbltaux.Caption = 1.56Â
End SubÂ
Private Sub optusa_Click()Â
    lbltaux.Caption = 10.89Â
End SubÂ
NB : Utiliser le point comme séparateur décimal dans le code.Â
2éme  méthodeÂ
Dim taux as integerÂ
Private Sub cmdchanger_Click()Â
    lblmontant.Caption = Val() * tauxÂ
End SubÂ
Private Sub optcan_Click()Â
   lbltaux.Caption = 7.18Â
   taux = 7.18Â
End SubÂ
Private Sub optfb_Click()Â
   lbltaux.Caption = 0.268Â
   taux = 0.268Â
End SubÂ
Private Sub optfr_Click()Â
   lbltaux.Caption = 1.56Â
   taux = 1.56Â
End SubÂ
Private Sub optusa_Click()Â
   lbltaux.Caption = 10.89Â
   taux = 10.89Â
End SubÂ
Cette méthode vous oblige à  déclarer la variable taux comme variable général (Voir Page N°…..) Â
18/74Â
Test entre 2 valeursÂ
Private Sub cmdivis_Click()Â
   If Val() = 0 ThenÂ
   MsgBox "Division impossible par Zéro"Â
   Text4.SelStart = 0Â
   Text4.SelLength = Len()Â
   ElseÂ
  lblresultat.Caption = Val() / Val()Â
  lblresultat.Caption = Format(lblresultat.Caption, "00.00")Â
   End IfÂ
End SubÂ
Private Sub cmdmoins_Click()Â
  lblresultat.Caption = Val() - Val()Â
End SubÂ
Private Sub cmdmult_Click()Â
  lblresultat.Caption = Val() * Val()Â
End SubÂ
Private Sub CMDPLUS_Click()Â
lblresultat.Caption = Val() + Val()Â
End SubÂ
Private Sub Command1_Click()Â
   If Val() > Val() ThenÂ
    lblres.Caption = "A>B"Â
   ElseIf Val() = Val() ThenÂ
    lblres.Caption = "A=B"Â
   ElseÂ
    lblres.Caption = "A<B"Â
   End IfÂ
End SubÂ
19/74Â
Application N°4Â
Private Sub chkgras_Click()Â
   If (chkgras.Value = vbChecked) ThenÂ
      = TrueÂ
   ElseÂ
      = FalseÂ
   End IfÂ
End SubÂ
Private Sub chkitalique_Click()Â
   If (chkitalique.Value = vbChecked) ThenÂ
     .Italic = TrueÂ
   ElseÂ
     .Italic = FalseÂ
   End IfÂ
End SubÂ
Private Sub chksou_Click()Â
   If (chksou.Value = vbChecked) ThenÂ
     .Underline = TrueÂ
   ElseÂ
     .Underline = FalseÂ
   End IfÂ
End SubÂ
Private Sub opt12_Click()Â
Text1.FontSize = 12Â
End SubÂ
Private Sub opt20_Click()Â
Text1.FontSize = 20Â
End SubÂ
Private Sub opt40_Click()Â
Text1.FontSize = 40Â
End SubÂ
20/74Â
Private Sub optblue_Click()Â
   Text1.ForeColor = vbBlueÂ
End SubÂ
Private Sub optnoir_Click()Â
   Text1.ForeColor = vbBlackÂ
End SubÂ
Private Sub optrouge_Click()Â
   Text1.ForeColor = vbRedÂ
End SubÂ
21/74Â
Gestion de mot de passeÂ
CommnadButtonÂ
TextBoxÂ
B Modifiez l’icône de l’application :Â
Des icônes supplémentaires sont installés avec Visual BasicÂ
dans le dossier :  C:\Program Files\Microsoft VisualÂ
Studio\COMMON\Graphics\Icons.Â
C Désactivez l’affichage des boutonsÂ
  :Â
D  Ajoutez une deuxième feuille à  votre projet :Â
22/74Â
Normalement, dans, l’Explorateur de Projets (Ctrl + r) vous devez avoir un seul projet contenant deuxÂ
feuilles :Â
E Ajoutez les propriétés suivantes :Â
ObjetsÂ
PropriétéÂ
ValeurÂ
NameÂ
cmdvalidÂ
Command1Â
CaptionÂ
ValiderÂ
NameÂ
txtpasswordÂ
TextÂ
Cette propriété doit rester videÂ
Text1Â
PasswordCharÂ
*Â
MaxlenghtÂ
10Â
 NB : Â
§Â
La propriété PasswordChar permet de masquer les caractères tapés par l’utilisateur par celui défini Â
(Dans notre cas la zone de texte n’affichera que des étoiles). Â
§Â
La propriété Maxlenght impose une langueur maximale pour les caractères saisis.Â
F: Construisez le code de votre applicationÂ
23/74Â
Private Sub cmdValid_Click()Â
       If  = "" ThenÂ
          MsgBox "Veuillez saisir un mot de passe", vbOKOnly, "Reéssayer"Â
      ElseIf UCase() = "BEST" ThenÂ
          Unload Form1Â
      ElseIf MsgBox("Mot de passe Incorrect", vbRetryCancel + vbCritical, "Accés refusé") = vbRetry ThenÂ
          txtpassword.SetFocusÂ
          txtpassword.SelStart = 0Â
          txtpassword.SelLength = Len()Â
      ElseÂ
          EndÂ
      End IfÂ
End SubÂ
La propriété UCase permet de convertir toutes les lettres minuscules en majuscules.Â
Application N°8 : Les variablesÂ
Réalisez le code de la facture suivante : Â
Règles commerciales : Â
Le montant Hors taxe = quantité * PrixÂ
Le montant de la remise = Le montant Hors taxe * Taux de remiseÂ
Le net commercial = Le montant Hors taxe - Le montant de la remiseÂ
Le montant TVA = Le net commercial * taux TVAÂ
Le montant TTC = Le net commercial + Le montant TVAÂ
-----------------------Â
Dim remise, tvaÂ
Private Sub tauxR5_Click()Â
Private Sub calculer_Click()Â
   remise = 0.05Â
   labmtht = txtQ * txtprixuniÂ
End SubÂ
   labmtremise = labmtht * remiseÂ
   labnetcom = labmtht - labmtremiseÂ
Private Sub tauxtva14_Click()Â
   labmttva = labnetcom * tvaÂ
   tva = 0.14Â
   labmtttc = labnetcom + labmttvaÂ
End SubÂ
End SubÂ
Private Sub tauxtva20_Click()Â
Private Sub tauxR0_Click()Â
   tva = 0.2Â
   remise = 0Â
End SubÂ
End SubÂ
Private Sub tauxR10_Click()Â
Private Sub tauxtva7_Click()Â
   remise = 0.1Â
   tva = 0.07Â
End SubÂ
End SubÂ
25Â
5éme exemple (Les ListBox)Â
Etablir un programme qui permet de contrôler l'ajout vers une zone de ListeÂ
(Zone de texte) txtprdÂ
cmdajouterÂ
cmdrechercherÂ
(listBox)lstprdÂ
cmdsupprimerÂ
Timer1Â
cmdeffacerÂ
cmdquitterÂ
(Label)lbltotalÂ
Private Sub cmdajout_Click()Â
Dim i, nbv As IntegerÂ
nbv = lstprd.ListCountÂ
If nbv > 0 ThenÂ
  For i = 0 To nbv - 1Â
    lstprd.Selected(i) = TrueÂ
    If UCase() = UCase() ThenÂ
      MsgBox "Produits existe déja !!!", 48, "attention"Â
      = ""Â
      txtprd.SetFocusÂ
      Exit SubÂ
    End IfÂ
  NextÂ
End IfÂ
  lstprd.AddItem Trim()Â
  = ""Â
  txtprd.SetFocusÂ
End SubÂ
Private Sub cmdeffacer_Click()Â
  If MsgBox("Etes vous sur de vouloir tout Effacer ", vbYesNo,"Confirmer")= _  Â
vbYes ThenÂ
  lstprd.ClearÂ
  End IfÂ
  txtprd.SetFocusÂ
End SubÂ
Private Sub cmdsupprimer_Click()Â
  If lstprd.ListCount = 0 ThenÂ
    MsgBox "la list est vide", vbOKOnly, "Supprimer"Â
  ElseIf lstprd.ListIndex = -1 ThenÂ
    MsgBox "vous devez selectionner un element de la liste"Â
  ElseÂ
    lstprd.RemoveItem lstprd.ListIndexÂ
  End IfÂ
End SubÂ
Page 26 / 74Â
Private Sub cmdfin_Click()Â
  If MsgBox("Etes vous sur de vouloir fermer", vbYesNo, "Quitter")= vbYes ThenÂ
    EndÂ
  End IfÂ
End SubÂ
Private Sub Timer1_Timer()Â
  lbltotal.Caption = lstprd.ListCountÂ
End SubÂ
Private Sub txtprd_Change()Â
  If Len(Trim()) = 0 ThenÂ
    cmdajout.Enabled = FalseÂ
  ElseÂ
    cmdajout.Enabled = TrueÂ
  End IfÂ
End SubÂ
Private Sub cmdrechercher_Click()Â
  Dim produit As StringÂ
  Dim i, nbprd As IntegerÂ
  produit = InputBox("Entrez le nom du produit", "Rechercher")Â
  nbprd = lstprd.ListCountÂ
  For i = 0 To nbprd - 1Â
    lstprd.Selected(i) = TrueÂ
    If UCase() = UCase(produit) ThenÂ
    MsgBox "Le produit a été trouvé", 64, "Fin de la recherche"Â
    Exit SubÂ
    End IfÂ
  NextÂ
  MsgBox "Produit non trouvé", 64, "Fin de la recherche"Â
End SubÂ
Page 27 / 74Â
 6éme exemple (Application mot de passe)Â
Private Sub cmdValid_Click()Â
    If = "" ThenÂ
      MsgBox "Veuillez saisir un mot de passe", vbOKOnly, "Reéssayer"Â
    ElseIf UCase() = "BEST" ThenÂ
      Unload Form1Â
    ElseIf MsgBox("Mot de passe Incorrect", vbRetryCancel + vbCritical, "AccésÂ
refusé") = vbRetry ThenÂ
      txtpassword.SelStart = 0Â
      txtpassword.SelLength = Len()Â
    ElseÂ
      EndÂ
    End IfÂ
End SubÂ
Private Sub Form_Activate()Â
    txtpassword.SetFocusÂ
End SubÂ
2éme méthode (Limiter le nombre d'essai a 3)Â
Dim iÂ
Private Sub Command1_Click()Â
Do While i < 3Â
  If <> "123" ThenÂ
    i = i + 1Â
    txtpassword.SetFocusÂ
    = ""Â
    MsgBox "essai N° " & iÂ
    Exit SubÂ
  ElseÂ
    Exit SubÂ
  End IfÂ
LoopÂ
MsgBox "Dernier essai ..!!!,"Â
MsgBox "Au revoir"Â
EndÂ
End SubÂ
Page 28 / 74Â
Les fonctions Â
Private Sub cmdresultat_Click()Â
If optoperation(0).Value ThenÂ
   lblresultat.Caption = Val(txtop1) + Val(txtop2)Â
ElseIf optoperation(1).Value ThenÂ
     lblresultat.Caption = Val(txtop1) - Val(txtop2)Â
ElseIf optoperation(2).Value ThenÂ
       lblresultat.Caption = txtop1 * txtop2Â
ElseIf  = 0 ThenÂ
         MsgBox "Division par 0 impossible", 16, "Erreur"Â
         lblresultat.Caption = ""Â
ElseÂ
       lblresultat.Caption =  / Â
 End IfÂ
End SubÂ
Private Function Controle_saisie(KeyAscii As Integer) As IntegerÂ
If (KeyAscii < 48 Or KeyAscii > 57) And KeyAscii <> 8 And KeyAscii <> 46 ThenÂ
   Controle_saisie = 0Â
ElseÂ
   Controle_saisie = KeyAsciiÂ
End IfÂ
End FunctionÂ
Private Sub txtop1_KeyPress(KeyAscii As Integer)Â
KeyAscii = Controle_saisie(KeyAscii)Â
End SubÂ
Private Sub txtop2_KeyPress(KeyAscii As Integer)Â
KeyAscii = Controle_saisie(KeyAscii)Â
End SubÂ
Page 29 / 74Â
7éme exemple (Gestion des polices)Â
txtailleÂ
txtstyleÂ
txtpoliceÂ
lstpoliceÂ
ox
lststyleÂ
i
s
t
b
lstailleÂ
L
chksouÂ
txtphÂ
chkbarrÂ
optgaucheÂ
Private Sub chkbarr_Click()Â
  If .Strikethrough = True ThenÂ
    .Strikethrough = FalseÂ
  ElseÂ
    .Strikethrough = TrueÂ
  End IfÂ
End SubÂ
Private Sub chksou_Click()Â
  If .Underline = True ThenÂ
    .Underline = FalseÂ
  ElseÂ
    .Underline = TrueÂ
  End IfÂ
End SubÂ
Private Sub cmdclose_Click()Â
Unload MeÂ
EndÂ
End SubÂ
Private Sub Form_Load()Â
Dim i, jÂ
  For i = 0 To Screen.FontCount - 1Â
    lstpolice.AddItem Screen.Fonts(i)Â
  NextÂ
  For j = 8 To 100Â
  lstaille.AddItem jÂ
  NextÂ
End SubÂ
Private Sub lstaille_Click()Â
  = Val()Â
  = Â
End SubÂ
Private Sub lstpolice_Click()Â
  = Â
  = Â
End SubÂ
Private Sub lststyle_Click()Â
  Dim styleÂ
  style = lststyle.ListIndexÂ
  Select Case styleÂ
  Case 0Â
    = FalseÂ
Page 30 / 74Â
    .Italic = FalseÂ
  Case 1Â
    = TrueÂ
    .Italic = FalseÂ
  Case 2Â
    = FalseÂ
    .Italic = TrueÂ
  Case ElseÂ
    = TrueÂ
    .Italic = TrueÂ
  End SelectÂ
  = Â
End SubÂ
Private Sub optcenter_Click()Â
txtph.Alignment = vbCenterÂ
End SubÂ
Private Sub optdroite_Click()Â
txtph.Alignment = vbRightJustifyÂ
End SubÂ
Private Sub optgauche_Click()Â
txtph.Alignment = vbLeftJustifyÂ
End SubÂ
NB:Â
Affectez à  la zone de texte txtph les propriétes suivantes :Â
Multuline =TrueÂ
Scrollbars = 2-VerticallÂ
Page 31 / 74Â
Facture pour comptabiliserÂ
TextBox(HT)Â
ListBox(TTC)Â
CommandButton(ajouter)Â
Private Sub ajouter_Click()Â
If  = "" ThenÂ
MsgBox ("Attention, vous devrez insérer un prix")Â
ElseÂ
initialiser.Enabled = True 'activer le bouton InitialiserÂ
If tva0.Value = True ThenÂ
    detail.Enabled = TrueÂ
    TTC.AddItem (Str(Val()))Â
ElseIf tva7.Value = True ThenÂ
    detail.Enabled = TrueÂ
    TTC.AddItem (Str(Val() * 1.07))Â
ElseIf tva20.Value = True ThenÂ
    detail.Enabled = TrueÂ
    TTC.AddItem (Str(Val() * 1.2))Â
ElseIf tva14.Value = True ThenÂ
    detail.Enabled = TrueÂ
    TTC.AddItem (Str(Val() * 1.14))Â
Else 'si aucun bouton n'est activéÂ
    MsgBox ("Attention, vous devez choisir le taux de TVA")Â
End IfÂ
 = ""Â
ht.SetFocusÂ
End IfÂ
End SubÂ
Private Sub detail_Click()Â
Dim i As IntegerÂ
Dim sum As SingleÂ
Dim moyenneÂ
sum = 0Â
For i = 0 To TTC.ListCount - 1 'parcourir les éléments de la listeÂ
Page 32 / 74Â
sum = sum + Val((i))Â
Next iÂ
moyenne = sum / TTC.ListCountÂ
MsgBox ("Le nombre d'articles est " & TTC.ListCount & "; la montant total à  payer est " & sum)Â
sauvegarder.Enabled = TrueÂ
End SubÂ
Private Sub ht_Change()Â
ajouter.Enabled = TrueÂ
End SubÂ
Private Sub initialiser_Click()Â
TTC.ClearÂ
detail.Enabled = FalseÂ
sauvegarder.Enabled = FalseÂ
End SubÂ
Private Sub quitter_Click()Â
EndÂ
End SubÂ
Private Sub sauvegarder_Click()Â
Dim i As IntegerÂ
Open "c:\facture" For Output As #1Â
For i = 0 To TTC.ListCount - 1Â
Print #1, (i)Â
Next iÂ
CloseÂ
End SubÂ
Page 33 / 74Â
Contrôler la saisie dans une zone de texteÂ
1.Â
Private Sub Text1_LostFocus()Â
  If IsNumeric() = False ThenÂ
  MsgBox "Erreur de saisie" & vbLf & "Seulement numérique"Â
  Text1.SetFocusÂ
  = ""Â
  End IfÂ
End SubÂ
NBÂ :Â
VbLf Ou Chr (10) : Caractère de saut de ligneÂ
2.Â
Private Sub Text1_LostFocus()Â
  If IsDate() = False ThenÂ
  MsgBox "Erreur de saisie" & vbLf & "Seulement Date"Â
  Text1.SetFocusÂ
  = ""Â
  End IfÂ
End SubÂ
NBÂ :Â
La fonction IsDate renvoie la valeur True si l'expression est une date ou peut être reconnue en tant que date ; sinon elleÂ
renvoie la valeur False.Â
3.Â
Private Sub Text1_KeyPress(KeyAscii As Integer)Â
  If (KeyAscii < 48 Or KeyAscii > 57) And (KeyAscii <> 8) ThenÂ
  KeyAscii = 0Â
  End IfÂ
End SubÂ
NBÂ :Â
Chaque caractère est associé à  un code compris entre 0 et 255 (on appelle code ascii)Â
Exercice :Â
Ecrire un programme qui permet de limiter la saisie dans une zone de texte aux touches alphabétiques.Â
Exécuter une application Windows a partir du VBÂ
Utiliser la fonction Shell…Â
Exemple :Â
Shell "c:\Program files\Microsoft office\office\", vbNormalFocusÂ
Exercice :Â
Ecrire un programme qui permet d’ouvrir les programmes suivants :Â
–Â
PaintÂ
–Â
CalculatriceÂ
–Â
Le Bloc noteÂ
–Â
Les jeux de WindowsÂ
Page 34 / 74Â
Se déplacer avec les touches de directionÂ
Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)Â
   If KeyCode = vbKeyDown ThenÂ
   Text2.SetFocusÂ
   End IfÂ
End SubÂ
Private Sub Text2_KeyDown(KeyCode As Integer, Shift As Integer)Â
   If KeyCode = vbKeyUp ThenÂ
   Text1.SetFocusÂ
   ElseIf KeyCode = vbKeyDown ThenÂ
   Text3.SetFocusÂ
   End IfÂ
End SubÂ
Private Sub Text3_KeyDown(KeyCode As Integer, Shift As Integer)Â
   If KeyCode = vbKeyUp ThenÂ
   Text2.SetFocusÂ
   End IfÂ
End SubÂ
Page 35 / 74Â
Utilisation de la fonction FormatÂ
Private Sub Command1_Click()Â
   Dim Today As VariantÂ
   Today = NowÂ
   lblDay.Caption = Format(Today, "dddd")Â
   lblMonth.Caption = Format(Today, "mmmm")Â
   lblYear.Caption = Format(Today, "yyyy")Â
   lblnumber.Caption = Format(Today, "d")Â
   lblTime.Caption = Format(Today, "h:mm:ss ampm")Â
End SubÂ
Page 36 / 74Â
Bon, on vaÂ
commencerÂ
Calcul Salaire hebdomadaire
un exerciceÂ
Une entreprise qui emploi des salariés à  l’heure, les paie chaque semaine suivant un taux horaireÂ
auquel on applique un coefficient K donnée par :Â
39 premières heures  Â
K=Â 1Â
de la 40éme à  la 44 heure Â
K=Â 1,2Â
De la 45éme à  la 49 heureÂ
K=Â 1,5Â
Après la 49éme heureÂ
K=Â 1,8Â
Travail à  faire :Â
Déterminer à partir d’un volume horaire, le salaire de la semaine.Â
Page 37 / 74Â
Utilisation de l’événement MouseDownÂ
Exemple 1 :Â
Ce programme illustre la façon de concevoir des programmesÂ
permettant à  l’utilisateur de déplacer des objets dans la fenêtre duÂ
programme à  l’aide de la souris.Â
Page 38 / 74Â
Exemple 2 :Â
Ce programme utilise l’événement MouseDown .Â
La procédure Form_MouseDown est exécutée désÂ
que pressez le bouton de la souris, avant même queÂ
vous ne le relâchiez.Â
Page 39 / 74Â
CUMUL de Chiffres   1 + 2 + 3 + nÂ
Etape 1Â
Page 40 / 74Â
Scrol Bar :Â
Partie influencée par VSBxyz_CHANGE
Partie influencée par VSBxyz_SCROLL
Page 41 / 74Â
Gestion HôtelÂ
Dim prix As IntegerÂ
Private Sub cmdcalculer_Click()Â
Dim nbj, divers, a, de, mtduÂ
a = CDate()Â
de = CDate()Â
nbj = a - deÂ
divers = Val()Â
mtdu = (nbj * prix) + diversÂ
lblnbj.Caption = nbjÂ
lblmtdu.Caption = mtduÂ
End SubÂ
Private Sub Form_Load()Â
lbldate.Caption = "Facture du: " & DateÂ
End SubÂ
Private Sub optdouble_Click()Â
prix = 220Â
End SubÂ
Private Sub optdup_Click()Â
prix = 350Â
End SubÂ
Private Sub optsimple_Click()Â
Page 42 / 74Â
prix = 180Â
End SubÂ
Private Sub txta_LostFocus()Â
    If Not IsDate() ThenÂ
       = ""Â
      txta.SetFocusÂ
    ElseÂ
        If CDate() < CDate() ThenÂ
        MsgBox "La date saisie est inferieur à  la date d'entrée", vbExclamation, "Date incorrect"Â
         = ""Â
        txta.SetFocusÂ
        End IfÂ
    End IfÂ
End SubÂ
Private Sub txtde_GotFocus()Â
Dim debutÂ
debut = InputBox("Entrez la date debut", "Saisie des données")Â
 = debutÂ
End SubÂ
Private Sub txtde_LostFocus()Â
    If Not IsDate() ThenÂ
       = ""Â
      txtde.SetFocusÂ
    End IfÂ
End SubÂ
Private Sub txtdivers_KeyPress(KeyAscii As Integer)Â
If Not IsNumeric(KeyPress) ThenÂ
 = ""Â
txtdivers.SetFocusÂ
End IfÂ
End SubÂ
Page 43 / 74Â
Utiliser le contrôle MaskedEditÂ
On va changer laÂ
zone de texte parÂ
un nouveauÂ
composantÂ
MaskedEditÂ
Pour l’insérer Â
Page 44 / 74Â
Le contrôle d'édition Masked (MaskedEdit) permet d'inviter les utilisateurs à  entrer desÂ
données à  l'aide d'un modèle de masque.Â
 Vous pouvez également l'utiliser pour dema nder l'entrée de dates, de devises et d'heure,Â
ou pour convertir des données entrées en ma juscules ou minuscules. Â
Page 45 / 74Â
9éme exemple en VB(Le visionneur d’image)Â
lblimageÂ
Shape1Â
dirimageÂ
imgimageÂ
Line1Â
filimageÂ
drvimageÂ
cmdendÂ
cmdshowÂ
Private Sub drvImage_Change()Â
  On Error GoTo testerrÂ
  = drvimage.DriveÂ
  Exit SubÂ
testerr:Â
  MsgBox "Le lecteur n'est pas prêt"Â
  drvimage.Drive = "c:"Â
  Resume NextÂ
End SubÂ
Private Sub dirImage_Change()Â
  = Â
End SubÂ
Private Sub cmdShow_Click()Â
  Dim ImageName As StringÂ
  If Right(, 1) = "\" ThenÂ
    ImageName = + filImage.FileNameÂ
  ElseÂ
    ImageName = + "\" + filImage.FileNameÂ
  End IfÂ
  lblimage.Caption = ImageNameÂ
  imgimage.Picture = LoadPicture(ImageName)Â
End SubÂ
Private Sub filImage_DblClick()Â
Call cmdShow_ClickÂ
End SubÂ
Shape1:Â
BackColor Â
:CyanÂ
BackStyle Â
:1-OpaqueÂ
FillColor Â
:BlueÂ
FillStyle Â
:4-Upward DiagonalÂ
Shape Â
:4-Rounded RectangleÂ
File1:Â
Name Â
:filImageÂ
Pattern Â
:*.bmp;*.ico;*.wmf;*gif;*jpg (Sans espaces)Â
Line1:Â
BorderWidth   3Â
Page 46 / 74Â
Exemple N°12 (CommonDialog; ScrollBar)Â
VScrollBarÂ
Option ExplicitÂ
Dim Mois(12) As StringÂ
Dim filiere As StringÂ
Private Sub cmdinfo_Click()Â
  Dim Msg As String, Age As Integer, prenom As StringÂ
  Dim M As Integer, D As Integer, Y As IntegerÂ
  M = Val(Format(Now, "mm"))Â
  D = Val(Format(Now, "dd"))Â
  Y = Val(Format(Now, "yyyy"))Â
  Age = Y - vsbyearÂ
  If vsbmois.Value > M Or (vsbmois.Value = M And vsbjour > D) Then Age = Age - 1Â
  'tester si la date est valideÂ
  If Age < 0 ThenÂ
    MsgBox "La Date de naissance doit être avant la date actuelle .", vbOKOnly +Â
vbCritical, "Invalide Date"Â
    Exit SubÂ
  End IfÂ
  'tester si le nom a été rempliÂ
  If = "" ThenÂ
    MsgBox "Vous devez saisir un nom.", vbOKOnly + vbCritical, "Entrez un nom"Â
    Exit SubÂ
  End IfÂ
  Msg = + " poursuit ses études dans la filiére " + filiere + vbLfÂ
  If optsex(0).Value = True Then prenom = "Il " Else prenom = "Elle "Â
  Msg = Msg + prenom + " a" + Str(Age) + " ans." + vbLfÂ
  MsgBox Msg, vbOKOnly, "Profile Etudiant"Â
End SubÂ
Private Sub Form_Load()Â
Mois(1) = "Janvier"Â
Mois(2) = "Février"Â
Mois(3) = "Mars"Â
Mois(4) = "Avril"Â
Mois(5) = "Mai"Â
Mois(6) = "Juin"Â
Page 47 / 74Â
Mois(7) = "Juillet"Â
Mois(8) = "Août"Â
Mois(9) = "Septembre"Â
Mois(10) = "Octobre"Â
Mois(11) = "Novembre"Â
Mois(12) = "Decembre"Â
lbljour.Caption = Str(vsbjour.Value)Â
lblmois.Caption = Mois(vsbmois.Value)Â
lblyear.Caption = Str(vsbyear.Value)Â
End SubÂ
Private Sub optfil_Click(Index As Integer)Â
  Select Case IndexÂ
  Case 0Â
  filiere = "Technicien Specialisé"Â
  Case 1Â
  filiere = "Secretaire de Direction"Â
  Case 2Â
  filiere = "Devellopement"Â
  Case 3Â
  filiere = "Réseaux"Â
  End SelectÂ
End SubÂ
Définissez les propriétés suivantes pour les différentes barres de défilement:Â
VScrollBar vsbYear:Â
VScrollBar vsbjour:Â
VScrollBar vsbMois:Â
Max = 1900Â
Max = 1Â
Max = 1Â
Min = 2100Â
Min = 31Â
Min = 12Â
Value = 1960Â
Value = 1Â
Value = 1Â
Private Sub vsbjour_Change()Â
lbljour.Caption = Str(vsbjour.Value)Â
End SubÂ
Private Sub vsbmois_Change()Â
lblmois.Caption = Mois(vsbmois.Value)Â
End SubÂ
Private Sub vsbYear_Change()Â
lblyear.Caption = Str(vsbyear.Value)Â
End SubÂ
Private Sub cmdnouveau_Click()Â
  = ""Â
  imgeleve.Picture = LoadPicture("")Â
End SubÂ
Il faut ajouter le contrôle CommonDialog dans votre boîte à  outils. Pour ce faire, placer votre souris sur la boîte à  outils etÂ
cliquez sur le bouton droit. Ensuite, choisissez la commande "Composants". Une liste de tous les contrôles apparaît alors.Â
Celui qui nous intéresse ici, c'est le contrôle CommonDialog. Cochez la case du contrôle Microsoft Common Dialog ControlÂ
6.0  et appuyez sur le bouton Appliquer. Le contrôle CommonDialog va alors apparaître sur votre boîte à  outils. A présent,Â
vous pouvez l'utilisez dans vos applications. Â
CommonDialog cdlBox:Â
Filter = Bitmap(*.bmp)|*.bmp|Images Gif(*.gif)|*.gif|Images Jpeg(*.jpg)|*.jpgÂ
Private Sub cmdcharger_Click()Â
cdlbox.ShowOpenÂ
imgeleve.Picture = LoadPicture(cdlbox.FileName)Â
End SubÂ
Private Sub cmdend_Click()Â
  EndÂ
End SubÂ
Page 48 / 74Â
Cours 9 : Accès aux fichiersÂ
Il existe trois modes d'accès aux fichiers dans Visual Basic 6 :Â
1.  Les fichiers à  accès séquentiel ne peuvent ouvrir que des fichiers avec un contenu textuel. Â
2.  Les fichiers à  accès direct sont formés en général de plusieurs enregistrements de longueurÂ
fixe. Â
3.  Les fichiers binaires sont tous les fichiers avec un contenu graphique. Â
1. Les fichiers à  accès séquentielÂ
Il existe trois manières d'ouvrir un fichier texte : Â
1.  La 1ère manière est l'ouverture d'un fichier uniquement en lecture à  l'aide de l'instruction Input. Â
2.  La 2ème manière est l'ouverture d'un fichier uniquement en écriture à  l'aide de l'instructionÂ
Output. Â
3.  La dernière manière est l'ouverture d'un ficher en écriture aussi mais à  la seule différence de laÂ
précédente manière, les nouvelles données sont entrées à  la suite de l'enregistrementÂ
précédent. Pour cela, on utilise l'instruction Append. Â
Multiline  TrueÂ
Private Sub ouvrir_Click()Â
On Error Resume NextÂ
Open "C:\" For Input As #1Â
retour = Chr$(13) + Chr$(10)Â
Line Input #1, texteÂ
tout = texteÂ
If Len(tout) <> 0 ThenÂ
While Not EOF(1)Â
Line Input #1, texteÂ
tout = tout + retour + texteÂ
WendÂ
End IfÂ
=toutÂ
Close #1Â
End Sub Â
Explication :Â
Page 49 / 74Â
·  L'instruction On error Resume Next permet d'ignorer toute erreur que peut entraîner cetteÂ
procédure. Â
·  L'instruction Open "C:\" For Input As #1 permet d'ouvrir le fichier "note" situé sur leÂ
bureau. Lorsque l'application est exécutée pour la première fois, une erreur 53 devraitÂ
apparaître car le fichier "note" n'existe pas encore. Mais grâce à  l'instruction On Error ResumeÂ
Next, cette erreur sera tout simplement ignorée. Â
·  L'instruction retour = Chr(13)$ + Chr(10)$ permet à  la ligne suivante. Le code ASCII 13Â
correspond au "retour chariot", c'est-à -dire de revenir à  gauche du texte et 10 au "passage à  laÂ
ligne", c'est-à -dire d'aller à  la ligne suivante. Â
·  L'instruction Line Input permet de placer dans la variable "texte" le contenu de la première ligneÂ
du fichier "". Â
·  Ensuite, le contenu de la variable "texte" est à  son tour, affecté à  la variable "tout". Â
·  Le test avec l'instruction If permet de vérifier que le fichier "" n'est pas vide à  l'aide deÂ
la fonction Len qui compte le nombre de lettres ou tout autre symbole contenu dans la variableÂ
"tout". Si le nombre de lettres est différent de zéro alors, les instructions à  l'intérieur du testÂ
sont exécutés. Â
·  La boucle avec While permet de parcourir tout le fichier à  la recherche d'éventuelles autresÂ
lignes que la première. La fonction EOF permet de savoir si l'on arrive à  la fin du fichier ouvert.Â
Cette boucle est donc exécutée jusqu'à  ce que tout le contenu du fichier soit placé dans laÂ
variable tout. Les chaînes de caractères affectées à  la variable "tout" sont concaténéesÂ
(concaténées = ajoutées) aux précédentes contenues dans la variable. La variable "retour"Â
provoque un retour à  la ligne à  chaque fois que cela est nécessaire. Â
·  Lorsque tout le contenu du fichier sera affecté à  la variable "tout", cette dernière sera à  son tourÂ
affectée à  la propriété Text du contrôle TextBox. Ce qui provoquera l'affichage du contenu duÂ
fichier dans le contrôle TextBox. Â
·  L'instruction Close ferme le fichier ouvert en lecture. Â
Écrivons maintenant la portion de code correspondant au bouton "Sauvegarder" :Â
Private Sub Sauvegarder_Click()Â
Open "C:\Windows\Bureau\" For Output As #1Â
Print #1, Â
Close #1Â
End Sub Â
Explication :Â
·  L'instruction Open "C:\Windows\Bureau\" For Output As #1 ouvre le fichier ""Â
en écriture. Â
·  Le contenu de la zone de texte "Text1" est ensuite copié dans le fichier à  l'aide de l'instructionÂ
Print. Â
·  Enfin, le fichier est fermé à  l'aide de l'instruction Close. Â
Passons à  l'écriture de la procédure concernant le bouton "Effacer" : Â
Private Sub Effacer_Click()Â
 = ""Â
Text1.SetFocusÂ
End Sub Â
Page 50 / 74Â
24 .Utiliser le contrôle DATAÂ
Le programme DATA permet à  votre programme d’avoir accès à  des bases de données externes, deÂ
type Microsoft Access, bBase, FoxPro…Â
Etape 1Â
Dans Access, créer la base de données suivante :  qui contient la table Clients :Â
Etape 2Â
Convertir cette  BDD vers le format Access 97 : cette étape est nécessaire  Â
Choisissez Le menu Â
·  OutilsÂ
·  Utilitaire de base de donnéesÂ
·  Convertir une base de données Â
·  Vers le format de fichiers Access 97Â
·  Sauvegarder la BDD sous le nom : essai97
Etape 3Â
Dans Visual Basic, Insérez le contrôle DATA :Â
Page 51 / 74Â
Construisez l’interface suivante :Â
Etape 4Â
Spécifiez la propriété Connect versÂ
Access
Choisissez ensuite pour la propriétéÂ
DatabaseName la BDD créer en haut :Â
essai97
Pour la propriété RecordSource,Â
Choisissez la table Clients
Etape 5Â
On va maintenant afficher les données de la table Clients dans les zones de texte déjà  crée :Â
Page 52 / 74Â
Pour chaque zone de texte vous devez spécifier ces deux propriétés   :Â
DataField permet de choisir quel champ de la table clients sera affiché dans chaque zone de texte.Â
Etape 6Â
Exécutez votre application :Â
Aller vers le dernierÂ
Aller vers le premierÂ
Aller vers le précèdentÂ
Aller vers le suivantÂ
Etape 7Â
Le contrôle Microsoft FlexGrid (MSFlexGrid) affiche et opère sur des données placées dans desÂ
tableaux.Â
Lorsque ce contrôle est lié à  un contrôle Data, il affiche les données en lecture seule.Â
Si le texte placé dans une cellule est trop long pour y être affiché entièrement et que la propriétéÂ
WordWrap est définie sur True, le texte passe à  la ligne suivante dans la même cellule.Â
Page 53 / 74Â
Dans la boite à  outils vous verrez le composant suivant : Â
Insérez le contrôle MSFlexGridÂ
dans la feuille et ajustez saÂ
propriété :Â
A l’exécution vous obtiendrez ceci :Â
Page 54 / 74Â
Page 55 / 74Â
Création de contrôles ActiveXÂ
La première chose qui nous faut réaliser c'est donc de créer le projet qui va contenir notre (ou nos)Â
contrôle(s). Par défaut, quand vous lancez Visual Basic, une boîte de dialogue apparaît et vous proposeÂ
plusieurs modèles de projets. Si ce n'est pas le cas, cliquez dans le menu "Fichier" sur "NouveauÂ
Projet". La capture d'écran suivante montre cette boîte de dialogue. Â
Le modèle de projet qui nous intéresse est donc le projet de contrôle ActiveX. Cliquez sur ouvrir aprèsÂ
l'avoir choisit. Dans une certaine mesure, ce type de projet ressemble à  un projet de type "ExeÂ
Standard". En effet, vous allez pouvoir éditer votre contrôle via deux outils : le concepteur visuel etÂ
l'éditeur de code. Mais une différence apparaît malgré tout : dans le concepteur graphique, votreÂ
contrôle n'a pas de détourage autour de sa zone visuel comme l'aurait une feuille. Cela est normal :Â
l'objectif du contrôle c'est d'être utilisé sur une feuille. Â
Vous pouvez ensuite remplir l'espace de votre contrôle avec des sous-contrôles. La partie visuelle deÂ
notre contrôle va contenir : un contrôle de type Frame , et Label (placé dans le Frame) pour afficherÂ
l'heure et un contrôle Timer pour actualiser régulièrement l'heure dans le Label. NommezÂ
respectivement vos contrôles fraClock, lblClock et tmrClock. Affectez aussi à  la propriété Interval duÂ
Timer la valeur 1000 (l'unité étant la milli-seconde, nous avons donc 1 seconde d'intervalle). Au final,Â
votre contrôle (en mode conception) devrait ressembler à  la capture d'écran suivante. Â
Page 56 / 74Â
Une chose importante est à  ne pas oublier : il faut renommer le projet et le contrôleÂ
Le nom du projet est "Infini" et l'unique contrôle de ce projet est nommé "Clock".Â
Changer la propriété ToolboxBitmap : elle permettra d'afficher l'icône souhaitée lorsque votreÂ
contrôle devra être insérer dans la boîte à  outils.Â
Option ExplicitÂ
'-Mise à jour du label d'affichage de l'heure-----------------------Â
Private Sub tmrSeconds_Timer()Â
  lblClock.Caption = TimeÂ
End SubÂ
'-Code de retaillage de l'horloge-----------------------------------Â
Private Sub UserControl_Resize()Â
  fraClock.Width = UserControl.WidthÂ
  fraClock.Height = UserControl.HeightÂ
  lblClock.Width = UserControl.WidthÂ
  = (UserControl.Height - lblClock.Height) / 2 + 100Â
End SubÂ
'-Initialisation de la valeur du label au premier affichage---------Â
Private Sub UserControl_Show()Â
  tmrSeconds_TimerÂ
End SubÂ
Ajout du projet de testÂ
Nous allons maintenant ajouter un projet secondaire. En effet, Visual Basic gère la notion de groupe deÂ
projet. Pour ce faire, allez dans le menu "Fichier" et cliquez sur "Ajouter un projet". Le type de projet à Â
ajouter est "Exe standard". La capture d'écran suivante montre l'explorateur de projets après l'ajout.Â
Notez aussi que, comme les deux projets font parties du même groupe de projet, l'icône du contrôleÂ
ActiveX apparaît lorsque que vous éditez la feuille du projet de test. Â
A partir de maintenant, vous pouvez poser vos contrôles sur la feuille de testÂ
Page 57 / 74Â
Pour l'heure, votre contrôle ActiveX n'existe pas réellement. Certes, il apparaît dans la boîte à Â
outils, mais cela est fait par ce les deux projets sont intégrés dans le même groupe de projets.Â
Pour pouvoir utiliser votre contrôle dans un autre projet, sans forcément disposer du code source,Â
il vous faut compiler votre code pour générer le fichier ".ocx". Ensuite, il vous faut enregistrerÂ
votre (ou vos) composant(s) dans la base de registre Windows.Â
Tant que vous êtes sur le poste de développement les choses sont plus simples qu'il n'y parait : en effet,Â
le fait de compiler le projet via l'environnement Visual Basic, enregistrement automatiquement leÂ
contrôle dans la base. Si par contre, vous êtes sur une autre machine et que vous n'avez que le fichierÂ
".ocx" à  votre disposition il va falloir réaliser l'enregistrement à  la main, via l'outil "". PourÂ
ce faire, prenez une console, placez-vous dans le répertoire contenant votre fichier ".ocx" et tapez laÂ
command "regsvr32 " (ou  représente le nom de votre fichier). Â
L'outil d'empaquetage et de déploiement fournit avec Visual Basic permet de gérer un programmeÂ
d'installation, qui saura installer les contrôles automatiquement sur le poste client. Il ne sera donc plusÂ
utile de lancer la commande "" manuellement. Â
Page 58 / 74Â
Utliser le contrôle DataÂ
Private Sub cmdAdd_Click()Â
  Data1.Recordset.AddNewÂ
End SubÂ
Private Sub cmdUpdate_Click()Â
  Data1.UpdateRecordÂ
  Data1.Recordset.Bookmark = Data1.Recordset.LastModifiedÂ
End SubÂ
Private Sub cmdClose_Click()Â
  Unload MeÂ
  EndÂ
End SubÂ
Private Sub cmdDelete_Click()Â
  Dim repÂ
  rep = MsgBox("Suppresion", vbYesNo, "Attention")Â
  If rep = vbYes ThenÂ
  Data1.Recordset.DeleteÂ
  precedentÂ
  End IfÂ
End SubÂ
Private Sub cmdfind_Click()Â
  Dim repÂ
  rep = InputBox("Entrer le Code Client recherché")Â
  If rep = "" Then Exit SubÂ
  Data1.Recordset.MoveFirstÂ
  Data1.Recordset.FindFirst "[code client]=" & "'" & rep & "'"Â
  If Data1.Recordset.NoMatch = True ThenÂ
  MsgBox "Le code client " & rep & "n'a pas été trouvé"Â
  End IfÂ
End SubÂ
Private Sub cmdfirst_Click()Â
Page 59 / 74Â
  Data1.Recordset.MoveFirstÂ
End SubÂ
Private Sub cmdlast_Click()Â
  Data1.Recordset.MoveLastÂ
End SubÂ
Private Sub cmdnext_Click()Â
  Data1.Recordset.MoveNextÂ
  If = True ThenÂ
  Data1.Recordset.MoveLastÂ
  End IfÂ
End SubÂ
Private Sub cmdprevious_Click()Â
  precedentÂ
End SubÂ
Private Sub Data1_Reposition()Â
  Data1.Caption = "Enregistrement N° " & Data1.Recordset.AbsolutePosition + 1 & " sur " &Â
Data1.Recordset.RecordCountÂ
End SubÂ
Public Sub precedent()Â
  Data1.Recordset.MovePreviousÂ
  If = True ThenÂ
  Data1.Recordset.MoveFirstÂ
  End IfÂ
End SubÂ
Private Sub Form_Activate()Â
  Data1.Recordset.MoveLastÂ
  Data1.Recordset.MoveFirstÂ
End SubÂ
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)Â
  Dim repÂ
  rep = MsgBox("Etês vous sur de bien vouloir quitter !!!", vbYesNo, "Quitter")Â
  If rep = vbYes ThenÂ
  Cancel = FalseÂ
  ElseÂ
  Cancel = TrueÂ
  End IfÂ
End SubÂ
Page 60 / 74Â
Accéder à  une BDD Access en utilisant DataEnvironnement
Etape 1 : Créer la table CDs dans  la BDD  :Â
Cette BDD ainsi que le projet Visual Basic doivent êtreÂ
sauvegardé dans le même répertoire. Â
Etapes 2 : Passer à  Visual Basic et réalisez l’interface suivante :Â
Le contrôleÂ
DataGridÂ
Le contrôle DataGrid n’apparaît pas par défaut dans la boite à  Outils et il faudra l’insérerÂ
manuellement :Â
Page 61 / 74Â
1.  Affichez la boite à  outils Composant :Â
BÂ
2.  Cochez l’option ci-dessous:Â
CÂ
Etape 3 : Paramétrez les différentes propriétés des contrôles que contient votre feuille.Â
Page 62 / 74Â
ContrôlesÂ
NamesÂ
DataGridÂ
DataGrid1Â
cmdAjouterÂ
cmdsupprimerÂ
txtArtistÂ
txtAlbumÂ
txtTrackÂ
Etape 4 : Ajouter DataEnvironnement :Â
DÂ
Le paramétrage de DataEnvironnement s’effectue en suivant les étapes suivantes : Â
Paramétrer la connexion à  la BDD  :
Page 63 / 74Â
EÂ
Page 64 / 74Â
FÂ
GÂ
Page 65 / 74Â
HÂ
Page 66 / 74Â
IÂ
Sélectionnez  DataGrid1 (Dans Form1) et Attribuez le les propriétés suivantes :Â
Page 67 / 74Â
Remarquez le triÂ
……….Â
Page 68 / 74Â
Page 69 / 74Â
Créer un Data ReportÂ
Insérer le contrôle Data ReportÂ
L’état suivant apparaîtra : Â
Définir les propriétés de cet état :Â
Page 70 / 74Â
DataSource : Correspond à  l’outils choisi pourÂ
se connecter à  votre BDD.Â
DataMember : Correspond à  la table définitÂ
dans dataenvironnement.Â
Glissez les champs que vous voulez afficher vers la section détails :Â
Page 71 / 74Â
Ensuite vous devez : Â
Page 72 / 74Â
Ce contrôle ressemble au contrôle Label.Â
Insérez le et modifiez ses propriétésÂ
Caption  & fonts.Â
Idem que pour le précèdentÂ
Insérez  ce contrôle et modifiez sa propriété :Â
Picture
Caption : Page %p sur %PÂ
DataMember : ProduitsÂ
DataField : Prix unitaireÂ
Il ne vous reste plus que créer un bouton de commande sur une feuille(Form) et d’y ajouter le codeÂ
suivant :Â
Le résultat final :Â
En bas de chaque page :Â
En bas de l’Etat :Â
Page 74 / 74Â