Accueil
Rechercher:
sur developpez.com sur les forums
Forums | Tutoriels | F.A.Q's | Participez | Hébergement | Contacts
Club Emploi Blogs   TV   Dév. Web PHP XML Python Autres 2D-3D-Jeux Sécurité Windows Linux PC Mac
Accueil Conception Java DotNET Visual Basic  C  C++ Delphi MS-Office SQL & SGBD Oracle  4D  Business Intelligence
FORUMS .NET FAQs .NET TUTORIELS .NET SOURCES .NET LIVRES .NET OUTILS .NET BLOG .NET DOTNET TV

Cours complet en Visual Basic.net

Date de publication : 06/10/2007 , Date de mise à jour : 07/10/2007

Par Aspic (autres articles)
 

Cet article constitue un cours complet en vb.net (framework 1.1 et 2.0). Vous trouverez les bases nécessaires pour commencer la programmation en vb.net. Ce cours est avant tout destiné aux débutants mais les amateurs de vb.net sont les bienvenus.

               Version PDF   Version hors-ligne

I. Introduction
I-A. Etes vous apte à commencer à programmer ?
I-B. A la découverte de Visual Basic
I-C. Les inconvénients du Framework
II. Structure du programme
II-A. Présentation des objets
II-B. Instructions et procédures
II-C. Les modules
III. Le langage Visual Basic
III-A. Les variables
III-A-1. Les variables
III-A-2. Les différents types de variables
III-A-3. Convertir des variables
III-A-4. La portée des variables
III-B. Les structures conditionnelles
III-B-1. Avec "If -Then"
III-B-2. Avec "Select Case - End Select"
III-C. Les boucles
III-C-1. Avec "For - Next"
III-C-2. Avec "Do - Loop"
III-C-3. Avec "While - End While"
III-C-4. Avec "For Each - Next"
III-D. Les opérateurs
III-D-1. Les opérateurs d'arithmétique et de concaténation
III-D-2. Les opérateurs de logique
III-D-3. Les opérateurs de comparaison
III-E. Les constantes et énumérations
III-F. Les tableaux
III-G. Les options de codage
IV. L'interface utilisateur
IV-A. Présentation
IV-B. La Form
IV-C. La Console
IV-D. Le Bouton
IV-E. Le Label
IV-F. La Textbox
IV-G. Les cases à cocher
IV-H. La Combobox
IV-I. Les listes
IV-J. La Picturebox
IV-K. La Progressbar
IV-L. Le Tabcontrol
IV-M. Les boîtes de dialogue
V. Le débogage
V-A. Les différents types d'erreurs
V-B. Comment éliminer les bugs ?
VI. La diffusion de l'application
VI-A. Comment créer une installation (Setup) ?
VI-B. Faire connaître son application
VI-C. Créer un raccourci pour votre application
VII. Remerciements et liens intéressants
VII-A. Remerciements
VII-B. Liens intéressants


I. Introduction


I-A. Etes vous apte à commencer à programmer ?

Considérant que vous savez normalement déjà allumer un PC et l'éteindre, utiliser une souris et un clavier de préférence, et que vous êtes motivé pour écrire des programmes en Visual Basic.NET, que ce soit pour le plaisir ou le travail, vous êtes donc prêt à débuter la programmation en VB.NET !

En plus d'un PC, il vous faut un exemplaire de Visual studio.NET. Dans le cas où vous douteriez de vos capacités à apprendre la programmation, souvenez-vous d'Albert Einstein (le célèbre physicien qui a inventé la théorie de la relativité). Un de ses instituteurs avait déclaré qu'il apprenait si lentement qu'il était sans doute attardé !

Peut-être en réponse à cela, Albert Einstein a dit un jour : " L'imagination est plus importante que le savoir ". Certaines personnes soutiennent qu'il aurait aussi dit : " Si mon instituteur est si intelligent, où est son prix Nobel ? " (Ce qui reste à vérifier !!)

Avec de l'imagination, un ordinateur et VS.NET (Visual Studio qui est l'outil de développement), vous êtes fin prêt pour le grand saut dans le monde de la programmation…


I-B. A la découverte de Visual Basic

