Cours VBA TM PDF

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 23

Chapitre 1

Informatique II
Programmation Evénementielle Introduction à l’algorithmique et à
la programmation
Technique de Management S2

2 Informatique 1 2014/2015

Programmation informatique

Programmation?? La programmation dans le domaine informatique est l'ensemble


des activités liés à l’écriture la mise en point et l’exécution d’un
programme .

Un programme informatique est une succession d'instructions


exécutable par l'ordinateur. c'est-à-dire une succession de 0 et
de 1.

Ces programmes sont traduits en langages machine.

4
3 2014/2015
Les étapes de développement

le programme est un simple fichier, que l'on appelle fichier


source. Le fichier source contient les lignes de programmes
que l'on appelle code source. Ce fichier source une fois
terminé doit être compilé. La compilation se déroule en deux
étapes :

Fichier source Fichier objet Fichier exécutable

Ne pas se laisser aveugler par l'objectif final: le


Compilateur Editeur de liens
codage!
5
6 2014/2015

Notion d’algorithme
Description d’un processus de résolution d’un problème C’est une suite des actions à effectuer pour
bien défini. • réaliser un traitement donné
Succession d’actions qui, agissant sur un ensemble de • résoudre un problème donné
ressources (entrées), fourniront la solution (sortie) au
Un algorithme est la description ,en langage naturel,
problème.
d’une suite finie de règles à appliquer dans un ordre
déterminé à un nombre fini de données pour arriver à
un certain résultat,

8
Structure d’un algorithme

L’algorithme d’un programme est organisé en plusieurs parties :


L’écriture d’un algorithme permet : déclaration des constantes
d'être compréhensible par tout informaticien même s'il ne déclaration des variables
connait pas le langage du programme. définition des fonctions et procédures
de rester focalisé sur la logique du programme et non sur les définition du programme principal
particularités du langage utilisé.

L’Algorithme c’est le passeport pour la programmation

9 10

Exemple
Enoncé du problème indique:

Les données fournies (input): deux nombre


Calcul de l’intérêt et de la valeur acquise par une o La valeur de la somme placée
o Le taux d’ intérêt
somme placée pendant un an à intérêt simple
Les données désirés (output): deux nombre
o L’intérêt fourni par la somme placée
o Valeur obtenue après placement d’un an
Etapes caractérisant la résolution d’un problème sur

Il nous faut maintenant décrire les différents étapes ordinateur:

permettant de passer des données au résultats . Comprendre la nature du problème posé et préciser les

Nos connaissance nous permettent d’exprimer cette règles: données fournies (input).

‘’ Pour Obtenir l’intérêt fournit par la somme, il suffit de Préciser les résultats qu’on désire obtenir (output).
multiplier la somme par le taux d’intérêt divisé par cent; la Déterminer le processus de transformation des données en
valeur acquise s’obtient en additionnant ce dernier montant et la résultats.
somme initiale ’’

Notre exemple deviendra: Notre exemple en langage algorithmique


écrire ‘’Introduisez la somme initiale (en dirhmas) :‘’
(1)Prendre connaissance de la somme initiale et du taux
lire sommeinitiale
d’intérêt.
écrire ‘’Introduisez le taux d’intérêt ‘’
(2)Multiplier la somme par le taux; diviser ce produit par
Lire taux
100; le quotient obtenu est l’intérêt de la somme
Interet<-- sommeinitiale*taux/100
(3) Additionner ce montant et la somme initiale, cette Valeuracquise<-- sommeinitiale+intérêt
somme est la valeur acquise. Écrire’ ’l’intérêt fourni est de ‘’, intérêt, ‘’dirhams’’
(4) Afficher les valeurs de l’intérêt et de la valeur acquise Écrie’’la somme après un an sera de ‘’, valeuracquise, ‘’dirhams’’
Les valeurs manipulées sont:

Nous remarquons: Des constantes (100)

Des variables (somme initiale, taux, intérêt,


Deux verbes particuliers:
valeur_acquise)
Lire qui correspond à la saisie, à l’introduction des
Ainsi
données.
Interet<-- somme_initiale*taux/100: Assigner à la variable
Écrire qui exécute l’affichage à l’écran ou l’impréssion des
résultats. intérêt la valeur de l’expression à droite.

