You are on page 1of 16

20/12/2012

Université Hassan II - Mohammedia Faculté des Sciences et Techniques

Visual Basic

J. Meziane

1

Université Hassan II - Mohammedia Faculté des Sciences et Techniques

Visual Basic

J. Meziane

2

1) Introduction à la programmation Qu’est-ce que la programmation ? – Séquences d’instructions qui permettent de donner des ordres à un ordinateur A quoi cela sert-elle ? – Développer des applications, automatiser récurrentes, effectuer des calculs complexes des tâches

Chap. Ch III Visual Basic

Quelques l l langages d programmation de i – Pascal, Fortran, C, C++, JAVA, (Visual) Basic, Perl, PHP, …

Université Hassan II - Mohammedia Faculté des Sciences et Techniques

Visual Basic

J. Meziane

3

Université Hassan II - Mohammedia Faculté des Sciences et Techniques

Visual Basic

J. Meziane

4

Différences principales entre les langages La syntaxe Langages séquentiels, orienté-objet L é ti l langages l i té bj t Langages interprétés, langages exécutés Langages spécialement adaptés • A Internet (pages web): PHP, Perl, JAVA • Aux simulations : Matlab, MAPLE, MATHEMATICA, …

Pourquoi Visual Basic ? L’un des langages de programmation les plus performants et les plus simples à utiliser Créé par John G. Kemeny et Thoams E. Kurtz en 1963 et devient vite un langage populaire Adapté sur PC par Bill Gates, au milieu des années 70

1

Mohammedia Faculté des Sciences et Techniques Visual Basic J. é it Indique le début Public Sub nom_du_programme() ’séquences d’instructions End Sub ’ commentaire Indique la fin 2 .20/12/2012 Université Hassan II . Access. Meziane 6 VBA ou VB ou Visual Basic Visual Basic s’est développé à partir du langage BASIC ( (Beginner’s g All-purpose p p Symbolic y Instruction Code) ) La terminologie autour de Visual Basic peut mener à une certaine ambiguïté. Meziane 7 Université Hassan II . Word) VB = Visual Basic Langage de programmation contenu dans MS Office mais également intégré dans Visual Studio pour faire des applications indépendantes Visual Basic en général Avantages Simplicité p Disponible dans MS Office Accès à toutes les fonctions de Windows • Systèmes de fenêtres. boîtes de dialogue. VBA = Visual Basic pour Application Disponible avec MS Office (Excel.Mohammedia Faculté des Sciences et Techniques Visual Basic J.Mohammedia Faculté des Sciences et Techniques Visual Basic J. API Inconvénients Pas très rapide Dépend p beaucoup p des versions utilisées de Windows et MS Office Cher si on veut être en règle Université Hassan II . Meziane 5 Université Hassan II . Meziane 8 2) Pratique: 1er exemple ub c Sub afficher a c e _te te() Public texte() Dim i As Integer For i=1 To 2 MsgBox " FI GE!" Next i End Sub Syntaxe de base Il faut toujours indiquer où se trouve le début et la fin du programme que l’on l’ écrit.Mohammedia Faculté des Sciences et Techniques Visual Basic J.

