jeudi 5 janvier 2012

Les Principales commandes en VBA EXCEL 2007 : Déclaration des variables - la structure alternative et itérative - les Fonctions VBA Excel

CHAPITRE IV : les principales commandes en VBA EXCEL 2007

La Déclaration des variables et Constantes et les structures de bases

Déclaration de variables
Dim nom_variable AS type_variable
Reportez-vous à l'aide en ligne sous l'éditeur VBA pour avoir un résumé des types de données.

Déclaration de constantes

Const nom_variable = valeur

La structure alternative « Si »

If condition Then
instructions1
Else
instructions2
End If

La structure alternative « Selon »

Select Case nom_variable
Case nomvariable valeur1
Case nomvariable Is >valeur2
Case nom_variable valeur 3 To valeur4
Case Else
End Select

La structure itérative "Pour"

For compteur = valeur_départ To valeur_arrivée
instructions
Next compteur

La structure itérative "Tant que"

While condition
instructions
Wend

Boîte de saisie

nom_variable = InputBox ("message dans la boîte" , "titre de la boîte" , "valeur par défaut")

Boîte de dialogue
MsgBox ("message" & variable & "autre message"…)

Boîte de dialogue à boutons

nom_variable = MsgBox ("message dans la boîte" , constante bouton)

Les constantes "bouton"


Constante bouton
Description
Constante
valeur renvoyée
Description
vbYesNo
Affiche les boutons Oui et Non.
vbOK
1
OK
vbYesNoCancel
Affiche les boutons Oui, Non et Annuler
vbCancel
2
Annuler
vbAbort
3
Abandonner
vbOKOnly
Affiche le bouton OK uniquement
vbRetry
4
Réessayer
vbOKCancel
Affiche les boutons OK et Annuler
vbIgnore
5
Ignorer
vbAbortRetryIgnore
Affiche le bouton Abandonner, Réessayer et Ignorer.
vbYes
6
Oui
vbNo
7
Non



Exemple

Code VBA
Signification
Public Sub essai()
début de la procédure
'déclaration des variables et des constantes
le caractère ' permet d'insérer des commentaires
Dim reponse As String, prix As integer, ttc As single
Dim fermer As string
déclaration des variables reponse de type chaîne de caractères, prix de type entier, ttc de type réel
Const tva = 0.196
déclaration d'une contante
prix = InputBox ("Saisir un prix HT", "Saisie du prix")
affichage d'une boîte de saisie et sauvegarde de la saisie dans la variable prix
ttc = prix * ( 1 + tva )
calcul
MsgBox ("Le montant TTC est de " & ttc & " €")
affichage du résultat du calcul
fermer = MsgBox ("Voulez-vous quitter?", vbYesNo)
affichage d'une boîte de dialogue avec les boutons OUI/NON. Si l'utilisateur clique sur OUI, fermer vaut VbYes (6)sinon il vaut VbNo (7)
If fermer = vbYes Then
ThisWorkbook.Close
End If
Fermeture de la feuille de calcul si l'utilisateur a cliqué sur OUI
End Sub
Fin de la procédure

Les fonctions (liste non exhaustive)

Fonctions de conversion
Fonction
Effet
Exemple
Cint(Valeur)
Conversion d’une valeur numérique ou chaîne en entier
Cint(3,1415) renvoie 3
Cint(« 3,1415 ») renvoie aussi 3
Csng(Valeur)
Conversion d’une valeur numérique ou chaîne en entier
Csng(« 3,1415 ») renvoie la valeur 3,1415
Cstr(Valeur)
Conversion d’une valeur numérique en chaîne de caractères
La variable Tot contient 124,51
Msg= « Le montant est de » & Cstr(tot) & « € » Msg vaut alors
« Le montant est de 124,51 € »
Cdate(Valeur)
Conversion d’une valeur en date
Cdate(« 01/01/2003 »)
D’autres fonctions de conversion sont accessibles depuis l’aide de VBA