<-- : symbole d’affection

Structure d’un algorithme Syntaxes et exemples

1- Déclaration des constantes :


Syntaxe : Constante NomConstante : [Type] = Valeur
Exemples :
Constante Pi : Reel = 3.141559
Constante Note_réf : Entier = 10 ;

19 20
Type Utilité Exemple
2- Déclaration des variables
Représente un état
Booléen Vrai
Syntaxe : Variable NomVariable : [Type] binaire, vrai ou faux
Représente un
Numérique 12345.6789
Exemples : nombre quelconque
Représente un
Variable Rayon : Reel caractère unique
Caractère 'c'
(comme une touche
Variable note_exam1 : Entier du clavier)
Variable sexe : Caractère "contenu de la
Chaîne de caractères Représente un texte
chaîne"

Type de variable Mot clé Octets


nécessaires

3- Corps de l’algorithme ou programme principal


Caractère char 1
Entier int 4
Le programme principal consiste en une suite d’opérations
élémentaires faisant souvent appel à sous programmes Le
Entier long long 8
programme principal est délimité par les mots-clefs Début et
Réel standard float 4 Fin, la partie réellement exécutées dans un algorithme ou
programme .
Réel double précision double 8

24
Exemple : var ←5 ;
4- Affectation var ← donnée
surface ← pi*rayon*rayon
L’affectation consiste à attribuer une valeur à une Application :
variable 1) Donnez les valeurs des variables A, B et C après exécution
l'affectation se note avec le signe ←. des instructions suivantes ?
Variables A, B, C : Entier
NomVariable ← Expression Début
NomVariable et Expression doivent être de même type A←3
ou de types compatibles B←7
A←B
B ← A+5
C←A+B
C←B–A
Fin
26

5- Instructions d’entrée et sorties Exemple :


Saisir le prix d’un produit :
Les instructions d’Entrée/Sortie (E/S) permettent à la machine
Variable prix : entier
de communiquer avec l’utilisateur.
Début
La lecture permet d'entrer des donnés à partir du clavier en
Ecrire ("donner le prix de votre produit" )
algorithme on note Lire(Variable).
Lire (prix)
L'écriture permet d'afficher des résultats à l'écran (ou de les
Ecrire ( "le prix saisi est" , prix)
écrire dans un fichier). Et on note : écrire (« Bonjour tout le
Fin
monde »)

27 28
Application :
1- Calcul du double d’un nombre
1. Ecrire un algorithme qui demande un nombre entier à Algorithme Calcul_double
l'utilisateur, puis calcule et affiche le double de ce variables A, B : entier
nombre ? Début
2.Écrire un algorithme qui calcule la surface S d’un écrire("Saisir la valeur de A: ")
lire(A)
cercle selon la formule S = Pi * R^2 ?
B ← 2*A
écrire("le double de ", A, "est :", B)
Fin

30

Chapitre 2

2- Application calcule surface


Calcul_surface
Constantes
Pi = 3,14159
Langage de programmations
Variables
Rayon, Surface : réels
Début
lire (Rayon)
Surface := Pi * (Rayon)2
écrire (Surface)
Fin

31
Langage de programmation

Programmer, dans quel langage ? Visuel basic

Bases de langage Visuel Basic for application

33
1

On appelle « langage informatique » un langage destiné à décrire Un langage informatique a donc plusieurs avantages :
l'ensemble des actions qu'un ordinateur doit exécuter.
il est plus facilement compréhensible que le langage machine
Un langage informatique est ainsi une façon pratique pour nous
(humains) de donner des instructions à un ordinateur. il permet une plus grande portabilité, c'est-à-dire une plus
grande facilité d'adaptation sur des machines de types différents ;
(visuel basic, langage C, C++, Assembleur …)

35 36
Pourquoi Visual Basic ?

Langage de Programmation derivé de Visual Basic


Le Visual Basic est l’un des langages de programmation les plus
Editeur : Microsoft
performants et les plus simples à utiliser.
Dernière Version : 7.1 Office 2013
Sa simplicité explique son choix pour le développement des
Licence : Propriétaire
interfaces.
Intégré dans la suite Office, AutoCAD, CATIA,
Permet le développement rapide d'application

