Lexique Algorithmique Et VBA
Lexique Algorithmique Et VBA
Lexique Algorithmique Et VBA
STAGE RENOVATION
- Algorithmique -
Types de variables
ALGORITHMIQUE
Plages de valeurs : Types de donnes : Byte
VBA
Plages de valeurs : De 0 255.
Boolen
Vrai ou Faux
Boolean
True ou False.
Entier
Integer
De 32 768 32 767. Entier long. De 2 147 483 648 2 147 483 647. (virgule flottante en simple prcision). (virgule flottante en double prcision). Entier avec dcalage pour signifier les types montaires (avec 2 dcimales). Nombres dcimaux de grande prcision (28 chiffres aprs la virgule). Du 1er janvier 100 au 31 dcembre 9999 (pour affecter une date : variable = #10/11/1999#). Texte. Reoit nimporte quelle valeur, quil sagisse dun nombre entier, dun objet ou dun texte.
Long
Rel
Single
Double
Currency
Decimal
Date
Date
Chane
String
Variant
Type Tableau[x, ]
page 1 / 16
A.2.
Dim variable as Single Dim Nom_Famille as String Dim prenomEleve as Single, codePostal as Single
dimension du Dclarer un tableau :
variable[n,]dechane
(o n reprsente tableau.) la
premire
Exemple pour construire un tableau dune colonne Dim variable() As String (pour un tableau dont on ne connat pas lavance et 10 lignes : la taille. Cette dclaration est trs gourmande en variable[10]deChane capacit mmoire.) Il faut par la suite utiliser Construire un tableau de deux colonnes et 10 ReDim pour redimensionner le tableau ds que lon en a la taille dfinitive. lignes : Par exemple : variable[2,10] ReDim variable(3,10) ou
variable[10,2]
Attention : VBA, comme les autres langages, commence la numrotation des variables dun N.B. : Les variables peuvent tre crites en majuscules ou en minuscules. On ne peut pas tableau 0 ! Cela veut dire que si vous faites la changer de format dcriture au cours dun dclaration suivante : Dim variable(3) As String algorithme. Vous irez de 0 3, soit quatre occurrences de Si la variable choisie doit comporter plusieurs tableau nomm : variable. mots, comme par exemple montant h.t. , les diffrents mots qui composent le nom de la La seule faon de forcer VBA commencer sa variable seront alors spars par un trait de numrotation 1 serait d'crire l'instruction soulignement "_" (touche 8 du pav suivante en dbut de module: Option Base 1 alphabtique) : montant_ht(sans les points aprs le h et le t.) Ou lon distinguera les mots par des majuscules :
montantHT
page 2 / 16
om (2000-2007)
A.3.
Un Type permet de faire un tableau qui peut Remarque : En VBA les dclarations Type se font contenir diffrents noms de variables et surtout toujours avant la procdure. des variables de diffrents type. Quand on cr un tableau, on ne peut avoir quun seul type de Type Tablo Code_Personnel as Single donne. Par exemple :
variable[2,2]dechane
Code_ Personnel
Nom_ Personnel
de crer un tableau deux dimensions une table avec une variable de type Rel autre de type Chane. Par la suite on une variable du type que lon vient de
Variable[n]:Tablo
Ou lon affectera par exemple :
A.4.
page 3 / 16
om (2000-2007)
A.5.
FonctionNomFonction(variable):rel Entrevariable:rel
Pour retourner le rsultat :
as
. . . Retournervariable . . .
. . . Nom-Fonction = variable . . .
A.6.
Ajouter un commentaire
Lapostrophe est le signe du commentaire en VBA. Ds que lon place un apostrophe et que lon tape du texte celui-ci se transforme en vert.
Un algorithme comme un programme doit tre lisible. Il faut donc ajouter des commentaires pour faciliter la comprhension du programme. Cela permet galement de bien se reprer dans la structure de son algorithme.
Commentaire
Exemple :
/*Commentaire*/
Exemple :
Nom_Candidat:Chane/*Variablerecevant lenomducandidat*/
A.7.
A.8.
galit
Comparer
= <> > < >= <=
page 4 / 16
om (2000-2007)
A.9.
Afficher
Pour afficher un rsultat, une information on Il existe deux faons dafficher un rsultat sous Access : utilise la commande Afficher. Exemples : On peut afficher le contenu dune variable : Soit par une bote de dialogue grce linstruction MsgBox. La manipulation de cette instruction est complique bien que les rsultats soient mieux prsents.
Affichervariable
On peut afficher une phrase :
votre
N.B. : Voir en fin de lexique pour plus de dtails sur ces instructions.
A.10.
"( )" "^" "-" "*" et "/" "Div"
"Mod" :
10Mod3=1 10Mod2=0
"+" et "-" Addition et soustraction: Exemple : 4+35=2
page 5 / 16 om (2000-2007)
"=" "<>" Oprateurs de comparaison "<" ">" Cf. Comparaison "<=" ">=".
A.11.
Cumul
var_Cumul var_Cumul+variable
A.12.
Non Exemple :
Oprateurs logiques
Les instructions sont Not, And, Or : Not :
SiNon(A>10)Alors
Et Exemple :
SiA>=10EtA<=20Alors
Ou Exemple :
A.13.
Variable:rel/*commentaire*/ Variable2:Chane
Dbut
page 6 / 16
om (2000-2007)
A.14.
Condition :
Conditions / Slections
If condition Then Action Action End If
If condition Then Action Action Else Action Action End If Select Case variable Case Is condition Action Case Is condition Action . . Else: Action End Select
A.15.
Les itrations
Les Itrations (ou Rptitions) sont aussi appeles (Quitter prmaturment une boucle : Exit Do) des boucles : Boucles avec condition au dpart : (Quitter prmaturment une boucle : Sortir) Boucles avec condition au dpart :
page 7 / 16
om (2000-2007)
ou
Pour variable de dbut fin par pas de Do incrment Action Action Action Action Loop Until condition Finpour
Exemple : Boucles infinies :
Dbut
to
Fin
step
A.16.
On peut utiliser indiffremment les mots Saisir ou Sous Access une seule instruction assure la fois laffichage et la saisie dune variable : Lire : InputBox (Prompt, [Title], [Default], Saisirvariable [xpos], [ypos], [helpFile], [context]) Prompt = Texte du message. Ou [Title] = Titre de la boite de message. Lirevariable [Default] = Texte par dfaut propos dans la ligne de saisie. On peut Saisir/lire plusieurs variables : [xpos] et [ypos] = position de la fentre. Saisirvariable1,variable2,variable3 [helpFile] et [context] = fichier daide associ Parfois on veut afficher un message avant la la boite de dialogue. saisie : Exemple : Afficher"Entrervotrege:"
Saisirage
"Annuler" une fois lge saisi. La touche "Ok" termine la saisie alors que la touche "Annuler" provoquera une erreur. Cf. plus loin pour voir comment intgrer cette erreur possible dans un programme.
A.17.
Souvent, pour viter quun algorithme devienne trop long tout en devenant complexe on le coupe en plusieurs parties autonomes. Trs souvent galement des tches rptitives peuvent faire lobjet de procdures ou de fonctions part. Pour une procdure :
nom_procdure()
Pour une fonction :
variable = Nom_fonction(valeur)
ou
If Nom_fonction(valeur) = Then
Appelernom_procdure()
Pour une fonction :
variable=Nom_fonction(valeur)
siNom_fonction(valeur)=Alors
B. Complments VBA
Pour dcouper une chane afin de constituer un tableau, utiliser linstruction : Split (variable, " " ou " ;") dcoupe une chane selon le sparateur prcis " " ou " ;" Exemple : Dcomposer une chane en tableau : Split.
page 9 / 16
om (2000-2007)
Exemple dutilisation :
Vous pouvez galement grer les boutons (par dfaut le bouton "Ok" saffiche). Utilisez alors : VbOkOnly : Bouton "Ok" seulement ; VbOkCancel : Bouton "Ok" et bouton "Annuler" ; VbAbortRetryIgnore : Boutons "Abandon", "Ressayer" et "Ignorer" ; VbYesNoCancel : Boutons "Oui", "Non" et "Annuler" ; VbYesNo : Boutons "Oui" et "Non" ; VbRetryCancel : Boutons "Ressayer" et "Annuler". [Title] : reprsente le titre de la bote de dialogue (remplace Microsoft Access). [HelpFile & Context] : reprsentent les liens vers les ventuels fichiers daide lis la bote de dialogue. Exemples :
MsgBox "Jai envie dun verre deau Pouvez-vous men apporter ?", vbExclamation + vbYesNo, "Trs trs urgent !!"
Vous pouvez afficher du texte avec une ou plusieurs variables. Dans ce cas noubliez pas de prcder dun & les variables ou chanes que vous ajoutez :
MsgBox "Le montant de votre commande est : " & variable, vbExclamation, "Montant commande"
page 10 / 16
om (2000-2007)
Il peut arriver que vous ayez besoin de connatre le bouton sur lequel a appuy lutilisateur. Par exemple si vous demandez par une boite de dialogue si lon veut continuer Oui ou Non et que vous avez utilis le paramtre vbYesNo il vous faudra stocker la rponse dans une variable. Cette variable prendra la valeur vbOk si lon appui sur le bouton "Ok", vbYes si lon appui sur le bouton "Oui" etc. avec vbNo, vbCancel, vbRetry, vbIgnore. Cette fois-ci on ajoutera des parenthses entre les paramtres de MsbBox comme pour InputBox. MsgBox (Prompt, [Style de boite et bouton(s)], [Title], [HelpFile], [Context]) Exemple :
Dim Rponse As Integer Rponse = MsgBox ("Voulez-vous quitter vbQuestion + vbYesNo, "Fin de programme")
le
programme ?",
Linstruction Debug.Print nutilise aucun paramtre. Il suffit daccoler les informations ou variables imprimer. Exemples : Aller plus loin dans les fentres de rsultat(s) avec Debug.print.
Debug.print variable Debug.print "Les vaches donnent du lait !" Debug.print "Le n de tlphone est : " & Variable
On peut utiliser la virgule pour sparer les variables affiches avec Debug.Print (les variables sont affiches en colonnes), avec un point-virgule (les variables numriques sont affiches avec un espace avant). Les erreurs proviennent trs souvent lorsque la touche "Annuler" dune instruction InputBox est active. Cela arrte le programme. On peut viter le dclenchements de cette erreur et faire de sorte que lorsque lerreur se dclenche le programme passe linstruction suivante ou reprend la mme instruction. Pour viter cette erreur on place aprs la dclaration des variables linstruction suivante :
ERREUR: MsgBox "Vous ne pouvez pas Annuler !!", vbExclamation, "Le programme va se fermer !"
Ou si vous voulez reprendre partir de linstruction qui a provoqu lerreur :
page 11 / 16
om (2000-2007)
C. Spcificits Excel
Alt+F11 Ou OUTILS/MACRO Visual Basic Editor Pour excuter une macro OUTILS/MACRO MACRO Choisir dans la liste le nom de la procdure (une procdure). puis : Excuter Ouvrir Visual Basic puis choisir Module1 dans la fentre Projet VBAProject Ou Pour modifier une macro. Dans le menu OUTILS/MACRO MACRO Choisir dans la liste le nom de la procdure puis : Modifier OUTILS/MACRO MACRO Choisir dans la liste le nom de la procdure Pour Effacer une macro. puis : Supprimer On utilise linstruction : Pour ouvrir Visual Basic Editor.
Range("Adresse_Cellule").Value
Exemple : On veut affecter une variable la valeur de la cellule "B4" ci-dessous qui vaut 120000 :
variable = Range("B4").Value
Affecter la valeur dune variable une cellule Excel. On utilise galement linstruction :
Range("Adresse_Cellule").Value.
Exemple : On affecte la cellule "B9" la valeur dune variable.
Range("B9").Value = variable
page 12 / 16
om (2000-2007)
D. Spcificits Access
Ouvrir Visual Basic Editor. Cliquer sur longlet MODULES puis NOUVEAU OUTILS/MACRO MACRO Choisir dans la liste le nom de la procdure Pour excuter une macro puis : Excuter Ou (une procdure). Dans Visual Basic Editor choisir le nom de la procdure puis Excuter Pour modifier une Dans longlet MODULES, slectionner le Module1 puis Modifier. procdure. Pour supprimer une Dans longlet MODULES, slectionner le Module1 puis cliquer droit et procdure. supprimer (ou utiliser la touche "Suppr"). Ouvrir des objets Access Ce fait grce linstruction DoCmd de VBA qui permet de nombreuses (Table, requte, tat, manipulations autres que celles dcrites ici. formulaire, module.) Ouvrir une table :
page 13 / 16
om (2000-2007)
Ouvrir un Etat :
"NomEtat",
Mode
de
vue,
Filtres(s) & Condition(s) : pointer sur certain(s) enregistrement(s). Ouvrir une Requte :
"NomRequte",
Mode
de
vue,
Application.DoCmd.Close. acTable "NomTable", Mode Fermeture acMacro "NomMacro" acModule "NomModule" acQuery "NomRequte" acForm "NomFormulaire" acReport "NomEtat"
Mode Fermeture : acSaveNo : fermer sans sauvegarder ; acSaveYes : fermer en sauvegardant ; acSavePrompt : fermer en demandant sil faut sauvegarder. Linstruction GotoRecord permet, lorsquune table est ouverte (cf. plus haut) de crer des enregistrements :
Application.DoCmd.GotoRecord, , acNewRec
Linstruction RecordSet permet daccder des tables et den utiliser les Manipuler des tables avec enregistrements (ou tuples). On peut, avec cette mthode, utiliser les linstruction RecordSet. donnes des tables, les modifier, les supprimer. Ouvrir une table : Louverture dune table se fait grce la squence dinstructions suivante :
RS.Close
page 14 / 16
om (2000-2007)
Parcourir une table denregistrement en enregistrement : N.B. : Ncessite davoir dj ouvert la table auparavant. RS.MoveFirst :aller au premier enregistrement de la table ; RS.MoveLast : aller au dernier enregistrement de la table ; RS.MoveNext : aller lenregistrement suivant ; RS.MovePrevious : aller lenregistrement prcdent.
Dtecter le dbut ou la fin dune table : Pour terminer les itrations dune boucle, il est parfois trs utile de dtecter si lon est la fin ou au dbut dune table. RS.EOF : fin de table (End Of File) ; RS.BOF : dbut de table (Beginnig Of File). Exemple :
RS.Fields ("NomDuChamp").Value
Exemple :
Exemples de critres :
"Code_tarif = 12" "Nom_client like [A]*" "Prnom_client = Bob" "Code_personnel = " variable
page 15 / 16
om (2000-2007)
Modifier un enregistrement : N.B. : Pour utiliser cette fonction, vous devez avoir utilis linstruction suivante :
page 16 / 16
om (2000-2007)