Le Visual Basic.NET est la dernière version de Visual Basic. Pour comprendre les changements que Microsoft a apportés au langage Visual Basic dans cette version, il faut comprendre ce que Microsoft tente d'accomplir avec le concept .NET.

Il existe des centaines de langages de programmation différents pour résoudre différentes tâches. Un gros problème est que ces langages de programmation ne sont pas conçus pour travailler ensemble.

Même les langages de programmation d'un même éditeur, comme Microsoft, ont des problèmes à travailler ensemble. Les versions précédentes de Visual C++ et Visual Basic enregistrent les données, telles que chaînes et nombres, de façon différente. Du fait qu'il est très fastidieux de découvrir tous les moyens particuliers employés par chaque langage de programmation pour enregistrer et manipuler les chaînes et les nombres, la plupart des programmeurs écrivent leurs programmes à l'aide d'un seul langage de programmation, même lorsqu'un second langage convient mieux pour résoudre un problème particulier. Par exemple, le Visual Basic est très utile pour faire des applications de bureautique, le C++ est plus puissant que le Basic et donc à utiliser pour les très gros programmes. Quant au Java, il est utilisé dans la conception de sites Internet sophistiqués.

Microsoft a donc développé quelque chose baptisé " .NET Framework ", qui agit comme couche intermédiaire entre le système d'exploitation (Windows) et tous les programmes que vous écrivez. Cela résout deux problèmes majeurs.

Le premier problème résolu par le .NET est la possibilité pour différents langages de coopérer entre eux. Au lieu d'octroyer à chaque langage un accès direct au système d'exploitation de l'ordinateur, l'infrastructure .NET Framework force les langages qui ont été conçus pour travailler avec .NET (comme VB.NET) à stocker leurs chaînes et nombres exactement de la même manière. De la sorte, vous pouvez écrire un programme utilisant différents langages sans vous préoccuper du fait qu'un langage stocke et manipule les données de façon différentes d'un autre langage de programmation.

Le second problème résolu par le .NET Framework concerne la distribution du programme. Actuellement, la plupart des utilisateurs exécutent des programmes stockés sur leurs disques durs… Bref passons enfin aux choses plus intéressantes !


I-C. Les inconvénients du Framework

Tout ordinateur se plante périodiquement et la mise en place de nouvelles technologies résorbe rarement les faiblesses des technologies déjà mises en place. Aussi promoteur que soit .NET, ne vous laissez pas abuser par le marketing de Microsoft…

Le .NET Framework, étant un logiciel est sujet à toutes sortes de bugs qui font de l'usage de l'ordinateur une expérience frustrante. D'autant plus que cette technologie n'est disponible que pour les versions récentes de Windows (XP et suivant). Si vous souhaitez écrire des programmes pour Linux ou Windows versions antérieures, vous devez passer par la version 6.0 de Visual Basic.

Bon c'est fini pour l'introduction, passons au codage pur ! Mais avant tout, regardons d'un peu plus près, les structures utilisées dans la technologie .NET.


II. Structure du programme


II-A. Présentation des objets

Déjà il faut savoir ce qu'est un objet en programmation. Prenons un exemple de la vie courante :

Une voiture est un objet. Jusqu'à présent, rien de bien compliqué. Cette voiture a des phares, un volant, des pédales, un capot, une couleur, une marque… Ce sont des propriétés de la voiture. De plus, toutes ses propriétés ont des valeurs. Par exemple, la couleur de la voiture peut être bleue ou rouge (bleu et rouge sont les valeurs de la propriété " couleur "). En programmation c'est un peu pareil : La voiture fait partie d'un grand ensemble qui est " les voitures ". " Les voitures " représentent la " class " en programmation. L'objet est " ma voiture ". Un objet est créé suivant un modèle qu'on appelle une Class.
'exemple pour créer 'MaVoiture' à partir de la class " LesVoitures "
Dim MaVoiture As New LesVoitures
MaVoiture a été instanciée (par le mot clé 'new'). Utilisons quelques propriétés de MaVoiture :
'propriétés de MaVoiture
MaVoiture.Couleur = " Bleue " 'la couleur est bleue
MaVoiture.Phares = 2 'elle possède 2 phares
info Les chaînes de caractères (texte comme 'Bleue') sont entre guillemets. Les nombres ne sont pas entre guillemets.
MaVoiture possède aussi des méthodes. Par exemple, elle roule : c'est une méthode.
'Méthode de MaVoiture
MaVoiture.Roule() ' la voiture roule
Une méthode est caractérisée par des parenthèses. Mais une méthode peut demander des paramètres. Par exemple, à quelle vitesse doit rouler MaVoiture ? Un paramètre est un renseignement envoyé à la méthode.
'Méthode avec paramètre
MaVoiture.Roule(100) 'MaVoiture va rouler à 100 Km/h
Dans cet exemple, MaVoiture est un objet, Roule est une méthode et 100 est un entier (Integer).

