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 :
| 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 |
---------------------------------------------------------------------------------------------------
Article plus récent Article plus ancien