37 38

Le VBA (Visual Basic for Applications) est un langage proche du Visual Basic
qui nécessite une application hôte pour s'exécuter
(Excel dans notre cas).
Fonctionnalité du langage :
Comment afficher l’onglet devloppeur du Visual Basic sur l’Excel ?

Créer des applications graphiques de façon simple

Créer des exécutables (fichiers .EXE),

Connections à la base de donnée.

être facile d'utilisation pour les débutants

fournir des messages d'erreur clairs

39 40
Nous allons ajouter un nouveau module qui va vous
permettre de coder. le menu «Insertion » puis cliquez sur
Un projet, oui mais lequel ?
« Module » :
Module de
Un projet s'applique en général feuille
sur un travail dans le classeur ou
dans une feuille de calcul
particulière. C'est un groupe de
macros, qui s'appellent entre Module de
elles, qui échangent avec classeur
l'utilisateur...

Chaque mot en gras est un projet. Vous pouvez l'explorer au moyen de


la petite croix à gauche de chacun :
41 42

Pour travailler avec du code VBA, nous avons besoin d'un éditeur, celui-ci
Comment renommer un module? est déjà installé et vous pouvez l'ouvrir avec le raccourci "Alt F11" :

Cliquez sur le bouton


« Fenêtre Propriétés (F4) » :
ça affichera le menu des
propriétés du module

43 44
Exemple d’application :
Les variables
-Programme affichant une fenêtre avec
les mots « Bonjour tout le monde »
Les variables permettent de stocker toutes sortes de données.
Sub main ()
MsgBox ("Bonjour tout le monde")
End Sub Les noms de variables n’ont pas de longueur maximale

Ils doivent commencer par un caractère

Ils ne doivent pas comporter d’espace

Elle est limitée à 40 caractères

Elle ne doit pas être identique à un mot réservé

45 46

Comment créer une variable ?


Type de variable :

Dim <nom_variable >As <Type>


Exemple : Dim ma_variable As Integer

Dim : déclaration de la variable


ma_variable : nom choisi pour cette variable (sans espaces)
As : déclaration du type de la variable
Integer : type de la variable

On peut déclarer plusieurs variables sur une même ligne

Dim nom As String, prenom As String, age As


Integer

47 48
Type de variable : 'Exemple : nombre entier
Dim nbEntier As Integer
nbEntier = 12345

Boolean : True – False 'Exemple : nombre à virgule


Dim nbVirgule As Single
Byte : de 0 à 255 nbVirgule = 123.45

Integer : de –32 768 à 32 767 'Exemple : texte


Dim varTexte As String
Long : de –2 à +2 milliards environ varTexte = "Bonjour"

Single : virgule flottante simple précision 'Exemple : date


Dim varDate As Date
Double : virgule flottante double précision varDate = "06.02.2015"

String : jusqu’à 65 000 caractères 'Exemple : vrai/faux


Dim varBoolean As Boolean
varBoolean = True
49 50

Que contient ma variable ?


Exemple pratique TP1:

Sub Test ()
Exemple pratique :
Dim a As Integer, b As Integer, c As Integer
Affichage de la valeur 12 de la variable « N » dans une boîte de dialogue
a=3
b=5
Sub variables() a=a+b ‘a devient =8’
'Déclaration de la variable
Dim N As Integer c=a*b ‘c=40’
'Attribution d'une valeur à la variable
N= 12
Msgbox a
'Affichage de la valeur de N dans une MsgBox Msgbox c
MsgBox N
End Sub
End Sub

51 52
Importance du type
Importance des type
Sub Test ()
Sub Test () Dim a As Integer, b As Integer, c As single
Dim a As Integer, b As Integer, c As Integer a=9
a=9 b=2
b=2 c=a/b
c=a/b Msgbox c
Msgbox c End Sub
End Sub
c=4 c=4,5
53 54

Exercices d’applications TP1 :

1-Ecrire un programme en langage visuel basic qui demande un