Fonctions mathématiques
Fonction
Effet
Exemple
Abs(Valeur)
Renvoie la valeur absolue
Abs(-50) renvoie la valeur 50
Sqr(Valeur)
Renvoie la racine carré d’un nombre
Sqr(36) renvoie la valeur 9
Autre méthode : 36^(1/2)
Int(Valeur)
Renvoie la partie entière d’un nombre
Int(3.1415) renvoie la valeur 3
Rnd
Renvoie un nombre aléatoire compris entre 0 et 1
Génération d’un nombre entier compris entre 0 et 20 :
Int(rnd*20)
Génération d’un nombre compris entre 75 et 100 :
75+Int(Rnd*25)
Randomize
Instruction permettant de réinitialiser la génération de nombres aléatoires
Il évite que la fonction Rnd ne produise les mêmes valeurs à chaque exécution de la procédure



Fonctions de manipulation de chaînes de caractères
Fonction
Effet
Exemple
Left(Texte,n)
Extrait les n caractères de gauche du texte
Left(« Paul Emile »,4) renvoie la valeur « Paul »
Right(Texte,n)
Extrait les n caractères de droite du texte
Right(« Paul Emile,5) renvoie « Emile »
Mid(Texte,PosDépart,n)
Extrait les n caractères du texte à partir d’une position de départ
Mid(« P10 au soleil »,5,2) renvoie la valeur « au » (attention : les espaces sont considérés comme des caractères)
Len(Texte)
Renvoie la longueur du texte
Len(« P10 au soleil ») renvoie la valeur 13
Asc(Caractère)
Renvoie en valeur entière le code ASCII d’un caractère
ASC(« A ») renvoie la valeur 65 et Asc(« Z ») renvoie la valeur 90
Chr(Code)
Renvoie le caractère correspondant au code ASCII
For i=65 To 90
Debug.Print Chr(I)
Next i
Affiche toutes les letters de A à Z dans la fenêtre de déboguage
…………..

Fonctions de date et heures
Fonction
Effet
Exemple
Date
Renvoie la date actuelle (l’équivalent de AUJOURDHUI()

Time
Renvoie l’heure système

Day(UneDate)
Renvoie le n° de jour
Day(« 28/02/2003 ») renvoie 28
Month(UneDate)
Renvoie le mois
Month(« 28/02/2003 ») renvoie 2
Year(UneDate)
Renvoie l’année
Year(« 28/02/2003 ») renvoie 2003
WeekDay(UneDate)
Renvoie le n° de jour de semaine
WeekDay(« 28/02/2003 ») renvoie 6 (vendredi)
MonthName(nombre)
WeekDayName(nombre)
Ces fonctions permettent d’obtenir le mois ou le jour de semaine en toutes lettres
MonthName(2) renvoie « Février »)
Qu’on peut obtenir aussi de la manière suivante :
MonthName(Month(« 28/02/2003 »))
Datepart(« Période »,UneDate)
L’argument période peut être :
yyyy
Année
q
Trimestre
m
Mois
y
Jour de l'année
d
Jour
w
Jour de la semaine (1)
ww
Semaine
h
Heure
n
Minute
s
Seconde
A partir d’une date, renvoie la période concernée. L’argument période doit être entre guillemets
(1) les jours de la semaine ont les codes suivants :
1 : Dimanche
2 : Lundi
3 : Mardi
4 : Mercredi
5 : Jeudi
6 : Vendredi
7 : Samedi

Si la date système est le samedi 28 février 2003 , les différentes valeurs renvoyées par DatePart seront les suivantes :
DATEPART(« yyyy »,Date)=2003
DATEPART(« q »,Date)=1
DATEPART(« m »,Date)=2
DATEPART(« y »,Date)=59
DATEPART(« d »,Date)=28
DATEPART(« w »,Date)=6
DATEPART(« ww »,Date)=9





DateAdd(“Période”,Nombre, DateDebut)
Ajoute le nombre de périodes à la date donnée. L’argument période est le même que pour la fonction DatePart
DdateAdd(« m »,4, »28/02/2003) : ajoute 4 mois à la date du 28/02/2003 et renvoie la date : 28/06/2003
DateDiff(« Période »,Date1,Date2)
Renvoie l’intervalle de temps entre 2 dates. L’argument période est le même que pour DatePart
dateDiff("d","28/02/2002","28/02/2003")
renvoie la valeur 365

---------------------------------------------------------------------------------------------------

0 commentaires:

Enregistrer un commentaire

Share

Twitter Delicious Facebook Digg Stumbleupon Favorites

 

IP