T-GSI STAGE RENOVATION - Algorithmique - Lexique D algorithmique & De programmation en VBA. Olivier Mondet http://unidentified-one.



Documents pareils
Formation VBA 3 Interagir

Algorithmique et programmation : les bases (VBA) Corrigé

Visual Basic for Applications

Programmation VBA/Excel. Programmation VBA. Pierre BONNET. Masters SMaRT & GSI - Supervision Industrielle P. Bonnet

Sub CalculAnnuite() Const TITRE As String = "Calcul d'annuité de remboursement d'un emprunt"

FORMATION au VBA Pour EXCEL. Version 2007 & +

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Comment créer et utiliser une fonction

Créer le schéma relationnel d une base de données ACCESS

1. Introduction Création d'une macro autonome Exécuter la macro pas à pas Modifier une macro... 5

FACTURATION. Menu. Fonctionnement. Allez dans le menu «Gestion» puis «Facturation» 1 Descriptif du dossier (onglet Facturation)

Initiation à VBA pour Excel. Philippe Bernard Ingénierie Economique et Financière Université Paris-Dauphine

GUIDE Excel (version débutante) Version 2013

Algorithmique et Programmation, IMA

TP 1. Prise en main du langage Python

PRÉSENTÉ PAR : NOVEMBRE 2007

TD3 - Facturation avec archivage automatisé

Avant-propos FICHES PRATIQUES EXERCICES DE PRISE EN MAIN CAS PRATIQUES

Date M.P Libellé Catégorie S.Catégorie Crédit Débit Solde S.B

Algorithme. Table des matières

EXCEL TUTORIEL 2012/2013

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

VOCABULAIRE LIÉ AUX ORDINATEURS ET À INTERNET

Mon aide mémoire traitement de texte (Microsoft Word)

Groupe Eyrolles, 2006, pour la présente édition, ISBN :

Utiliser un tableau de données

Guide de formation avec cas pratiques. Programmation. Philippe Moreau Patrick Morié. Daniel-Jean David

Débuter avec Excel. Excel

Travaux Pratiques de Commande par ordinateur 1 TRAVAUX PRATIQUES

COURS DE MS EXCEL 2010

PROGRAMMATION EVENEMENTIELLE sur EXCEL

Stockez et organisez vos données sous Excel. Une approche systématique, structurée et simplifiée

Corrigé des TD 1 à 5

Solutions du chapitre 4

Securexam Consignes pour l EFU Les 2, 3 et 4 juin 2015

Modes Opératoires WinTrans Mai 13 ~ 1 ~


Formations 2015 Bureautique

LES REGLEMENTS AVEC SOCIEL.NET DERNIERE MISE A JOUR : le 14 juin 2010

Les bases de données. Se familiariser avec Base. Figure 1.1A Ouvre le fichier dont tu as besoin. Lance OpenOffice Base.

TABLEAU CROISE DYNAMIQUE

Excel 2007 Niveau 3 Page 1

MODE D EMPLOI DU MODULE D E-COMMERCE

Le cas «BOURSE» annexe

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Access 2007 FF Access FR FR Base

Initiation à la programmation en Python

1 TD 2 : Construction d'une chier Acrobat et envoi par

Système de Gestion Informatisée des. Exploitations Agricoles Irriguées avec Contrôle de l Eau

Le cas «BOURSE» annexe

DECOUVERTE DU LOGICIEL CIEL GESTION COMMERCIALE

Cours d algorithmique pour la classe de 2nde

COMPTABILITE SAGE LIGNE 30

Microsoft Excel Présentation du tableur Excel

Préparation à l examen EFA en Macro

Access 2010 Entraînement 1 Garage Renault Dossier 24 MCD

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Créer une base de données

Si vous décidez d utiliser un autre chemin, c est ce nouveau chemin qu il faudra prendre en compte pour la sauvegarde. Cf. : Chapitre 9 Sauvegarde

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

Gestion de stock pour un magasin

La Clé informatique. Formation Excel XP Aide-mémoire

Découvrir la messagerie électronique et communiquer entre collègues. Entrer dans le programme Microsoft Outlook Web Access