Meziane 12 Type Boolean Byte y Currency Date Double Integer Long Object Single String String*n Variant Occupation mémoire Portée des valeurs True ou False 0 à 255 (28) -922 337 203 685 477.6. des calculs monétaires précis dans le cas de nombres de moins de 4 décimales. Les plus utilisées : – String pour stocker des chaînes de caractères – Integer pour stocker des valeurs entières – Single pour stocker des valeurs décimales simple – Double pour stocker des valeurs décimales – Long pour stocker des grandes valeurs entières – Boolean pour stocker soit un 0 soit un 1 (un bit) Université Hassan II . Variant est le type de données par défaut pour les variable dont le type n’est pas explicitement déclaré et stocke n’importe quel type de données (excepté String*n).1 ) Les Variables Les variables sont essentielles à tous les programmes et tous les langages Elles permettent le stockage à court terme des paramètres du programme. -3. mise à part String*n 2 octets 1 octet 8 octets 8 octets Currency est un type de données. on considère env.402 823 E38 10 octets + taille de la La longueur (variable) de la chaîne est composée d’au plus 2 chaîne 147 483 648 caractères Taille de la chaîne La taille de la chaîne. Meziane 11 Université Hassan II . y compris les types définis par le programmeur.940 656 458 412 47 E-324 à 1. 17.580 8 à 922 337 203 685 477. qui permet. 12 types de variables.401 298 E-45 à 3.797 693 134 862 32 E308 2 octets -32 768 à 32 767 (216.121212) ou des caractères Plusieurs types de variables Correspondent à des zones de mémoire de l’ordinateur En Visual Basic.580 7 1er janvier 100 au 31 décembre 9999 0:00:00 à 23:59:59 -1.Mohammedia Faculté des Sciences et Techniques Visual Basic J. fixée par n.20/12/2012 Université Hassan II .Mohammedia Faculté des Sciences et Techniques Visual Basic J. 3 .797 693 134 862 32 E308 à -4.940 656 458 412 47 E-324 8 octets 4. signé) 4 octets Pointeur sur un objet 4 octets -3. Meziane 9 Université Hassan II .Mohammedia Faculté des Sciences et Techniques Visual Basic J.Mohammedia Faculté des Sciences et Techniques Visual Basic J. signé) 4 octets -2 147 483 648 à 2 147 483 647 (232. notamment. Meziane 10 3 ) Les Variables et Les constantes 3. stocké sur 8 octets.401 298 E-45 1. est comprise entre 1 et 65536 16 octets Une valeur parmi celles listées au-dessus.402 823 E38 à -1. Souvent des valeurs numériques (5.

Meziane 15 Université Hassan II .2 ) Les constantes Syntaxe [Public | Private] ] Const constname [ [As type] yp ] = expression p Private est utilisé au niveau module pour déclarer les constantes uniquement disponibles dans le module dans lequel la déclaration est effectuée. Ce mot clé n’est pas autorisé dans les procédures. l’ensemble des variables pour définir un nouveau type. il n’est pas obligatoire de déclarer les variables. mais vivement conseillé Syntaxe de déclaration: Public Sub prog_decla () Dim age As Integer Dim nom As String Dim revenu As Long End Sub 3.Mohammedia Faculté des Sciences et Techniques Visual Basic J. Meziane 13 Université Hassan II . type Exemple Type Client Nom As String*15 Prénom As String*15 Age As Integer E d Type End T Utilisation Dim Untel As Client Untel. Université Hassan II .Age = 40 4 .Mohammedia Faculté des Sciences et Techniques Visual Basic J. Ce mot clé n’est pas autorisé dans les procédures. entre les instructions Type et End Type.Mohammedia Faculté des Sciences et Techniques Visual Basic J. Meziane 16 4) Comment créer un type de donnée ? Const pi As Double = 3.Prénom = "Léon" Untel. Meziane 14 En VB.14159 ' il est obligatoire d'assigner une valeur pi As Double = p pi*2 Const Deux_p Public Const RG = "Rouge" Il est possible de créer ou de définir un nouveau type de donnée Il suffit de répertorier. Public est utilisé au niveau module p pour déclarer des constantes disponibles pour toutes les procédures de l’ensemble des modules.Mohammedia Faculté des Sciences et Techniques Visual Basic J.Nom = "Dupond" Untel.20/12/2012 Université Hassan II .