On peut aussi fournir plusieurs paramètres :
'Méthodes avec plusieurs paramètres
MaVoiture.Roule(100, avant) 'Ici elle va rouler à 100 Km/h en avant !
Enfin, un objet (ici MaVoiture), peut avoir des événements. Dans notre exemple, MaVoiture peut tomber en panne, démarrer ou s'arrêter. 'TomberEnPanne', 'Demarrer' ou 'Arrêter' sont des événements.
'Evenement de MaVoiture
MaVoiture.Roule(100, avant) 'Ici elle va rouler à 100 Km/h en avant !
'MaVoiture_Demarrer va donc se déclencher à cause de l'appel de la méthode 'Roule' 
Si on récapitule, un objet est donc dérivé d'une Class. Un objet possède des propriétés, des méthodes et des événements (et d'autres choses…)


II-B. Instructions et procédures

Une instruction permet d'effectuer une opération, une déclaration, une définition.
Dim A As Integer ' est une instruction (de déclaration)
A=1 ' est aussi une instruction qui effectue une assignation. 
C'est habituellement une 'ligne de code exécutable'. Une instruction est exécutée lorsque le programme marche. Plusieurs instructions peuvent se suivre sur une même ligne, séparées par ':'
Dim B As String : B="Bonjour"
Si une ligne est très longue, on peut passer à la ligne grâce à '_'
Dim B As String = "Bonjour monsieur ": C= _
"le professeur"
'Equivaut à :
Dim B As String = "Bonjour monsieur ": C= "le professeur"
Quand un programme tourne, les instructions sont effectuées ligne après ligne.
1  Dim B As String 
2  B="Bonjour"
3  Dim A As Integer 
4  A= 3
5  A= A + 1
La ligne 1 est exécutée puis la ligne 2 puis la 3, la 4...
Bien que l'on puisse avoir des numéros de ligne, ils ne sont plus utilisés actuellement et ils sont invisibles.

Pour mettre des commentaires dans un programme, on le fait précéder d'une apostrophe. À la différence d'une instruction, le commentaire ne sera pas exécuté.
'Ceci est un commentaire, ce n'est pas une instruction.
Une procédure est un ensemble d'instructions qui effectue une fonction précise. En Visual Basic.NET, il existe deux sortes de procédures : les 'sub' et les 'function' . Les 'sub' commencent par le mot clé 'sub' puis finissent par 'end sub' et ne retournent aucune valeur contrairement aux fonctions qui débutent par 'function' puis finissent par 'end function' et qui retournent une valeur précise.
'Exemple de sub
Sub DemarrerProgramme()
     'la procédure ne retournera aucune valeur.
End Sub

'Exemple de fonction
Function CalculerPi()
     'la fonction va retourner la valeur de PI après une série de calculs…
End Function
info Pour appeler une fonction ou un sub on utilise le mot clé " Call ". Il n'est pas obligatoire et est devenu inutile en .Net (c'est un reste de VB6).
'Exemple d'appel de fonction ou sub
Call DemarrerProgramme 'déconsillé
CalculerPi() 'OK
'Ces deux appels sont identiques

II-C. Les modules

Les modules sont des feuilles (ou formulaires) qui contiennent plusieurs procédures et/ou fonctions. Un module commence toujours par le mot clé 'Module' et finit par 'End Module'
'Exemple de module
Module NomDeMonModule
     Sub Test1()
          'Procédure 1
     End Sub
 
     Function Test_1()
          'Fonction 1
     End Function

     Function Test_2()
          'Fonction 2
     End Function

     Sub Test2()
          'Procédure 2
     End Sub