Les Différents types de Requêtes dans Access

SOMMAIRE. 1. Connexion à la messagerie Zimbra Pré-requis Ecran de connexion à la messagerie 4

Bases de programmation. Cours 5. Structurer les données

Cours Informatique Master STEP

Guide d utilisation des services My Office

MO-Call pour les Ordinateurs. Guide de l utilisateur

Guide de l Administrateur

Database Manager Guide de l utilisateur DMAN-FR-01/01/12

Introduction à MATLAB R

Initiation à LabView : Les exemples d applications :

Organigramme / Algorigramme Dossier élève 1 SI

Note de cours. Introduction à Excel 2007

Tutorial Terminal Server sous

ENDNOTE X2 SOMMAIRE. 1. La bibliothèque EndNote 1.1. Créer une nouvelle bibliothèque 1.2. Ouvrir une bibliothèque EndNote 1.3. Fermer une bibliothèque

LECON 2 : PROPRIETES DE L'AFFICHAGE Version aout 2011

ContactForm et ContactFormLight - Gestionnaires de formulaire pour Prestashop Edité par ARETMIC S.A.

BIRT (Business Intelligence and Reporting Tools)

V- Manipulations de nombres en binaire

Programmation VBA. Excel Daniel-Jean David. et Groupe Eyrolles, 2014, ISBN :

Utiliser une base de données

Guide d usage pour Word 2007

Formation tableur niveau 1 (Excel 2013)

Cadastre du bruit SIT-JURA. Connecteur Arcview9.x - MSAccess. Mode d emploi. Appel formulaire. Page 1 sur 15

RACCOURCIS CLAVIERS. DEFINITION : Une «combinaison de touches» est un appui simultané sur plusieurs touches.

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Afin d accéder à votre messagerie personnelle, vous devez vous identifier par votre adresse mail et votre mot de passe :

Rappels sur les suites - Algorithme

Programmation Visual Basic. Visite guidée d'un programme Visual Basic 6.0

:...2 I.6. :... 2 I.7. :... 2 I.8. :...3 I.9. :... 3 I.10. :... 3 II. 4 II.1.

SOMMAIRE AIDE À LA CRÉATION D UN INDEX SOUS WORD. Service général des publications Université Lumière Lyon 2 Janvier 2007

PAGE 1. L écran du logiciel d Open Office Draw. Barre de menu: Les commandes du logiciel

Formation. Module WEB 4.1. Support de cours

Chapitre 2 Devine mon nombre!

Présentation du langage et premières fonctions

Transcription:

T-GSI STAGE RENOVATION - Algorithmique - Lexique D algorithmique & De programmation en VBA Olivier Mondet http://unidentified-onenet A Correspondances langage algorithmique & VBA A1 Types de données : Types de variables ALGORITHMIQUE Plages de valeurs : Types de données : VBA Plages de valeurs : Octet Byte De 0 à 255 Booléen Vrai ou Faux Boolean True ou False Entier Integer De 32 768 à 32 767 Réel Date Long Single Double Currency Decimal Date Entier long De 2 147 483 648 à 2 147 483 647 (virgule flottante en simple précision) (virgule flottante en double précision) Entier avec décalage pour signifier les types monétaires (avec 2 décimales) Nombres décimaux de grande précision (28 chiffres après la virgule) Du 1 er janvier 100 au 31 décembre 9999 (pour affecter une date : variable = #10/11/1999#) Chaîne String Texte Variant Reçoit n importe quelle valeur, qu il s agisse d un nombre entier, d un objet ou d un texte Type Cf plus bas Personnalisé (Avec Type) Cf plus bas Tableau[x, y, ] Un tableau a plusieurs dimensions notées ici x, y, Array(x, y, ) Avec x & y (entiers) allant de 0 à n Lexique algorithmique et VBAdoc page 1 / 16 om (2000-2007)