Meziane 20 Opérateur : inférieur strictement (<) Vérifie qu'une variable est strictement inférieure à une valeur Exemple If (x<3) then Retourne 1 si x est inférieur à 3.Mohammedia Faculté des Sciences et Techniques Visual Basic J. 0 sinon Opérateur : supérieur stricte ment(>) Vérifie qu'une variable est strictement supérieure à une valeur Exemple If (x>3) then Retourne 1 si x est strictement supérieure à 3. Meziane 17 Université Hassan II . 0 sinon Opérateur : supérieur ou égale (>=) Vérifie qu'une variable est supérieure ou égale à une valeur Exemple If(x>=3) then Retourne 1 si x est supérieure ou égale à 3.20/12/2012 Université Hassan II . 0 sinon Opérateur : inférieur ou égale (<=) Vérifie qu'une variable est inférieure ou égale à une valeur Exemple If (x<=3) then Retourne 1 si x est inférieur ou égal à 3. Meziane 19 Université Hassan II . Meziane 18 5) Les opérateurs arithmétiques en VB (de calcul) Les opérateurs de calcul permettent de modifier mathématiquement la valeur d'une variable Opérateur + * / \ ^ Mod & Dénomination addition soustraction multiplication division Division entière puissance Modulo Concaténation de chaîne Reste de la division Effet Ajout deux valeurs Soustrait deux valeurs Multiplie deux valeurs Divise deux valeurs Divise deux entiers Exe E mple 7+3 7-3 7*3 7/3 7\3 3^4 7%3 Résultat 10 4 21 2.Mohammedia Faculté des Sciences et Techniques Visual Basic J.3333333 (double) 2 81 1 (reste de division de 7/3) "bonjour tous le monde " 6) Les opérateurs de comparaison Opérateur : égale (=) Compare deux valeurs et vérifie leur égalité Exemple If (x=3) then Retourne 1 si x est égal à 3 0 sinon Opérateur : différent (<>) Vérifie qu qu'une une variable est différente d d'une une valeur Exemple If (x<>3) then Retourne 1 si x est différent de 3 0 sinon "bonjour " & "tous le monde " Université Hassan II .Mohammedia Faculté des Sciences et Techniques Visual Basic J.Mohammedia Faculté des Sciences et Techniques Visual Basic J. 0 sinon 5 .

20/12/2012 Université Hassan II . Meziane 24 8) STRUCTURES DE CONTRÔLE p 0 0 1 1 q 0 1 0 1 P Or q (p OU q) P And q (p ET q) Not p (non p) P xor q 0 0 1 0 1 0 1 1 1 1 0 1 0 0 1 0 Visual Basic propose : Trois types de structures de sélection : If/Then. six types de structures de repetition : While/Wend. If/Then/Else. mais pas les deux ) ((condition1)Xor(condition2)) équivalent à ((condition1)ou exclusif (condition2)) Université Hassan II . Meziane 23 Université Hassan II .Mohammedia Faculté des Sciences et Techniques Visual Basic J.Mohammedia Faculté des Sciences et Techniques Visual Basic J. p Xor X q = (p ( + q). For/Next. Do While/Loop. Do/Loop Until. ) (pq) ( )=pq+pq 6 . Select Case. 0 si elle vaut 1) Not (condition) équivalent à non (condition) Ou exclusif (Xor) si seulement une seule des deux conditions est vrai (l'un ou l'autre. Do Until/Loop.Mohammedia Faculté des Sciences et Techniques Visual Basic J.Mohammedia Faculté des Sciences et Techniques Visual Basic J. D /L Do/Loop Whil While. Meziane 22 7) Les opérateurs logiques (booléens) En résumé Dans l’algèbre standard  a = b  c ≠ d  e > f  g < h  i ≥ j  k ≤ l  Equivalent dans Visual Basic  a = b  c < > d  e > f  g < h  i >= j  k <= l  Ce type d'opérateur permet de vérifier si plusieurs conditions sont vraies: OU logique (Or) Vérifie si l l’une une au moins des conditions est réalisée ((condition1)Or(condition2)) équivalent à ((condition1)OU(condition2)) ET logique (AND) Vérifie que toutes les conditions sont réalisées ((condition1)And(condition2)) équivalent à ((condition1)ET(condition2)) NON logique (Not) (retourne la valeur 1 si la variable Inverse l'état d'une variable booléenne ( vaut 0. Meziane 21 Université Hassan II .