End Module
warning Les 'sub' et 'fonctions' ne peuvent pas avoir les mêmes noms sauf si le nombre de paramètres est différent.
Récapitulatif : Une instruction est une ligne de code qui va être exécutée par le programme. Une fonction retourne une valeur contrairement à la procédure qui n'en retourne pas. Un module n'est en fait qu'une feuille contenant de nombreuses procédures et fonctions.


III. Le langage Visual Basic


III-A. Les variables

En programmation, une des choses essentielle est l'utilisation des variables. Une variable est une sorte de boîte qui contient une valeur. Par exemple, je mets une chaussure dans une boite. La 'boite' représente la variable et la valeur est la 'chaussure'. L'intérêt principal des variables est leur utilisation ultérieure. En effet, on peut utiliser une variable à n'importe quel moment dans le programme en fonction de la portée de cette variable. (Voir chapitre sur la portée des variables)


III-A-1. Les variables

En ce qui concerne les noms des variables, on peut utiliser des majuscules, minuscules et chiffres. Les espaces et autres caractères spéciaux ne sont pas acceptés (accents, @, ...).

warning Le nom de la variable ne peut pas commencer par un chiffre !
'Exemples de noms de variables
MaVariable 'est acceptée
COOL 'est acceptée
Je_Suis_1_Variable 'est aussi acceptée
2Variable 'est refusée
2_Variable 'est également refusée
The Variable 'est réfusée
Différent 'est aussi refusée
info Donnez des noms explicites aux variables pour ne pas vous y perdre dans le programme. De plus, vous pouvez mettre la première lettre de votre variable en majuscule. Si votre variable est composée de plusieurs noms, séparez les par des " _ " ou mettez une majuscule à chaque nouveau mot (préférez la première méthode).
'Exemple : 
Variable_pour_calculer_pi 'est mieux que
VariablePourCalculerPi 'mais ces deux lignes sont équivalentes 
Maintenant pour utiliser une variable, il faut avant tout la déclarer et l'instancier dans certains cas. Pour cela on utilise le mot clé " Dim " pour la déclarer et " new " pour l'instancier. De plus, il vaut lui assigner un type (Voir plus loin dans le chapitre)
'Exemples de déclarations de variables
Dim Ma_Variable As String
Dim Nombre As Integer
Dim Compteur As Integer

'Instancier des variables
Dim Msn As New Msn_Protocol 'Msn_Protocol est une class
Dim Test As New Class 
On peut aussi instancier les variables précédentes comme cela :
'Exemple avec les variables précédentes
Dim Ma_Variable As String = " toto "
Dim Nombre As Integer = 45
Dim Compteur As Integer = 1000
Une variable peut aussi être instanciée par une fonction :
'Exemple de variable instanciée par une fonction
Dim Pi As Decimal = Fonction_pour_calculer_pi()

III-A-2. Les différents types de variables

Il existe une multitude de types de variable. A notre niveau, on en utilisera essentiellement 4 : String, Integer, Boolean et Byte

Regroupons tous les types dans un tableau

Type de variable Mémoire occupée Plage de nombres acceptés Utilisation principale
Boolean 2 octets True (0) ou False (1) Pour les conditions
Byte 1 octet De 0 à 255 Pour les fichiers
Char 2 octets De 0 à 65 535 Pour les caractères alphanumériques
Date 8 octets Dates entre le 1 Janvier 0001 et le 31 Décembre 9999 Pour les dates
Decimal 16 octets + / - 79 228 162 514 264 337 593 543 950 335 sans séparateur décimal sinon + / - 7.9 228 162… avec 28 chiffres après le séparateur décimal Pour les nombres décimaux
Double 8 octets - 1,79769313486231E+308 à - 4.94065645841247E-324 (nombres négatifs) et 4.94065645841247E-324 à 1,79769313486231E+308 (nombres positifs) Pour les grands nombres à virgule (avec double précision)
Integer 4 octets De - 2 147 483 648 à 2 147 483 647 Pour les nombres entiers
Long 8 octets De - 9 223 372 036 854 775 808 à 9 223 372 036 854 775 807 Pour les entiers longs
Short 2 octets De - 32 768 à 32 767 Pour les entiers courts
Single 4 octets De - 3.402823E-45 à - 1.401298E+38 Pour les grands nombres à virgule (avec simple précision)
String Variable 0 à 2 milliards de caractères Unicode Pour les chaîne de caractères
info Utiliser les types qui prennent le moins de mémoire. Par exemple, si vous souhaitez stocker une note dans votre variable, utilisez le type Integer mais n'utilisez pas le type Long dans la mesure où votre variable sera comprise entre 0 et 20 (ou 40 ou 100 en fonction des examens lol)