A2 Déclarer les variables On utilise la séquence suivante : Variables variable : Réel Nom_Famille : Chaîne variable1, variable2 : Réel Déclarer un tableau : variable[n, ] de chaîne (où n représente la première dimension du tableau) Exemple pour construire un tableau d une colonne et 10 lignes : variable[10] de Chaîne Construire un tableau de deux colonnes et 10 lignes : variable[2,10] ou variable[10,2] NB : Les variables peuvent être écrites en majuscules ou en minuscules On ne peut pas changer de format d écriture au cours d un algorithme Si la variable choisie doit comporter plusieurs mots, comme par exemple «montant ht», les différents mots qui composent le nom de la variable seront alors séparés par un trait de soulignement "_" (touche 8 du pavé alphabétique) : montant_ht (sans les points après le h et le t) Ou l on distinguera les mots par des majuscules : montantht Vérifier si au début du module : Option Explicit est toujours activé car cette option vous informera si une variable n est pas déclarée Dim variable as Single Dim Nom_Famille as String Dim prenomeleve as Single, codepostal as Single Déclarer un tableau : Dim variable(n, ) As String Ou Dim variable() As String (pour un tableau dont on ne connaît pas à l avance la taille Cette déclaration est très gourmande en capacité mémoire) Il faut par la suite utiliser ReDim pour redimensionner le tableau dès que l on en a la taille définitive Par exemple : ReDim variable(3,10) Attention : VBA, comme les autres langages, commence la numérotation des variables d un tableau à 0! Cela veut dire que si vous faites la déclaration suivante : Dim variable(3) As String Vous irez de 0 à 3, soit quatre occurrences de tableau nommé : variable La seule façon de forcer VBA à commencer sa numérotation à 1 serait d'écrire l'instruction suivante en début de module: Option Base 1 Lexique algorithmique et VBAdoc page 2 / 16 om (2000-2007)

A3 Déclarer les types Un Type permet de faire un tableau qui peut contenir différents noms de variables et surtout des variables de différents type Quand on créé un tableau, on ne peut avoir qu un seul type de donnée Par exemple : variable[2,2] de chaîne Déclare un tableau à deux dimensions de chaînes Type permet comme suit d avoir un tableau de réels et de chaîne Par exemple : Type Tablo Code_Personnel :réel Nom_Personnel :Chaîne Fin Type Remarque : En VBA les déclarations Type se font toujours avant la procédure Type Tablo Code_Personnel as Single Nom_Personnel as String End Type La variable tableau donnera : Dim variable As Tablo Ou l on affectera par exemple : variable(1)code_personnel = 100 variable(1)nom_personnel = "DUPONT" Donnera le tableau : Code_ Personnel Nom_ Personnel Permet de créer un tableau à deux dimensions comme une table avec une variable de type Réel et une autre de type Chaîne Par la suite on déclare une variable du type que l on vient de créer : Variable[n] :Tablo Ou l on affectera par exemple : variable[1]code_personnel 100 variable[1]nom_personnel "DUPONT" A4 Déclarer les constantes Constantes Taux_TVA "19,6" Const Taux_TVA = "19,6" Lexique algorithmique et VBAdoc page 3 / 16 om (2000-2007)

A5 Déclarer les fonctions Fonction Nom Fonction(variable) :réel Entrée variable :réel Pour retourner le résultat : Retourner variable Function Nom-Fonction(variable as Single) as Single Pour retourner le résultat : Nom-Fonction = variable A6 Ajouter un commentaire Un algorithme comme un programme doit être lisible Il faut donc ajouter des commentaires pour faciliter la compréhension du programme Cela permet également de bien se repérer dans la structure de son algorithme /* Commentaire */ Nom_Candidat :Chaîne /* Variable recevant le nom du candidat */ L apostrophe est le signe du commentaire en VBA Dès que l on place un apostrophe et que l on tape du texte celui-ci se transforme en vert Commentaire Dim Nom_Candidat As String Variable recevant le nom du candidat A7 Affecter une valeur On utilise le signe " " : Exemples : variable 12,3 variable "Les chiens arrivent" On utilise le signe "=" : variable = 12,3 variable = "Les chiens arrivent" A8 Comparer Égalité = Différent <> Strictement supérieur à > Strictement Inférieur à < Supérieur ou égal à >= Inférieur ou égal à <= A inférieur ou égal à B se note : A <= B Ce sont les mêmes symboles : = <> > < >= <= De la même manière : A inférieur ou égal à B se note : A <= B Lexique algorithmique et VBAdoc page 4 / 16 om (2000-2007)