Mohammedia Faculté des Sciences et Techniques Visual Basic J. . Répétition structure Do While/Loop T F structure Do/Loop While F T F F structure If/Then/Else F structure Do Until/Loop structure Do/Loop Until structure For/Next T F T T F F T F T Université Hassan II . Meziane 27 Université Hassan II . Meziane 26 Séquence structure If/Then T .Mohammedia Faculté des Sciences et Techniques Visual Basic J.20/12/2012 Université Hassan II .Mohammedia Faculté des Sciences et Techniques Visual Basic J. Sélection structure While/Wend structure Select Case T T F T F .1) Structures de sélection Structure de type If/Then Syntaxe : If note >= 10 Then deliberation = "Admis" End If Structure de type If/Then/Else Syntaxe : If note >= 10 Then deliberation = "Admis" Else deliberation = " Ajourne" End If Structure de type If/Then/Elseif/Else Syntaxe : If Condition1 Then Instructions1 ElseIf Condition2 Then Instruction2 … Else Instructions-finales End If Sub saisir() Dim NomUtilisateur As String NomUtilisateur = InputBox("Saisissez votre nom") If NomUtilisateur = "Said" Then MsgBox ("Bonjour.Mohammedia Faculté des Sciences et Techniques Visual Basic J. Ali ! Prêt à attaquer le travail ? ") Else MsgBox ("Désolé. Said ! En forme pour attaquer le travail ? ") ElseIf NomUtilisateur = "Ali" Then MsgBox ("Bonjour. . Meziane 28 8. Je ne vous connais pas !") End If E d Sub End S b 'Abandon 'Ab d du d programme 7 . . Meziane 25 Université Hassan II . .

Mohammedia Faculté des Sciences et Techniques Visual Basic J. Meziane 32 8. Meziane 29 Université Hassan II .Mohammedia Faculté des Sciences et Techniques Visual Basic J.Mohammedia Faculté des Sciences et Techniques Visual Basic J. Meziane 31 Université Hassan II .20/12/2012 Université Hassan II . 46. 1645 To 1689 Message = "Personnel technique" Case Else Message = "Accès refusé" End Select Notez qu qu'il il y a plusieurs façons d d'exprimer exprimer la condition du Case: avec les signes < et > il faut utiliser le IS on peut spécifier un range: 60 To 89 on peut spécifier des valeurs: 44. 55.2) Structures de repetition : Structure de type While/Wend Structure de type Do While/Loop Syntaxe : Syntaxe : S t While Condition instructions Wend Private Sub cmdBouton_Click() Dim produit As Integer produit = 2 While produit <= 1000 MsgBox produit produit = produit * 2 Wend End Sub Do While condition Instructions à exécuter répétitivement Loop Exemple : Do While Nom <> "Fini" Nom = InputBox(("Saisissez votre nom ou tapez Fini pour quitter") MsgBox Nom Loop 8 .Mohammedia Faculté des Sciences et Techniques Visual Basic J. Meziane 30 Structure de type Select Case Syntaxe : Select Case variable Case Value 1 Instruction1 Case value2 Instruction2 … Case Else Instructionp End Select Exemple Select Case Pourcent Case Is >= 90 Lettre = "A" A Case 60 to 89 Lettre = "B" Case Else Lettre = "F" End Select Select Case code_d_acces Case Is < 1000 M Message = "Accès "A è refusé" f é" Case 1542. 62 Université Hassan II .

Meziane 33 Université Hassan II .20/12/2012 Université Hassan II .Mohammedia Faculté des Sciences et Techniques Visual Basic J. Meziane 36 Exemple : Sub temp() Dim Di Celsius C l i As A Double D bl Prompt = "Saisissez une valeur en degrés Fahrenheit" Do Ftemp = InputBox(Prompt.Mohammedia Faculté des Sciences et Techniques Visual Basic J. .Mohammedia Faculté des Sciences et Techniques Visual Basic J. Meziane 35 Université Hassan II . Meziane 34 Exemple : Private Sub cmdBouton_Click() Dim Di produit d it As A Integer I t produit = 2 Do While produit <= 1000 MsgBox produit produit = produit * 2 Loop End Sub Structure de type Do/Loop While Syntaxe : Do Instructions à exécuter répétitivement Loop While condition Exemple : Sub cmpt() Dim compteur As Integer compteur t =1 Do MsgBox compteur & Space$(2) ' permet d'écrire 1 2 3 4 … 10 compteur = compteur + 1 Loop While compteur <= 10 End Sub Université Hassan II .Mohammedia Faculté des Sciences et Techniques Visual Basic J. "Fahrenheit en Celsius") If Ftemp <> "" Then Celsius = Int((Ftemp + 40) * 5 / 9 . "Température en degrés Celsius" End If Loop While Ftemp <> "" End End Sub Structure de type Do Until/Loop Syntaxe : Do Until condition Instructions à exécuter répétitivement Loop Exemple : Private Sub produit() Dim produit As Integer produit d it = 2 Do Until produit > 1000 msgBox produit produit = produit * 2 Loop End Sub 9 .40) MsgBox (Celsius).

Mohammedia Faculté des Sciences et Techniques Visual Basic J. Meziane 40 Structure de type For/Next Syntaxe : For variable = start To end Instructions à exécuter répétitivement Next Variable Exemple : Sub cmpt_for() cmpt for() Dim compteur As Integer For compteur = 1 To 20 Step 2 MsgBox compteur & Space$(2) ' permet d'écrire 1 2 3 4 … 10 Next compteur End Sub 8.Mohammedia Faculté des Sciences et Techniques Visual Basic J. Meziane 37 Université Hassan II .Mohammedia Faculté des Sciences et Techniques Visual Basic J.3) Instruction EXIT FOR Cette instruction permet d'interrompre la boucle et de sortir : Exemple : For i = 1 To 10 Nom = InputBox("Saisissez votre nom ou tapez Fini pour quitter") If Nom ="Fini" Then Exit For enf f if MsgBox Nom Next i 10 . Meziane 38 Structure de type Do/Loop Until Syntaxe : Do D Instructions à exécuter répétitivement Loop Until condition Exemple : Private Sub prdt() Dim compteur As Integer compteur = 1 Do MsgBox compteur & Space$(2) . compteur = compteur + 1 Loop Until compteur = 10 End sub Exemple : Sub S b saisir() i i () Dim Nom As String Do Nom = InputBox("Saisissez votre nom ou tapez Fini pour quitter") If Nom <> "Fini" Then MsgBox Nom End If Loop Until il Nom = "Fini" i i End Sub Université Hassan II .20/12/2012 Université Hassan II .Mohammedia Faculté des Sciences et Techniques Visual Basic J. Meziane 39 Université Hassan II .