nombre entier à l'utilisateur, puis calcule et affiche le double de ce
nombre ? Les conditions
2.Écrire un programme qui calcule la surface S d’un cercle selon
la formule S = Pi * R^2 ?

3- Ecrire un programme qui calcul le montant total hors taxe et le


montant total avec taxe comprise.
on donne Prix1=3600 Dh/HT et Prix2=4500Dh/HT

55
Instruction conditionnelle : Si
Explication
Les instructions conditionnelles servent à n'exécuter une instruction ou Si la condition 1 est vraie, les instructions 1 sont
une séquence d'instructions que si une condition est vérifiée.
exécutées puis nous sortons de l'instruction If (qui débute
avec If et finit à End If). Si la condition 1 est fausse, nous
passons à la condition 2. Si celle-ci est vraie les instructions 2
sont exécutées si ce n'est pas le cas les instructions 3 seront
alors exécutées

57 58

Syntaxe Algo : Si (condition) alors


Condition SI SINON SI :
Instruction ou séquence d’instructions 1
Sinon
Instruction ou séquence d’instructions 2 Syntaxe Algo : Si( condition )alors
Finsi Instructions1
Sinon si (condition) alors
Instructions1
Finsi
Syntaxe VBA : If (condition) Then
Passages à la ligne obligatoires
instruction 1 Syntaxe VBA : If (condition) Then
instruction 2 instruction 1
... ...
Else Else if (condition) Then
instruction 1 instruction 1
... ...
End If End If

59 60
TP Correction :
Programme en VBA :
Algorithme : Calcul valeur absolue
Sub valeur_absolu()
Variable x : réel
Début Dim x As Double
Ecrire (" Entrez un réel : ") x = InputBox("donner la valeur de x")
Application 1 : If (x < 0) Then
Lire (x)
MsgBox -x
Faire un Algorithme et ensuite un programme en VBA Si (x < 0) alors
Else
Ecrire ("la valeur absolue de ", x, "est:",-x)
qui calcul la valeur absolue d’un nombre réel MsgBox x
Sinon
End If
Ecrire ("la valeur absolue de ", x, "est:",x)
Finsi
End Sub
Fin

61 62

Application 3 : Ecrire un programme qui affiche une phrase en


Application 2 : Ecrire un programme qui affiche la valeur de b=1
fonction du résultat de l’age .
si a=5 et b=2 si a<15 et b=3 pour les autres valeur
Algorithme : condition Syntaxe VBA

Autre syntaxe en VB: Variable a : entier Sub test_condition()