Une chaîne de caractères n'est en fait que du texte (" Je suis gentille ") et elle se met TOUJOURS entre guillemets contrairement aux nombres !

En VB.NET 2005 (dernière version de Microsoft), il existe 4 autres types de variables mais cela ne concerne pas notre cours.

III-A-3. Convertir des variables

Dans tous les langages de programmation, il peut être utile voire même nécessaire de convertir des variables d'un type dans un autre type. Cela permet d'éviter la création de nouvelles variables qui alourdiraient le programme.

Tableau récapitulatif des fonctions permettant de convertir des variables

Fonction de conversion Convertir vers le type...
CBool Boolean
CByte Byte
CChar Char
CDate Date
CDbl Double
CDec Decimal
CInt Integer
CLng Long
CObj Object
CShort Short
CSng Single
CStr String
'Exemples
Dim Pi As Decimal = 3.14 'crée la variable Pi qui vaut 3.14
Dim a As Integer = 15 'crée la variable a qui vaut 15

Dim Pi_Entier As Integer = CInt(Pi) 'retournera 3
Dim a_caractère As String = CStr(a) 'retourner " 15 " 'en chaîne de caractère
warningDans le langage VB.NET, la virgule n'existe pas. On utilise le point qui remplace la virgule.
infoNoter que ces fonctions sont construites à partir de C (pour Convert) et de l'abréviation du type.