A9 Afficher Pour afficher un résultat, une information on utilise la commande Afficher Exemples : On peut afficher le contenu d une variable : Afficher variable On peut afficher une phrase : Afficher "Les Tortues ont toutes une carapace!" On peut afficher une phrase avec le contenu d une variable : Afficher "Le montant de votre commande est : ", variable Il existe deux façons d afficher un résultat sous Access : Soit par une boîte de dialogue grâce à l instruction MsgBox La manipulation de cette instruction est compliquée bien que les résultats soient mieux présentés MsgBox Prompt, [Style de boite et bouton(s)], [Title], [HelpFile], [Context] MsgBox "Le montant de votre commande est :" & Variable Soit dans la fenêtre de débogage du module Access avec l instruction DebugPrint Cette instruction est plus simple à utiliser, mais elle oblige d ouvrir la fenêtre de débogage : pour voir les résultats (fenêtre de débogage) DebugPrint Prompt Debugprint "Le montant de votre commande est :" & Variable NB : Voir en fin de lexique pour plus de détails sur ces instructions A10 Les opérateurs (classés par priorité de traitement) "( )" "^" "-" "*" et "/" "Div" "Mod" : "+" et "-" Appels de fonction : (3 + 6) * 2 = 18 Élévation à la puissance : 9^2 = 18 Négation : 2 * 3 = 6 Multiplication et division : 4 * 2 + 4 / 2 = 10 Division entière : 10 Div 3 = 3 Modulo - Donne le reste de la division : Exemples : 10 Mod 3 = 1 10 Mod 2 = 0 Addition et soustraction: 4 + 3 5 = 2 Même priorités hormis l instruction de division entière qui s écrit "\" : 10 \ 3 = 3 Lexique algorithmique et VBAdoc page 5 / 16 om (2000-2007)