z As Long) If y < min Then min = y End If If z < min Then min = z End If 'MsgBox "La plus petite valeur est " & min End Sub Université Hassan II . La fonction retourne toujours une valeur portée par son nom. y As Single) As Single Multiplication = x * y End Function La valeur. valeur2. valeur2. valeur2) End Sub Private Function Multiplication(x As Single. y As Long. valeur3 MsgBox "La plus petite valeur est " & valeur1 End Sub Private Sub Minimum(min As Long. valeur2 As Single valeur1 = InputBox("donner la premiere valeur") valeur2 = InputBox("donner la seconde valeur") MsgBox "Le résultat de la multiplication est : "&Multiplication(valeur1. retournée par la fonction Multiplication. valeur3) 'ou Minimum valeur1.Mohammedia Faculté des Sciences et Techniques Visual Basic J.2) Les procédures Function Syntaxe : Function NomFunction ([arguments]) [As Type] Instructions de la fonction End Function Les arguments sont séparés par des virgules. Meziane 43 Université Hassan II . Meziane 44 9.20/12/2012 Université Hassan II . comprennent des arguments et retournent un résultat 9. 11 . valeur3 As Long valeur1 = InputBox("donner la premiere valeur") valeur2 = InputBox( InputBox("donner donner la seconde valeur valeur") ) valeur3 = InputBox("donner la troisieme valeur") Call Minimum(valeur1.Mohammedia Faculté des Sciences et Techniques Visual Basic J. valeur2 As Long. Meziane 42 9) Les procédures de fonction Elles ont un nom.Mohammedia Faculté des Sciences et Techniques Visual Basic J. 1) Les procédures Sub Syntaxe : Sub NomProcedure ([arguments]) Instructions de la procedure End sub Private Sub cmdPlusPetit_Click() Dim valeur1 As Long. est placée dans le nom de la fonction (on parle de pseudo-variable).Mohammedia Faculté des Sciences et Techniques Visual Basic J. ‘ Ce programme permet de multiplier deux nombres Option Explicit 'Force les variables à être explicitement déclarées Private Sub cmdMultiplier_Click() Dim valeur1 As Single. Meziane 41 Université Hassan II .