Pour convertir un Object dans un type (String, Integer...), on utilise la commande 'CType' [ CType(a, String) 'a va être convertit en 'String']

III-A-4. La portée des variables

Une variable peut être utilisée que si elle est visible dans le programme. Pour définir le niveau de visibilité de chaque variable, il existe un mot clé propre à chaque cas.

Tableau pour la portée des variables

Mot clé Portée de la variable
Public Partout dans le programme
Private Partout dans la classe ou le module où elle a été créée
Dim Seulement dans la procédure ou la fonction créée
Protected Les membres Protected sont similaires aux Private, mais ils ont une particularité en cas d'héritage. Ce point ne sera pas abordé
Friend Les membres Friend ne sont accessibles qu'à l'intérieur du projet, et pas par des éléments extérieurs au projet en cours
Shared Permet de partager une variable. N'est pas indispensable
info Ce tableau est aussi valable pour les procédures et les fonctions
'Exemple avec des sub et fonctions

Module Test_Portee

     Private Sub Test()

     End Sub

     Protected Sub Azerty(ByVal Argument As String)

     End Sub

     Private Shared Function Calcul(ByVal Nombre As Integer)

     End Function

End Module
Cependant, il est déconseillé d'utiliser des variables globales (publics) car cela est une source importante d'erreurs. Pour affecter une valeur à une variable public, il est préférable de passer par une procédure d'affectation.
'Exemple
Module Test
     Public Nombre As Integer

     Public Sub Routine_Qui_Va_Affecter_La_Variable(ByVal Valeur As Integer)
            Nombre = Valeur
     End Sub
End Module

'Quelque part d'autre dans le programme on appel la procédure avec un argument de type Integer
Call Routine_Qui_Va_Affecter_La_Variable(45) 

'Ensuite dans le programme totale, la variable Nombre va valoir 45
MsgBox(Nombre.ToString) 'Affiche dans une boite de dialogue la valeur
Bien sûr qu'il est possible directement de faire directement
Nombre = 45
Mais cela est source d'erreurs... En effet, vous pouvez modifier la variable à tout moment sans même vous en rendre compte ! A utiliser à vos risques et périls


III-B. Les structures conditionnelles

Les conditionnelles comme les boucles permettent de gérer le déroulement du code. Il existe deux grands types de conditionnelles : celles avec " If - Then " et celles avec " Select Case - End Select "


III-B-1. Avec "If -Then"

Structure générale :
If condition 1 vraie Then
    'exécuter instructions
Else 
    'exécuter autre intructions
End If
If : Mot clé signifiant " si " et qui ouvre la structure
Then : Mot clé signifiant " alors "
Else : Mot clé signifiant " sinon "
End If : Mot clé permettant de fermer la structure

En français : Si la condition 1 est vraie alors on exécute le bloc Then sinon on exécute le bloc Else.
'Exemple 
Dim code As Integer = 1739
 
If code = 1739 Then
     MsgBox("condition vraie")
Else
     MsgBox("condition fausse")
End If
On peut tester une condition fausse et dans ce cas utiliser Not.
If Not A=B Then MsgBox("A est différent de B") 'Si A et B sont différents (Not A=B signifie NON égaux) afficher "A est différent de B". 
Il peut y avoir des opérateurs logiques dans la condition:
If A=B And C=D Then..    'Si A égal B et si C égal D 
Des structures If - Then peuvent être imbriquées. C'est-à-dire que l'on peut emboîter plusieurs conditions dans une seule condition :
'Exemple
If condition_1 vraie Then
      If condition_2 vraie Then
             MsgBox("Condition_1 Vraie et Condition_2 Vraie")
      Else
            If condition_3 Vraie Then
                  MsgBox("Condition_1 Vraie et Condition_2 Fausse et Condition_3 Vraie")
            End If
      End If
End If
info Astuce : Pour ne pas vous tromper, utilisez les tabulations et décalez chaque structure (dans l'exemple : Bleue, Violet et Vert) et son code au même niveau. Pour vérifier s'il n'y a pas d'erreur, comptez les 'If', il doit y en avoir autant que des 'End If'. Visual Studio vous avertira en cas d'erreur.
Autre syntaxe possible :
If Condition1 vraie Then
    ..
ElseIf condition2 Then 'sinon on teste la condition 2
    ..
ElseIf condition3 Then 'la condition 3
    ..
End If

III-B-2. Avec "Select Case - End Select"

Cette structure est très utile pour tester un grand nombre de possibilités en fonction de la valeur d'une expression :

Structure générale :
Select Case X
    Case 1 : 'faire Y
    Case 2 : 'faire Z
    Case Else : 'faire A
End Select
Select Case : Mot clé permettant d'ouvrir la structure
Case : Représente les différents cas (Case 1 = cas 1, Case 2 = cas 2, Case Else = autre cas...)
End Select : Mot clé permettant de fermer la structure
X : Expression à évaluer (nombre, chaîne de caractères, booléen…)
faire Y : Exécute le cas 1
faire Z : Exécute le cas 2
faire A : Exécute le cas "else"

Prenons un exemple : Un serveur envoie un certain code mais on ne sait pas si c'est le 1, le 2 ou un autre (comme 1000, 453, 876…) et vous voulez vous connecter si le code envoyé correspond au 1, vous déconnecter s'il correspond au 2 et afficher un message d'erreur si c'est un autre code autre que le 1 et le 2. Voilà la structure :
Select Case code
    Case 1 : 'se connecter
    Case 2 : 'se déconnecter
    Case Else : 'erreur code non reconnu
End Select
La structure précédente est relativement simple mais limitée. On peut aussi utiliser d'autres types d'expressions plus complexes et plus pratiques : Plusieurs expressions peuvent être séparées par des virgules.

Le mot-clé To permet de définir les limites d'une plage de valeurs correspondantes pour N.
Le mot-clé Is associé à un opérateur de comparaison (=, <> < <=, > ou >=) permet de spécifier une restriction sur les valeurs correspondantes de l'expression. Si le mot-clé Is n'est pas indiqué, il est automatiquement inséré.

Vous pouvez aussi mixer les différents cas précédents.
Enfin, vous pouvez aussi indiquer des plages et des expressions multiples pour des chaînes de caractères. Dans l'exemple suivant, Case correspond aux chaînes qui sont absolument identiques à " ttt ", aux chaînes comprises entre "bbb" et "eee" dans l'ordre alphabétique, ainsi qu'à la valeur de " Nombre " :
'Exemple avec les virgules
Select Case N
    Case 8, 9, 10
        'Effectuer le code  si N=8 ou N=9 ou N=10
End Select
'Exemple avec une plage de valeurs
Select Case N
    Case 8 To 20
       'Effectuer le code  si N est dans la plage 8 à 20
End Select
'Exemple avec un opérateur de comparaison
Select Case N
     Case Is >= 15
         'Effectuer le code  si N supérieur ou égal à 15.
End Select
Select Case N
     Case 3 To 6, 7 To 15, 200, 1654, Is > MaxNumber
         'Effectuer le code si N, compris entre 3 et 15, si N = 200 ou N = 1654, est supérieur à MaxNumber
End Select
Select Case N
     Case "ttt", "bbb" To "eee", Nombre
          'Effectuer le code si N ="ttt" ou si N est compris entre "bbb" et "eee" (ordre alphabétique) ou si N = Nombre
End Select


III-C. Les boucles

Les boucles permettent de répéter un bloc d'instruction autant de fois qu'on l'a indiqué à la boucle. Elles sont très utilisées par exemple pour faire des calculs itératifs (Méthode d'Euler) ou de lister le contenu d'un tableau. Il en existe quatre types majeurs : celles avec " For - Next ", celles avec " Do - Loop ", celles avec " While - End While " et celles avec " For Each - Next "


III-C-1. Avec "For - Next"

Structure générale :
For Variable = Debut To Fin
   'Execute la boucle
Next Variable
For : Mot-clé permettant d'ouvrir la boucle.
To : Mot-clé signifiant " jusqu'à "
Next : Mot-clé pour fermer la boucle.
Variable : Variable qui va servir de compteur pour la boucle.
Debut : Début du compteur.
Fin : Fin du compteur.
'Exemple de boucle
Dim i As Integer
For i = 3 To 10
   'Exécute la boucle pour i variant de 3 à 10
Next i
La variable i va s'incrémenter automatiquement de 1 à la fin de chaque boucle.

On peut aussi définir un pas, le compteur s'incrémente de la valeur du pas à chaque boucle :
'Exemple de boucle
Dim i As Integer
For i = 3 To 10 Step 2
    MsgBox(i.ToString) 'affiche 3 puis 5 puis 7 et enfin 9
Next i
info On peut aussi utiliser un pas négatif mais cela est plus compliqué.
La variable de la boucle peut être déclarée en même temps que la boucle. De plus, la variable après le Next est facultative.
'Exemple
For Test As Integer = 0 To 43
    'boucle de 0 à 43
Next
Dernière chose, on peut quitter la boucle prématurément :
'Exemple de sortie de boucle
For Test As Integer = 0 To 43
    If Test = 3 then Exit For 'Quand Test sera égale à 3 alors on sort…
Next

III-C-2. Avec "Do - Loop"

Structure générale :
Do
   'Instructions
Loop Until Condition

Do
   'Instructions
Loop While Condition
Do : Mot-clé qui ouvre la boucle.
Loop : Mot-clé qui ferme la boucle.
While : Mot-clé qui signifie " Tant que "
Until : Mot-clé qui signifie " Jusqu'à ce que "
Condition : La condition pour rester dans un Loop While ou pour sortir d'un Loop Until.

warning Il faut préciser après le " Loop " une condition précéder de " While " ou " Until ". Dans le cas contraire, la boucle est sans fin !
'Exemple avec Until
Dim i As Integer = 0
Do
   i = i + 1 'incrémente i de 1
   MsgBox(i.ToString) 'affiche la valeur de i
Loop Until i = 10 'Quand i = 10 on sort de la boucle.

'Exemple avec While
Dim Fichier As String
Do
   'Liste les fichiers d'un répertoire
Loop While Fichier <> "NomDeMonFichier " 'Tant que Fichier n'est pas égal à NomDeMonFichier alors on boucle sinon on sort.

III-C-3. Avec "While - End While"

Structure générale :
While Condition
    'Execute la boucle
End While
While : Mot-clé permettant d'ouvrir la boucle.
End While : Mot-clé qui ferme la boucle.
Condition : La condition pour rester dans la boucle.
'Exemple :
Dim Compteur As Integer = 0
While Compteur < 20 'Dès que Compteur = 20, on sort de la boucle.
   Compteur