"=" "<>" "<" ">" "<=" ">=" Opérateurs de comparaison Cf Comparaison A11 Cumul var_cumul var_cumul + variable var_cumul = var_cumul + variable A12 Opérateurs logiques Non Si Non(A > 10) Alors (Si A n est pas supérieur strictement à 10) Les instructions sont Not, And, Or : Not : If Not A > 10 Then Et Si A >= 10 Et A <= 20 Alors (pour A compris entre 10 et 20 : A[10,20]) Ou Si A > 10 Ou B = "Non" Alors (pour la variable A strictement supérieure à 10 ou la variable b égale au mot «Non» And : If A >= 10 And A <= 20 Then Or : If A > 10 Or B = "Non" Then A13 Structure d un algorithme ou d un programme Algo Nom_de_l algorithme Variables Variable :réel /* commentaire */ Variable2 :Chaîne Début Corps de l algorithme Fin Sub Nom_Programme() Dim variable as Single commentaire Dim variable2 as String commentaire Corps du programme End Sub Sub est une Procédure : une macro ; Function est une Fonction -> procédure qui peut renvoyer une valeur par son nom (ex : Time()) Généralement les instructions sont soulignées en algorithmique Quant aux variables on peut indifféremment les trouver toujours en majuscules ou en minuscules mais pas les deux en même temps Lexique algorithmique et VBAdoc page 6 / 16 om (2000-2007)

A14 Conditions / Sélections Condition : Si condition Alors Fin Si Sélection : Si condition Alors Sinon Fin Si Selon Que variable = valeur1 : s = valeur2 : s Autrement : Fin Selon If condition Then End If If condition Then Else End If Select Case variable Case Is condition Case Is condition Else: End Select A15 Les itérations Les Itérations (ou Répétitions) sont aussi appelées des boucles : (Quitter prématurément une boucle : Sortir) Boucles avec condition au départ : Tant Que condition Fin TQ Boucles avec condition à la fin : Répéter Jusqu à condition Boucles infinies : Itérer Fin Itérer (Quitter prématurément une boucle : Exit Do) Boucles avec condition au départ : Do While condition Loop ou Do Until condition Loop Boucles avec condition à la fin : Do Loop While condition Lexique algorithmique et VBAdoc page 7 / 16 om (2000-2007)

Boucles avec incrémentation : Pour variable de début à fin par pas de incrément Fin pour ou Do Loop Until condition Pour i de 0 à 10 par pas de 2 Fin pour Boucles infinies : Do Loop Boucles avec incrémentation : For variable = Début to Fin step Incrément Next variable (Quitter prématurément une boucle For/Next : Exit For) A16 Saisir des données On peut utiliser indifféremment les mots Saisir ou Lire : Saisir variable Ou Lire variable On peut Saisir/lire plusieurs variables : Saisir variable1, variable2, variable3 Parfois on veut afficher un message avant la saisie : Afficher "Entrer votre âge :" Saisir age Sous Access une seule instruction assure à la fois l affichage et la saisie d une variable : InputBox (Prompt, [Title], [Default], [xpos], [ypos], [helpfile], [context]) Prompt = Texte du message [Title] = Titre de la boite de message [Default] = Texte par défaut proposé dans la ligne de saisie [xpos] et [ypos] = position de la fenêtre [helpfile] et [context] = fichier d aide associé à la boite de dialogue variable = InputBox("Entrer votre âge : ", "Saisie de l âge", 0) Où l on invite l utilisateur à saisir son âge dans une boîte de dialogue nommée "Saisie de l âge" Vous aurez remarqué que l on propose 0 comme valeur par défaut NB : La boite de dialogue propose "Ok" ou Lexique algorithmique et VBAdoc page 8 / 16 om (2000-2007)

"Annuler" une fois l âge saisi La touche "Ok" termine la saisie alors que la touche "Annuler" provoquera une erreur Cf plus loin pour voir comment intégrer cette erreur possible dans un programme A17 Appeler une procédure ou une fonction Souvent, pour éviter qu un algorithme devienne trop long tout en devenant complexe on le coupe en plusieurs parties autonomes Très souvent également des tâches répétitives peuvent faire l objet de procédures ou de fonctions à part Pour une procédure : Appeler nom_procédure() Pour une fonction : variable = Nom_fonction(valeur) On alors la fonction peut être utilisée ainsi : si Nom_fonction(valeur) = Alors On tape tout simplement le nom de la procédure : nom_procédure() Pour une fonction : variable = Nom_fonction(valeur) ou If Nom_fonction(valeur) = Then B Compléments VBA Décomposer une chaîne en tableau : Split Pour découper une chaîne afin de constituer un tableau, utiliser l instruction : Split (variable, " " ou " ;") découpe une chaîne selon le séparateur précisé " " ou " ;" variable1 = "Paul Virginie Antoine" variable2() = Split(variable1, " ") varaible2() contient à présent le tableau suivant : Paul Virginie Antoine Comparer deux chaînes de caractères : Like Pour comparer deux chaînes de caractères, utiliser l instruction : Like On cherche toutes les chaînes de deux caractères ("A8" "B7" "A1" "C9" "D7") commençant par un "A" : On utilisera Like "[A]?" cela nous renverra "A8" "A1" (? Remplace un seul caractère et * remplace un nombre quelconque de caractères et # remplace un chiffre) On cherche toutes les chaînes de caractère cette fois ci de taille variable commençant par un "B" : On utilisera Like "[B]*" On pourrait également rechercher les lettres allant de "A" à "D" : [A-D] Ou rechercher les lettres "A", "O" ou "U" : [A,O,U] Tous les caractères sauf "a", "b" et "c" : [!a-c] Lexique algorithmique et VBAdoc page 9 / 16 om (2000-2007)

Exemple d utilisation : If variable like "[B]*" Then Aller plus loin dans les boîtes à messages avec MsgBox MsgBox Prompt, [Style de boite et bouton(s)], [Title], [HelpFile], [Context] Prompt : représente le message de la boite de dialogue Cela peut être du texte entre guillemets, une variable ou les deux en même temps en ajoutant un & avant le second élément à afficher [Style de boite et de bouton(s)] : vous permet éventuellement d avoir une boite de message avec un signe propre à Windows Ci-dessous les différentes boîtes de messages : Avec l instruction vbcrtitical : Avec l instruction vbexclamation : Avec l instruction vbinformation : Avec l instruction vbquestion : Vous pouvez également gérer les boutons (par défaut le bouton "Ok" s affiche) Utilisez alors : VbOkOnly : Bouton "Ok" seulement ; VbOkCancel : Bouton "Ok" et bouton "Annuler" ; VbAbortRetryIgnore : Boutons "Abandon", "Réessayer" et "Ignorer" ; VbYesNoCancel : Boutons "Oui", "Non" et "Annuler" ; VbYesNo : Boutons "Oui" et "Non" ; VbRetryCancel : Boutons "Réessayer" et "Annuler" [Title] : représente le titre de la boîte de dialogue (remplace Microsoft Access) [HelpFile & Context] : représentent les liens vers les éventuels fichiers d aide liés à la boîte de dialogue Exemples : MsgBox "J ai envie d un verre d eau Pouvez-vous m en apporter?", vbexclamation + vbyesno, "Très très urgent!!" Vous pouvez afficher du texte avec une ou plusieurs variables Dans ce cas n oubliez pas de précéder d un & les variables ou chaînes que vous ajoutez : MsgBox "Le montant de votre commande est : " & variable, vbexclamation, "Montant commande" Lexique algorithmique et VBAdoc page 10 / 16 om (2000-2007)

Il peut arriver que vous ayez besoin de connaître le bouton sur lequel a appuyé l utilisateur Par exemple si vous demandez par une boite de dialogue si l on veut continuer «Oui ou Non» et que vous avez utilisé le paramètre vbyesno il vous faudra stocker la réponse dans une variable Cette variable prendra la valeur vbok si l on appui sur le bouton "Ok", vbyes si l on appui sur le bouton "Oui" etc avec vbno, vbcancel, vbretry, vbignore Cette fois-ci on ajoutera des parenthèses entre les paramètres de MsbBox comme pour InputBox MsgBox (Prompt, [Style de boite et bouton(s)], [Title], [HelpFile], [Context]) Dim Réponse As Integer Réponse = MsgBox ("Voulez-vous quitter le programme?", vbquestion + vbyesno, "Fin de programme") Aller plus loin dans les fenêtres de résultat(s) avec Debugprint L instruction DebugPrint n utilise aucun paramètre Il suffit d accoler les informations ou variables à imprimer Exemples : Debugprint variable Debugprint "Les vaches donnent du lait!" Debugprint "Le n de téléphone est : " & Variable On peut utiliser la virgule pour séparer les variables affichées avec DebugPrint (les variables sont affichées en colonnes), avec un point-virgule (les variables numériques sont affichées avec un espace avant) Les erreurs proviennent très souvent lorsque la touche "Annuler" d une instruction InputBox est activée Cela arrête le programme On peut éviter le déclenchements de cette erreur et faire de sorte que lorsque l erreur se déclenche le programme passe à l instruction suivante ou reprend à la même instruction Intégrer les éventuelles erreurs lors du déroulement programme Pour éviter cette erreur on place après la déclaration des variables l instruction suivante : On Error GoTo ERREUR Puis avant la fin de la procédure (par exemple) : ERREUR: MsgBox "Vous ne pouvez pas Annuler!!", vbexclamation, "Le programme va se fermer!" Ou si vous voulez reprendre à partir de l instruction qui a provoqué l erreur : ERREUR: MsgBox "Erreur de saisie!", vbexclamation, "ATTENTION" Resume (Où Resume vous permet de retourner à l instruction ayant provoqué l erreur) Vous pourriez utiliser Resume Next pour aller à l instruction suivante Lexique algorithmique et VBAdoc page 11 / 16 om (2000-2007)

C Spécificités Excel Pour ouvrir Visual Basic Editor Pour exécuter une macro (une procédure) Pour modifier une macro Pour Effacer une macro Alt+F11 Ou OUTILS/MACRO Visual Basic Editor OUTILS/MACRO MACRO Choisir dans la liste le nom de la procédure puis : Exécuter Ouvrir Visual Basic puis choisir Module1 dans la fenêtre Projet VBAProject Ou Dans le menu OUTILS/MACRO MACRO Choisir dans la liste le nom de la procédure puis : Modifier OUTILS/MACRO MACRO Choisir dans la liste le nom de la procédure puis : Supprimer On utilise l instruction : Range("Adresse_Cellule")Value On veut affecter à une variable la valeur de la cellule "B4" ci-dessous qui vaut 120000 : Pour affecter la valeur d une cellule Excel à une variable Affecter la valeur d une variable à une cellule Excel L instruction sera la suivante : variable = Range("B4")Value On utilise également l instruction : Range("Adresse_Cellule")Value On affecte à la cellule "B9" la valeur d une variable Range("B9")Value = variable Lexique algorithmique et VBAdoc page 12 / 16 om (2000-2007)

D Spécificités Access Ouvrir Visual Basic Editor Cliquer sur l onglet MODULES puis NOUVEAU Pour exécuter une macro (une procédure) Pour modifier une procédure Pour supprimer une procédure Ouvrir des objets Access (Table, requête, état, formulaire, module) OUTILS/MACRO MACRO Choisir dans la liste le nom de la procédure puis : Exécuter Ou Dans Visual Basic Editor choisir le nom de la procédure puis Exécuter Dans l onglet MODULES, sélectionner le Module1 puis Modifier Dans l onglet MODULES, sélectionner le Module1 puis cliquer droit et supprimer (ou utiliser la touche "Suppr") Ce fait grâce à l instruction DoCmd de VBA qui permet de nombreuses manipulations autres que celles décrites ici Ouvrir une table : ApplicationDoCmdOpenTable "NomTable", Mode de vue, Mode d accès Mode de vue : acviewdesign : voir la construction ou la structure d une table, d un formulaire acviewnormal : vue d une table, d un formulaire ou du résultat d une requête acviewpreview : mode aperçu avant impression Mode d accès : acadd : on veut ajouter un enregistrement, acedit : on veut modifier un enregistrement, acreadonly : interdit toute modification Les formulaires : ApplicationDoCmdOpenForm "NomFormulaire", Mode de vue, Filtre(s), Condition(s), Mode d Accès, Apparence Mode de vue : acnormal : formulaire normal ; acdesign : mode création de formulaire ; acformds :mode tableau ; acpreview :aperçu avant impression) Filtres(s) & Condition(s) : pointer sur certain(s) enregistrement(s) Mode d accès : acformadd : ajouter formulaire ; acformedit : modifier le formulaire ; acformpropertysettings : modifier les paramètres ; acformreadonly : utiliser le formulaire en lecture seule Apparence : acdialog : affichage en fenêtre fixe (on ne peut changer la taille) ; achidden : formulaire caché ; acicon : fenêtre icône ; acwindowsnormal : affichage en fenêtre windows Lexique algorithmique et VBAdoc page 13 / 16 om (2000-2007)

Ouvrir un Etat : ApplicationDoCmdOpenReport "NomEtat", Mode de vue, Filtre(s), Condition(s) Mode de vue : cf OpenTable Filtres(s) & Condition(s) : pointer sur certain(s) enregistrement(s) Ouvrir une Requête : ApplicationDoCmdOpenQuery "NomRequête", Mode de vue, Mode d accès Mode de vue : cf OpenTable Mode d accès : cf OpenTable Ouvrir un Module : ApplicationDoCmdOpenModule "NomModule", "NomProcédure" "NomProcédure" : indique le nom de l une des procédures à ouvrir Fermer un objet Access Créer des enregistrements Manipuler des tables avec l instruction RecordSet ApplicationDoCmdClose actable "NomTable", Mode Fermeture acmacro "NomMacro" acmodule "NomModule" acquery "NomRequête" acform "NomFormulaire" acreport "NomEtat" Mode Fermeture : acsaveno : fermer sans sauvegarder ; acsaveyes : fermer en sauvegardant ; acsaveprompt : fermer en demandant s il faut sauvegarder L instruction GotoRecord permet, lorsqu une table est ouverte (cf plus haut) de créer des enregistrements : ApplicationDoCmdGotoRecord,, acnewrec L instruction RecordSet permet d accéder à des tables et d en utiliser les enregistrements (ou tuples) On peut, avec cette méthode, utiliser les données des tables, les modifier, les supprimer Ouvrir une table : L ouverture d une table se fait grâce à la séquence d instructions suivante : Dim RS as recordset Set RS = ApplicationCurrentDbOpendRecordset ("NomTable", dbopentable) Fermer une table : RSClose Lexique algorithmique et VBAdoc page 14 / 16 om (2000-2007)

Parcourir une table d enregistrement en enregistrement : NB : Nécessite d avoir déjà ouvert la table auparavant RSMoveFirst :aller au premier enregistrement de la table ; RSMoveLast : aller au dernier enregistrement de la table ; RSMoveNext : aller à l enregistrement suivant ; RSMovePrevious : aller à l enregistrement précédent Détecter le début ou la fin d une table : Pour terminer les itérations d une boucle, il est parfois très utile de détecter si l on est à la fin ou au début d une table RSEOF : fin de table (End Of File) ; RSBOF : début de table (Beginnig Of File) If RSEOF Then MsgBox "Fin de fichier rencontrée", vbexclamation End If Utiliser la valeur d un champ : RSFields ("NomDuChamp")Value variable = RSFields("MontantStock") Value (Où variable prend la valeur du champ "MontantStock" de l enregistrement actif de la table) Trouver un enregistrement : NB : Pour utiliser cette fonction, vous devez avoir utilisé l instruction suivante : Dim RS as recordset Set RS = ApplicationCurrentDbOpendRecordset ("NomTable", dbopendynaset) Où dbopendynaset remplace dbopentable RSFindFirst "NomDuChamp critère" : trouver le premier champ correspondant au(x) critère(s) ; RSFindNext "NomDuChamp critère" : trouver le champ suivant champ correspondant au(x) critère(s) ; RSFindLast "NomDuChamp critère" : trouver le dernier champ correspondant au(x) critère(s) ; RSFindPrevious "NomDuChamp critère" : trouver le champ précédant correspondant au(x) critère(s) Exemples de critères : RSFindFirts "Code_tarif = 12" RSFindFirts "Nom_client like [A]* " RSFindFirts "Prénom_client = Bob " RSFindFirts "Code_personnel = " variable Lexique algorithmique et VBAdoc page 15 / 16 om (2000-2007)

Modifier un enregistrement : NB : Pour utiliser cette fonction, vous devez avoir utilisé l instruction suivante : Dim RS as recordset Set RS = ApplicationCurrentDbOpendRecordset ("NomTable", dbopendynaset) Où dbopendynaset remplace dbopentable RSEdit RSFields("NomDuChamp")Value = variable RSUpdate Où le champ prend le contenu de variable Ajouter un enregistrement : NB : Pour utiliser cette fonction, vous devez avoir utilisé l instruction suivante : Dim RS as recordset Set RS = ApplicationCurrentDbOpendRecordset ("NomTable", dbopendynaset) Où dbopendynaset remplace dbopentable On ajoute un nouvel enregistrement en réservant une place libre et en renseignant tous les champs de la table RSAddNew RSFields("NomDuChamp")Value = variable RSFields("NomDuChamp2")Value = variable2 RSUpdate Où les champs prennent le contenu des variables Supprimer un enregistrement : NB : Pour utiliser cette fonction, vous devez avoir utilisé l instruction suivante : Dim RS as recordset Set RS = ApplicationCurrentDbOpendRecordset ("NomTable", dbopendynaset) Où dbopendynaset remplace dbopentable Il faut au préalable pointer sur l enregistrement à effacer car l instruction de suppression supprime l enregistrement courant RSEdit RSDelete RSUpdate Lexique algorithmique et VBAdoc page 16 / 16 om (2000-2007)