Mohammedia Faculté des Sciences et Techniques Visual Basic J.20/12/2012 Université Hassan II .Mohammedia Faculté des Sciences et Techniques Visual Basic J.a) par référence Private Sub change() Dim Di a As A Double. Meziane 47 Université Hassan II .Mohammedia Faculté des Sciences et Techniques Visual Basic J.b) par valeur Private Sub change() Dim a As Double. b) Après appel a = 5 b = 9 MsgBox "après appel " & "a = " & a & " b = " & b End Sub Private Sub echange(ByVal x As Double. y As Double) Dim tmp As Double tmp = x x=y y = tmp MsgBox "dans la pro echan " & "a = " & x & " b = " & y End Sub 9.3) Appel par valeur.Mohammedia Faculté des Sciences et Techniques Visual Basic J. c As Double a=5 b=9 Av appel a = 5 b = 9 MsgBox "av appel " & "a = " & a & " b = " & b Dans la pro echan a = 9 b = 5 Call echange(a. appel par référence Option Explicit 'Force les variables à être explicitement déclarées Private Sub max_min() Dim Di valeur1 l 1 As A Double. D bl c As A Double D bl a=5 b=9 MsgBox "av appel " & "a = " & a & " b = " & b Call echange(a. b) MsgBox "après appel " & "a = " & a & " b = " & b End Sub Private Sub echange(x As Double. valeur2) End Sub Function Max(A. ByVal y As Double) Dim tmp As Double tmp = x x=y y = tmp MsgBox "dans la pro echan " & "a = " & x & " b = " & y End Sub Av appel a = 5 b = 9 Dans la pro echan a = 9 b = 5 Après appel a = 9 b = 5 12 . adresse) le mode de passage par défaut est par référence. Meziane 45 Université Hassan II . B As Double) As Double Dim M As Double If A >= B Then M=A Else M=B End If Max = M End Function Le passage des paramètres d’une procédure peut se faire par valeur ou par référence (par adresse).3. Université Hassan II . Meziane 46 9. D bl b As A Double.3. b As Double. Meziane 48 9. D bl valeur2 l 2 As A Double D bl valeur1 = InputBox("donner la premiere valeur") valeur2 = InputBox("donner la seconde valeur") MsgBox "Le maximum est : "&Max(valeur1.

c As Double a=5 b=9 MsgBox "av appel " & "a = " & a & " b = " & b Call echange(a.4) Exit Sub et Exit Function L’instruction Exit Sub (respectivement Exit Function) dans une procédure Sub (respectivement Function) provoque une sortie immédiate de la procédure. Meziane 50 9. les six entiers du tableau sont égaux g à0 Nombre (0) = 55 permet de fixer la valeur 55 à l’élément du tableau Nombre d’indice 0.Mohammedia Faculté des Sciences et Techniques Visual Basic J. caractères LBound (Tab) et UBound (Tab) sont respectivement égaux à -5 et 4.Mohammedia Faculté des Sciences et Techniques Visual Basic J. l’indice étant de type Long. La déclaration Dim Tab (-5 To 4) As String déclare un tableau Tab constitué de 10 chaînes de caractères. Les tableaux peuvent être multi-dimensionnels Par défaut. Meziane 49 Université Hassan II . 3) est égal à 7.1) Leurs déclarations Syntaxe Dim Nombre (5) As Integer Déclare un tableau Nombre constitué de six entiers.20/12/2012 Université Hassan II . Private Sub change() Dim a As Double. 8. b) MsgBox "après appel " & "a = " & a & " b = " & b End Sub g ( y x As Double. indique que le tableau est statique. UBound (Tab3. 7 To 15) déclare un tableau Tab de dimension 3. LBound (Tab3. dans notre exemple 5. ByVal y y As Double) ) Private Sub echange(ByVal Dim tmp As Double tmp = x x=y y = tmp Exit Sub MsgBox "dans la pro echan " & "a = " & x & " b = " & y End Sub 10) LES TABLEAUX Un tableau peut se représenter comme étant un groupe consécutif (une série) d d’emplacements emplacements mémoires de même nom et de même type 10.Mohammedia Faculté des Sciences et Techniques Visual Basic J. le plus petit indice d’un tableau est égal à 0 Le fait de spécifier une valeur pour le plus grand indice d’un tableau. Par défaut. . Meziane 52 Les fonctions LBound (Nombre) et UBound (Nombre) retournent respectivement l’indice le plus petit et l’indice le plus grand du tableau. b As Double. 13 . la déclaration Dim Tab3 (50 To 100. . 1) est égal à 50.Mohammedia Faculté des Sciences et Techniques Visual Basic J. Nombre (0) Nombre (1) Nombre (2) Nombre (3) (4) ) Nombre ( Nombre (5) Université Hassan II . Meziane 51 Université Hassan II .

j As Integer For i = 0 To nlc For j = 0 To nlc 'MsgBox "donner l'element " & i & j & " de la matrice" 'mat(i.Value Next j Next i End Sub Sub affiche_matt(mat() As Single.3) Passage de tableaux dans les procédures Pour passer tous les éléments d’un tableau en paramètre à une procédure.Mohammedia Faculté des Sciences et Techniques Visual Basic J. j + 1). ReDim Tab6 (10) alloue 10 éléments à Tab6. si le tableau Vect est déclaré comme suit : Dim Vect(10) As double l’appel Call Solt_Gauss(Vect( )) Pour passer un élément d’un tableau à une procédure Call PasserUnElement (Vect(5)) Pour une procédure recevant un tableau. 14 . Meziane 54 Const nmax As Integer = 10 Sub main() Dim mat1(nmax. Meziane 56 10. nmax) As Single Call lire_matt(mat1(). Meziane 53 Université Hassan II . Dim Tab6 () As Double La taille d d’un un tableau dynamique est spécifiée en cours d d’exécution exécution à l l’aide aide du mot clé ReDim (notons que la dimension du tableau ne peut pas être modifiée). la liste des paramètres de la procédure doit spécifier le passage d’un tableau. j + 1). fi é Le nombre d’éléments d’un tableau dynamique peut varier durant le déroulement du programme.Mohammedia Faculté des Sciences et Techniques Visual Basic J. 3) Call affiche_matt(mat1(). j) = Cells(i + 2.Mohammedia Faculté des Sciences et Techniques Visual Basic J.Value = mat(i. Par exemple.20/12/2012 Université Hassan II . il suffit de spécifier le nom du tableau suivi d’une paire de parenthèses vide. nlc As Integer) Dim i. j As Integer For i = 0 To nlc For j = 0 To nlc 'MsgBox "donner l'element " & i & j & " de la matrice" Cells(i + 2. P l l’entête l’ ê de d la l procédure éd S l G Solt_Gauss d devra s’écrire ’é i comme suit : Private Sub Solt_Gauss(a( ) As Double) La procédure Solt_Gauss reçoit un tableau de réel dans le paramètre a (la taille du tableau n’est pas spécifiée entre les parenthèses). Lire et écrire une matrice Université Hassan II . 3) End Sub Sub lire_matt(mat() As Single. j) Next j Next i End Sub 10. nlc As Integer) Dim i. Meziane 55 Université Hassan II .2) Les tableaux dynamiques Contrairement aux tableaux statiques dont le nombre maximum d’éléments est t fixé. Par exemple.Mohammedia Faculté des Sciences et Techniques Visual Basic J. j) = InputBox("donner l'element " & i & " " & j & " de la matrice") mat(i.

Mohammedia Faculté des Sciences et Techniques Visual Basic J. ch4 As String g ch1 = "Filière Ingénieur " ch2 = "Génie énergétique" ch3 = ch1 & ch2 ch4 = ch1 + ch2 MsgBox ch1 'Cells(2. ch3. End Sub Attention ! Les opérateurs & et + sont équivalents entre les chaînes. Meziane 60 11. . . Deux D types de d chaînes h î sont possibles ibl : Les chaînes de longueur variable exemple : Dim ch As String ch = "02 41 – abc" Les chaînes de longueur fixe Dim NomVariable As String * TailleChaîne La chaîne (NomVariable) de longueur fixe (TailleChaîne) exemple : Dim ch1 As String*5 ch = "02 41" Sub chaine() Dim ch1 As String * 5 ch1 = "Filière Ingénieur " MsgBox ch1 End Sub Résultat : Filiè La fonction Len (pour length) est utilisée pour déterminer la longueur d’une chaîne. Meziane 58 11) LES CHAÎNES Une chaîne dans Visual Basic a un type de donnée String. ch2. Exemple : Len ("02 41 – abc") est égal à 11.Value = ch1 MsgBox ch2 MsgBox ch3 ch3 et ch4 contiennent la chaîne MsgBox ch4 "Filière Ingénieur Génie énergétique ". diffé Par exemple ch = "bonjour" + 22 Erreur Par contre ch = "bonjour" & 22 Vrai 15 . . Université Hassan II . Meziane 57 Université Hassan II . L’ ili i de L’utilisation d l’opération l’ é i + entre des d opérandes é d de d type différent.Mohammedia Faculté des Sciences et Techniques Visual Basic J. 2).Mohammedia Faculté des Sciences et Techniques Visual Basic J.20/12/2012 Université Hassan II .Mohammedia Faculté des Sciences et Techniques Visual Basic J.1) Concaténation avec & et + Sub conct_chaine() Dim ch1. Meziane 59 Université Hassan II .

Meziane 61 Université Hassan II .Mohammedia Faculté des Sciences et Techniques Visual Basic J. yt(i . autre ch = "Bonjour monsieur" Mid$ (ch.Value = "y" Cells(2.Value = "x" Cells(2.1) + h / 2. 2).1) + h / 2.Mohammedia Faculté des Sciences et Techniques Visual Basic J. ch2) retourne 0 lorsque les chaînes ch1 et ch2 sont égales. 1) = "M" change le contenu de ch en "Bonjour Monsieur". yt(i . n As Integer) Dim i As Integer Dim h. 0 01 '//1 0/(n-1).1) + k1 / 2) k3 = h * fct(xt(i .Value = Exp(-tx(i)) Next i End Sub Function fct(x. yt(i . 3).1) + h Next i End Sub Runge kutta 16 . k2. <=.1). y As Double) As Double fct = -y End Function Sub runge_k(xt(). sous_ch = Mid$ ("programme".Value = ty(i) Cells(i + 3. 11. k1. 9. nb) retourne une sous-chaîne de la chaîne ch. Meziane 63 Const nmax As Integer = 1000 Sub main() Dim tx(nmax).Mohammedia Faculté des Sciences et Techniques Visual Basic J. 2).3) Manipulation de caractères dans une chaîne La fonction Mid$ (ch.Value = tx(i) Cells(i + 3. constituée de nb caractères à partir du caractère indiqué par la position pos (la position du premier caractère est égale à 1).2) Comparaison de chaînes Pour comparer deux chaînes la fonction StrComp et Les opérateurs <. ty(). yt() As Double. 1).Value = "solexacte" For i = 0 To nbr Cells(i + 3. 1).1) + h. yt(i . -1 si la chaîne ch1 est inférieure à ch2. xt(0) = 0 yt(0) = 1 For i = 1 To n k1 = h * fct(xt(i . <>. 3). Université Hassan II . =. ch2 1 si la chaîne ch1 est supérieure à ch2. >=. 2.1) + k3) yt(i) = yt(i . Meziane 62 11. 3) sous_ch = "rog" Permet aussi de remplacer une portion de chaîne par une autre. >. La comparaison entre deux chaînes est basée sur les différentes valeurs ASCII codant les chaînes. ty(nmax) As Double Dim i.0/(n 1).01 //1.1)) k2 = h * fct(xt(i . k3. k4 As Double h = 0. pos. StrComp (ch1. nbr) Cells(2. nbr As Integer nbr = 100 Call runge_k(tx().1) + k2 / 2) k4 = h * fct(xt(i . StrComp ("A".1) + (k1 + 2 * k2 + 2 * k3 + k4) / 6 xt(i) = xt(i . Exemple. "B") est égal à 1 car le code ASCII de A (= 65) est inférieur à celui de B (= 66).20/12/2012 Université Hassan II .