Syntaxe en VB:
Dim a As Integer, b As Dim a As Integer, b As Début
Integer Age =20 Dim age As Byte
Integer
a=5 Si age >= 18 alors age = 20
a=5
If a<10 Then If a<10 Then Ecrire ("Vous êtes un adulte« )
b=1 Sinon If age >= 18 Then
b=1
Else If a<15 Ecrire ("Vous êtes encore mineur« ) MsgBox "Vous êtes un adulte"
Else
b=2 b=2
Else Fin si Fi Else
End If
b=3 MsgBox "Vous êtes encore mineur"
End If
End If
End Sub
63 64
Application 4 :
les opérateurs arithmétique (de comparaison ):
Ecrire un programme qui demande à l’utilisateur de faire entrer un
nombre, et l’informe si ce nombre est positif ou négatif (on laisse de côté le cas
où le nombre vaut zéro) = est égal à

<> est différent de


Application 5 :
Ecrire un programme en VBA qui demande à l’utilisateur de faire entrer une note et
< est plus petit que
d’afficher Bien si la note supérieure à 14, A. Bien si la note est supérieure à 12,
passable si la note est inférieure à 12 et supérieure a 10 et travail insuffisant si la <= est plus petit ou égal à
note est inférieur à 10
> est plus grand que

>= est plus grand ou égal à

65 66

Structure « cas » :
Les opérateurs Logiques:

Syntaxe algorithme Syntaxe VBA


Select Case x
[condition1] AND [condition2] Cas Case ‘a’
AND et Les 2 conditions doivent être
vraies
x = ‘a’ → traitement 1 Traitement 1
x = ‘c’ → traitement 2 Case ‘c’
[condition1] OR [condition2] … Traitement 2
OR ou Au moins 1 des 2 conditions autre → traitement n
doit être vraie

Fin cas Case Else
NOT faux
NOT [condition1] Traitement n
La condition doit être fausse End Select

67 68
Boucle : Pour/ next :
Les boucles

Syntaxe Algorithme :
Une boucle est un ensemble d’instructions qui est répété un certain
nombre de fois. Pour x allant de 0 à 9 faire
Traitement
Si l’on veut faire un compteur qui compte jusqu’à 50000, alors c’est la Fin pour
seule solution.
Syntaxe VBA :
Plusieurs syntaxes possibles: For x=0 to 9
For, While, Loop, Do While, … Traitement
Les plus utilisées: For et While Next x [nom de la variable
d'incrément]

69 70

Boucle : Pour/ next :


Ecrire un algorithme puis un programme en VBA qui demande un nombre
Exemple : afficher de 1 à 10 au départ, et qui calcule la Somme des entiers jusqu'à ce nombre. Par
exemple si l'on tape 4 l’algorithme doit calculer: 1+2+3+4=10
Syntaxe VBA sans Syntaxe VBA avec boucle
boucle Algorithme : somme nombre Programme VBA:
Sub boucle() Sub boucle () Variable n , i , S : Entiers Sub calcul_somme()
For nombre = 1 to 10 Ecrire(« donner un nombre n « ) Dim n, i, S As Integer
MsgBox "1" Li re (n) n = InputBox("donner la valeur de n")
MsgBox "2" MsgBox nombre
S=0 For i = 1 To n
MsgBox "3" Pour i=1 a n faire S=S+i
MsgBox "4" Next nombre
S S+i Next i
MsgBox "5" End sub Fin pour MsgBox S
MsgBox "6" Ecrire (« la somme de 1 a n est S « )
MsgBox "7" Fin End Sub
MsgBox "8"
MsgBox "9"
MsgBox "10"

End Sub
71 72
Boucle tant que / While :
Boucle While:
Dans cette structure, on commence par tester la condition ; si
elle est vérifiée, le traitement est exécuté.
Exemple : Afficher de 1 à 10 en utilisant la boucle tant que .

Différence avec For: on ne connaît pas toujours la fin de la Syntaxe Algorithme Syntaxe VBA
Affichage Sub test_while()
boucle à l’avance.
Variable : nombre : entier Dim nombre as integer
Début nombre= 0
Nombre =0 While nombre < 10
Syntaxe Algorithme: Tant que nombre <10 faire nombre = nombre + 1
Syntaxe VBA
tant que (condition est vérifiée) faire While (condition) Nombre=nombre +1 MsgBox nombre
Instruction 1 . instruction 1 Ecrire (nombre ) Wend
Fin tant que Wend Fin tant que End Sub
... ... Fin

73 74

Do Loop Exemple : Afficher de 1 à 10 en utilisant la


boucle (do While…loop)
Cette boucle fonctionne de la même manière
que While Wend (tant que la condition est vraie, la
Sub exemple1()
boucle est exécutée) :
Dim n As Integer
n=0
Syntaxe
do while n<10
n=n+1
Do While [condition]
MsgBox n
'Instructions
loop
Loop
End Sub
La condition peut également être placée en fin de Plutôt que de répéter la boucle tant que la condition
boucle Do Loop, ce qui implique que les instructions
sont exécutées au moins une fois : est vraie, il est possible de quitter la boucle lorsque la
Sub boucle_do_while() condition est vraie en remplaçant While par Until :

Do
'Instructions Do Until [condition]
Loop While [condition]
'Instructions
End Sub Loop

La boucle Do Until : La boucle Do Until :

Exemple : Afficher de 1 à 10 Exemple : Ecrire un programme qui demande un nombre a l’utilisateur


encore et encore tant que l'utilisateur s'évertue a entrer un autre chiffre
que 5
Syntaxe Algorithme
Affichage Syntaxe VBA
Variable : nombre : entier Sub test_boucle()
Début Nombre = 0
Répéter [Jusqu'à ce que] Do Until nombre = 10
nombre =10 faire nombre = nombre + 1
Nombre=nombre +1 MsgBox nombre
Ecrire (nombre ) Loop
Fin End Sub

79 80
Structures Langage Langage Visual Basic
Algorithmique
La boucle Do Until :
Si condition alors If condition then
Traitement Traitement
Exemple : Ecrire un programme qui demande un nombre a l’utilisateur
Fin si End if
encore et encore tant que l'utilisateur s'évertue a entrer un autre chiffre
que 5 Si condition alors If condition then
Traitement 1 Traitement 1
Syntaxe Algorithme Sinon Else
Syntaxe VBA Traitement 2 Traitement 2
Sub TestLoop() Fin si End if
Début Conditionnelles
Var : n entier Dim n As Integer Select Case x
Répéter Do Cas Case ‘a’
n= InputBox("Entrez un chiffre") x = ‘a’ → traitement 1 Traitement 1
Ecrire (‘donner un nombre »)
Loop until n <> 5 x = ‘c’ → traitement 2 Case ‘c’
Lire (n) … Traitement 2
Jusqu’à ce que n<>5 End Sub
autre → traitement n …
Fin Fin cas Case Else
Traitement n
End Select
81 82

Structures Tableau
Langage Récapitulatif
Algorithmique Langage Visual Basic

Tant que condition faire While condition


Traitement Traitement
Fin tant que wend
Exercice 1 :
Itératives faire Tant que condition Do while condition
Traitement Traitement Ecrire un algorithme qui demande un nombre compris entre 10 et 20,
Fin tant que loop jusqu’à ce que la réponse convienne. En cas de réponse supérieure à
20, on fera apparaître un message : « Plus petit ! », et inversement, «
faire Do Plus grand ! » si le nombre est inférieur à10 ;
Traitement Traitement
Fin tant que condition Loop while condition

Répéter Do
Traitement Traitement
Jusqu’à condition Loop until condition

Pour x allant de 0 à 9 For x=0 to 9 83 84


Traitement Traitement
Fin pour Next x
Solution : Algorithme Solution :VBA
Variable N en Entier Sub test()
Debut Dim n As Integer
Ecrire "Entrez un nombre entre 10 et 20« While n < 10 Or n > 20
TantQue N < 10 ou N > 20 n = InputBox("donner un nombre entre 10 et 20")
Lire N If n < 10 Then
Si N < 10 Alors MsgBox ("nombre plus petit")
Ecrire "Plus grand !« ElseIf n > 20 Then
SinonSi N > 20 Alors MsgBox ("nombre plus grand ")
Ecrire "Plus petit !« End If
FinSi Wend
FinTantQue End Sub
Fin

85 86

Exercice 2 : Solution exercice 1 : Solution exercice 2 :

Ecrire l’algorithme qui demande un nombre à l’utilisateur et affiche les Sub boucle() Sub TestLoop5()
10 nombres suivant. Dim n, i As Integer Dim Reponse As String
n = InputBox("donner un nombre") Reponse = InputBox("entrer le mode
Exercice 2 : For i = 0 To 5 passe ")
Ecrire un programme que demande un mode passe a l’utilisateur Si on s=n+i Do Until Reponse = "test"
entre le bon mot de passe immédiatement, le programme s'arrête sinon MsgBox s
il nous donne mauvaise réponse , essayez encore . Next i Reponse = InputBox("Mauvaise
réponse. Essayez encore")

Loop

End Sub

87 88
Boucle While: Ecrire un algorithme puis un programme en VBA qui
demande un nombre de départ, et qui calcule la Somme des entiers
jusqu'à ce nombre. Par exemple si l'on tape 4 l’algorithme doit calculer:
1+2+3+4=10

Algorithme : somme nombre Programme VBA


Variable n , i , S : Entiers Sub somme()
Ecrire(« donner un nombre n « ) Dim s, n, i As Integer
Lire (n) n = InputBox(« donner un nombre n")
S=0 s =0
While i <= n
i=1
s=s+i
Tant que i<=n faire i=i+1
S S+i wend
i=i+1 MsgBox (« la somme de 1 a »&n& «
Fin tant que est » & s)
Ecrire (« la somme de 1 a », n , » est », S ) End Sub
Fin 89

Vous aimerez peut-être aussi