INITIATION A LA PROGRAMMATION STRUCTUREE

Slides:



Advertisements
Présentations similaires
Mais vous comprenez qu’il s’agit d’une « tromperie ».
Advertisements

ORTHOGRAM PM 3 ou 4 Ecrire: « a » ou « à » Référentiel page 6
Premier programme en C :
Additions soustractions
Distance inter-locuteur
1 Plus loin dans lutilisation de Windows Vista ©Yves Roger Cornil - 2 août
Portée des variables VBA & Excel
Eléments visuels. 2009/2010L3-Eco - Université de Bordeaux2 Les feuilles La feuille : cest le cadre dans lequel tous les autres éléments (visuels) dune.
Les numéros 70 –
Algorithmique Résume.
Vocabulaire pour la passage du modèle conceptuel des données au modèle relationnel des données. MCDMRD EntitéTable PropriétésChamps, attribut IdentifiantClé
Cours n°2M2. IST-IE (S. Sidhom) UE 303 Promo. M2 IST-IE 2005/06 Conception dun système d'information multimédia Architecture trois-tiers : PHP/MySQL &
Algorithme et structure de données
LES TRIANGLES 1. Définitions 2. Constructions 3. Propriétés.
L ’événement CHANGE est détecté par Vba dès qu ’un caractère est saisi ( ou tapé) dans l ’objet TextBox. Par contre l ’événement AFTERUPDATE laisse le.
INITIATION à la PROGRAMMATION STRUCTUREE
La fonction Val renvoie la conversion numérique du nombre éventuellement contenu dans une chaîne, sans modifier la chaîne d’origine. nb1 = Val("2457")
Chap. 1 Structures séquentielles : listes linéaires
ESIEE Paris © Denis BUREAU I N Initiation à la programmation avec le langage Java.
La fonction Style Permet de créer des types de texte, par exemple
Principe de défilement du document dans un traitement de texte
Les sous-programmes Chapitre n° 5: Objectifs : Activité:
La législation formation, les aides des pouvoirs publics
Par Clément en vacances sur la Côte d’Azur Le 15 Avril 2012
Les requêtes La Requête est une méthode pour afficher les enregistrements qui répondent à des conditions spécifiques. La requête est donc un filtre.
Les bases de l’Algorithmique
Cours algorithme 2 S. Tabbone.
Cours de programmation
Par Fabrice Pasquier Cours IV
44 Contrôle du déroulement du programme. 4-2 Objectifs A la fin de ce cours, vous serez capables de : Utiliser les constructions de prise de décision.
Présentation générale
Création d’un programme :
RESUMES Module II1 SOMMAIRE CYCLE 1 : Saisir – Afficher – Données
Les nombres.
Introduction à linformatique en gestion 1 Plan de cours Le tableur Lécran Commandes sur les classeurs Les feuilles de calcul La saisie et la.
Biologie – Biochimie - Chimie
Programmation multimédia 3
Projet poker 1/56. Introduction Présentation de léquipe Cadre du projet Enjeux Choix du sujet 2.
Logiciel gratuit à télécharger à cette adresse :
Les chiffres & les nombres
Les structure d’un programme :
FICHIERS : Définition : Algorithme général:
Principes de programmation
IFT 6800 Atelier en Technologies d’information
Année universitaire Réalisé par: Dr. Aymen Ayari Cours Réseaux étendus LATRI 3 1.
Chapitre 9 Les sous-programmes.
MAGIE Réalisé par Mons. RITTER J-P Le 24 octobre 2004.
Initiation aux bases de données et à la programmation événementielle
Résoudre une équation du 1er degré à une inconnue
Aire d’une figure par encadrement
Les fondements constitutionnels
MAGIE Réalisé par Mons. RITTER J-P Le 24 octobre 2004.
Mise en forme en Mathématiques
1/65 微距摄影 美丽的微距摄影 Encore une belle leçon de Macrophotographies venant du Soleil Levant Louis.
Certains droits réservés pour plus d’infos, cliquer sur l’icône.
Université Ibn Zohr Faculté des Sciences Economiques et Sociales Notes de cours VBA E. Belahmidi 2007/2008.
LES PILES ET FILES.
Annexe Résultats provinciaux comparés à la moyenne canadienne
La formation des maîtres et la manifestation de la compétence professionnelle à intégrer les technologies de l'information et des communications (TIC)
Un survol du language C.
Introduction au langage C : Structures de contrôle 1 ère année Génie Informatique Dr Daouda Traoré Université de Ségou
Informatique de Gestion part II – the dark macro
Une aide pour débutant éclairé
QCM VBA.
Philippe Gandy - 8 septembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
Initiation aux bases de données et à la programmation événementielle
Philippe Gandy – 10 novembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
Algorithmes sur Open Office. 1. Ouvrir Visual Basic de Open Office.
FACTORY systemes Module 5 Section 1 Page 5-3 Les scripts de traitement FORMATION INTOUCH 7.0.
1 Tableur Excel. 2 Introduction Un tableur est un logiciel permettant de manipuler des données numériques et d'effectuer automatiquement des calculs sur.
Transcription de la présentation:

INITIATION A LA PROGRAMMATION STRUCTUREE

I. Introduction et définitions

Initiation à la programmation structurée Qu’est-ce qu’un programme ? Les règles de la programmation structurée Définitions

Qu’est-ce qu’un programme ? C ’est un ensemble de commandes écrites dans un langage de programmation, permettant de matérialiser un certain traitement, conformément à un cahier des charges. En programmation structurée son déroulement est séquentiel. Il peut contenir et utiliser des procédures et fonctions, qui sont elles-mêmes construites comme des programmes.

Les quatre règles de la programmation structurée Elles concernent : la convivialité la modularité la lisibilité la programmation

La convivialité Pensez à soigner les interfaces destinés à l’utilisateur : donnez lui envie d’utiliser vos programmes ne posez pas de questions ambiguës aidez le, mais ne le sous-estimez pas informez le des possibilités contextuelles faites un effort de présentation des résultats

On n ’écrit plus de gros programmes La modularité On n ’écrit plus de gros programmes Un programme doit être décomposé en petits modules, qu’on appelle des procédures ou fonctions : tous bien définis et individualisés, dont la longueur ne dépasse pas une page A4 Ceci facilite énormément la compréhension, la maintenance, et l ’exécution du programme

La lisibilité des programmes Elle représente un effort initial indispensable à la mise au point puis à la maintenance des programmes Il faut documenter le programme en ajoutant des commentaires judicieux pour en faciliter la compréhension rapide La mise en page des instructions doit en faciliter leur compréhension en faisant ressortir visuellement leurs délimitations

La lisibilité des programmes On ne doit jamais personnaliser les programmes : les noms de procédures, fonctions, variables, doivent évoquer sans ambiguïté leurs rôles respectifs, pour quiconque.

Exemple d ’un programme insupportable Private Sub P1_AfterUpdate() If P1.Value <> "" Then n = n + 1 r = Val(P1.Value) If r = (nb1 * nb2) Then A.ForeColor = 16711680 A.Caption = "bravo" Else: e = e + 1 A.ForeColor = 255 A.Caption = "faux" & " : déja " & e & " erreurs" End If End Sub

Le même programme : supportable Private Sub Reponse_AfterUpdate() If reponse.Value <> "" Then nbfois = nbfois + 1 rep = Val(reponse.Value) If rep = (nb1 * nb2) Then bilan.ForeColor = 16711680 bilan.Caption = "bravo" Else: err = err + 1 bilan.ForeColor = 255 bilan.Caption = "faux" & " : déja " & err _ & " erreurs" End If End Sub

LA PROGRAMMATION OBJET (POO)

La Programmation Orientée Objet Elle a été conçue pour pallier aux problèmes de maintenance évolutive que pose la programmation fonctionnelle descendante. Nous n’aborderons en LO10 que quelques notions de la POO, nécessaires à la programmation en Visual Basic sous Excel.

La Programmation Orientée Objet Contrairement à la programmation classique qui sépare les données des programmes, la POO repose sur des entités, nommées OBJETS, dans lesquelles sont combinées données et code de programmation. Les objets qui partagent les mêmes propriétés et les mêmes méthodes sont regroupés dans une classe.

Le concept d ’OBJET L’objectif de ce concept est le suivant : Regrouper dans une entité unique, nommée OBJET : les données décrivant l’objet : ce sont ses propriétés et les procédures/fonctions permettant de manipuler l ’objet : ce sont ses méthodes

Exemple d ’objet En Visual-Basic il existe un type d’objet nommé CommandButton : quand on dessine un bouton de ce type on crée un objet. Il a des propriétés : un nom une taille un intitulé : par exemple « IMPRIMER » une couleur etc...

Exemple d ’objet Cet objet a comme méthode une procédure correspondant à son rôle. La procédure sera déclenchée lorsqu’un certain événement se produira : par exemple un Click sur ce bouton. C’est le programmeur qui choisit l’événement à surveiller et programme la méthode.

La programmation Visual-Basic Elle est composée en majeure partie d’objets que l’on peut manipuler conjointement de 2 façons : en définissant, modifiant, testant, ou mémorisant leurs propriétés en utilisant les méthodes de l’objet, ou en écrivant des procédures complémentaires constituées de lignes de code

Conventions de lecture écriture des instructions Dans une ligne de code on peut : définir une propriété ou mémoriser une propriété dans une variable ou faire exécuter une méthode ou une procédure Mais on ne peut pas faire plusieurs de ces traitements à la fois sur la même ligne

Quelques propriétés très utilisées CAPTION pour les objets Intitulé (Label), bouton de commande (CommandButton) Désigne le texte qui apparaît dans le bouton à l’écran TEXT pour les objets Zone de Texte (TextBox) Désigne le texte affiché ou modifié par l’utilisateur VALUE pour les objets barre de défilement (ScrollBar) , toupie (SpinButton), bouton d’option Désigne la valeur choisie par l’utilisateur

Quelques propriétés très utilisées MAXLENGTH pour les objets Zone de Texte (TextBox) Désigne le nombre maximum de caractères acceptés à la saisie PASSWORDCHAR pour les objets Zone de Texte Désigne le caractère qui sera affiché pour masquer à l’écran chaque caractère tapé au clavier par l’utilisateur ENABLED pour les objets Zone de Texte , bouton de commande, etc. Propriété booléenne, qui lorqu’elle vaut False, rend le bouton inutilisable par l’utilisateur

Quelques propriétés très utilisées FONT Désigne la police à utiliser BACKCOLOR couleur de fond CONTROLTIPTEXT Contient le texte à afficher en info bulle VISIBLE propriété booléenne qui, lorsqu’elle vaut False, permet de rendre un bouton temporairement invisible

Affiche l ’objet Liste des propriétés Liste des méthodes Affiche le code Explorateur de projet propriétés

Code du test des multiplications Dim nb1, nb2 As Integer Private Sub UserForm_Initialize() Randomize nombre1.Caption = Int(Rnd * 8) + 2 nombre2.Caption = Int(Rnd * 8) + 2 nb1 = nombre1.Caption nb2 = nombre2.Caption End Sub

Code du test des multiplications Private Sub validez_Click() If validez.Caption <> "FIN" Then Dim rep As Integer rep = Val(reponse.Value) If rep = (nb1 * nb2) Then MsgBox ("bravo") Else: MsgBox ("faux") End If validez.Caption = "FIN" reponse.Locked = True Else: End End Sub

Quelques évènements très utilisés L’événement CHANGE est détecté par Vba dès qu’un caractère est saisi ( ou tapé) dans un objet de type TextBox. Par contre l’événement AFTERUPDATE laisse le temps à l ’utilisateur de taper plusieurs dans la boite, et détecte qu ’il a fini quand il appuie sur : la touche Entrée ou la touche Tab ou la souris

Quelques évènements très utilisés On a souvent besoin de faire faire à notre programme un traitement d’initialisation de variables, ou de plages de cellules d’une feuille d’Excel, qu’on ne peut pas simplement réaliser en modifiant les propriétés de certains objets. ce traitement sera programmé dans une procédure qui sera TOUJOURS intitulée : Private Sub Userform_Initialize() quel que soit le nom du userform

Quelques évènements très utilisés L’événement Initialize: sera détecté automatiquement au démarrage du programme la procédure Userform_Initialize() sera déclenchée avant la première apparition du userform, et ne fonctionnera qu ’une seule fois. on ne pourra pas déclencher cet événement en cours de programme pour demander à ce que la procédure associée soit à nouveau exécutée.

Définition : qu’est-ce qu’une variable ? C’est une zone précise de la mémoire centrale, allouée temporairement à un programme pour gérer les valeurs successives d’une information. Une variable est définie par : son nom et son type

Un nom de variable doit : Définition : une variable Un nom de variable doit : commencer par une lettre avoir moins de 255 caractères, et au moins 1 ne contenir que des lettres et des chiffres (facultatifs) et traits de soulignement _ (facultatifs) ne pas contenir d’espaces, ni aucun autre signe de ponctuation, ni aucun opérateur, ni aucun comparateur (+->=..) former un mot différent d’un mot réservé du langage Basic, comme End ou Sub, etc.

Définition : une variable Une variable n’a toujours qu’une seule valeur à un instant donné. Une valeur ne peut être mémorisée dans une variable que si leurs types respectifs sont compatibles. Exemple : un nombre entier peut-être mémorisé dans une variable de type réel, mais il perdra sa nature d ’entier.

Définition : une variable Une variable peut être renseignée : par une donnée utilisateur lors d’une ACQUISITION ou directement par programme, suite à un calcul, un test, une lecture dans un fichier, un appel de procédure ou de fonction, lors d ’une AFFECTATION

Définition : une variable La désignation du type de la variable permettra à l’ordinateur : de dimensionner au mieux l’espace alloué en mémoire centrale de filtrer des valeurs cohérentes de savoir quels procédés de codage et décodage il doit appliquer

Définition : une variable Voici quelques types de variables courants : Boolean : vrai ou faux (true/false, 1/0) Date : de 1/1/100 à 31/12/9999 Byte : entiers non signés de 0 à 255 Integer : entiers signés de -32768 à +32767 Currency : entiers de ± 1015

Définition : une variable single : réels avec une précision de 7 décimales : de ±1.4 E-45 à ±3.04 E+38 double : réels avec une précision de 15 décimales : de ±4.94 E-324 à ±1.79 E+308 string : chaîne de caractères (65 535 octets maximum) string*10 : chaîne de 10 caractères

Définition : une variable Les déclarations de variables facilitent la compréhension des programmes et participent à leur optimisation : nous déclarerons donc TOUTES les variables que nous utiliserons. En Visual Basic on déclare généralement les variables ainsi : Dim NB,K,Mois As Integer Dim Trouvé As Boolean

Syntaxe d’écriture du code Pour faire appel à une méthode sans paramètre Objet. Méthode Exemple : Saisie.SetFocus

Syntaxe d’écriture du code Pour faire appel à une méthode,ou une fonction paramétrée sans nommer les paramètres Objet. Méthode (valeur,valeur,,valeur) Variable=Fonction(valeur,,,valeur) on précise les valeurs des paramètres en fonction de leur position dans la liste des paramètres attendus.

Syntaxe d’écriture du code Exemple avec la fonction MSGBOX X=MSGBOX (“c’est faux”,,”contrôle de validité”)

Syntaxe d’écriture du code Pour faire appel à une méthode paramétrée en nommant les paramètres Objet. Méthode (nom_du_paramètre :=valeur, nom_du_paramètre :=valeur…) Variable=fonction (nom_du_paramètre :=valeur,etc) on précise les valeurs des paramètres sans ordre prédéfini, mais en les nommant. Exemple avec la fonction MSGBOX X=MSGBOX (title:=‘’contrôle de validité’’, prompt:=‘’c’est faux’’)

Syntaxe d’écriture du code Pour attribuer une valeur à une propriété Objet.Propriété = valeur Exemple : OK.Visible = true Pour mémoriser la valeur d’une propriété dans une variable Nom_de_variable = Objet.Propriété Exemple : nom = Saisie.Value

Syntaxe d’écriture du code Pour écrire une ligne de code sur plusieurs lignes de l’éditeur : il faut indiquer qu’il y a une suite en tapant en fin de ligne le caractère souligné _ Pour mettre des commentaires : commencer la ligne de code par une apostrophe

L’instruction IF THEN …..ELSE Syntaxe générale : (ici allez toujours à la ligne) IF a >0 THEN instruction(s) ELSE instruction(s) END IF

Différents cas de construction de IF THEN ….. IF b > 12 THEN instruction 2 ELSEIF b<8 THEN instruction 3 ELSE instruction 4 END IF

Différents cas de construction de IF THEN ….. IF a > 0 THEN IF b > 12 THEN instruction1 END IF IF c > 8 THEN instruction 2 ELSE instruction 3 instruction 4 ELSE instruction 5

Etude d’un programme « répétitif » Nous allons étudier un programme qui permet de faire répéter plusieurs fois un même enchaînement de procédures et événements. On ne peut pas matérialiser un traitement répétitif par une boucle classique ( Pour, Jusqu’à, ou Tant Que) lorsqu’un événement, déclenché par l’utilisateur, intervient au cours de ce traitement. Dans ce programme on trouvera aussi des procédures qui ne dépendent pas directement d’un événement

Code du programme Dim nb1, nb2, err, nbfois As Integer Private Sub UserForm_Initialize() Randomize err = 0 Genere nbfois = 0 End Sub Sub Genere() nombre1.Caption = Int(Rnd * 8) + 2 nombre2.Caption = Int(Rnd * 8) + 2 nb1 = nombre1.Caption nb2 = nombre2.Caption

Code du programme Sub AfficheBilan() Dim rep As Integer rep = Val(reponse.Value) If rep = (nb1 * nb2) Then MsgBox "Bien" Else: MsgBox "faux" err = err + 1 End If End Sub ATTENTION :AfficheBilan et Genere sont des procédures qui sont déclenchées par d’autres procédures et non pas par des événements

Code du programme Sub validez_Click() nbfois = nbfois + 1 If nbfois < 4 Then AfficheBilan If nbfois = 3 Then validez.Caption = "FIN" MsgBox "vous avez fait " & err & " erreurs" reponse.Locked = True Else: reponse.SetFocus Genere reponse.Value = "" End If Else End End Sub

MSGBOX ’’ vous avez fait’’ & erreurs & ’’erreurs ’’ Les boites de dialogue MSGBOX Pour afficher simplement un message et le bouton OK : MSGBOX ’’ vous avez fait’’  & erreurs & ’’erreurs ’’

Les boites de dialogue MSGBOX Pour afficher un texte et les boutons OK et ANNULER : Choix = MSGBOX ’’erreur d’écriture ’’,1, ’’vérification LO10’’

Les boites de dialogue MSGBOX Syntaxe : Variable pour la réponse = MSGBOX (’’ texte ’’ ,1, ’’titre ’’) Le 2° paramètre, qui vaut ici 1, provoque l’apparition des deux boutons OK et ANNULER Le 3° paramètre apparaîtra en titre en haut de la boîte de dialogue La variable de la réponse contiendra : 1 si l’utilisateur a cliqué sur OK, ou 2 s’il a cliqué sur ANNULER. On doit ensuite tester cette variable pour continuer le traitement selon le choix de l’utilisateur

Les boites de dialogue MSGBOX Autres valeurs possibles du 2° paramètre de MSGBOX : 2 : pour afficher les boutons Abandonner, Répéter et Ignorer 3 : pour afficher les boutons Oui, Non, et Annuler 4 : pour afficher les boutons Oui et Non 5 : pour afficher les boutons Répéter et Annuler

2 s’il a cliqué sur Annuler Les boites de dialogue MSGBOX Valeurs possibles de la réponse en fonction du choix de l’utilisateur dans MSGBOX 1 s’il a cliqué sur OK 2 s’il a cliqué sur Annuler 3 s’il a cliqué sur Abandonner 4 s’il a cliqué sur Répéter 5 s’il a cliqué sur Ignorer 6 s’il a cliqué sur Oui 7 s’il a cliqué sur Non

La fonction INPUTBOX Pour inviter l’utilisateur à saisir une valeur, sans passer par un objet du userform, on peut utiliser la fonction InputBox. Exemple d’utilisation : la fenêtre s’incruste temporairement sur le userform, comme pour MsgBox

La fonction INPUTBOX CodeJoueur = InputBox(" Entrez un nombre entre 2 et 9 ", " saisie du code joueur ",2) Le 1° paramètre précise la consigne Le 2° paramètre précise le titre de la boite Le 3° paramètre propose une valeur de réponse

La fonction INPUTBOX La variable résultat , de type chaîne de caractères, nommée CodeJoueur dans l’exemple précédent, contiendra la valeur entrée par l’utilisateur (ou la valeur proposée par défaut), si celui-ci sélectionne OK ou appuie sur la touche ENTRÉE. Si l’utilisateur choisit Annuler, une chaîne de longueur nulle est renvoyée.

Définition : une expression booléenne C’est une expression logique qui sera évaluée par l’ordinateur, et qui vaudra l’une ou l’autre des valeurs logiques VRAI ou FAUX. Elle sera construite à l’aide de variables valeurs expression mathématiques comparateurs (= > < etc) opérateurs booléens ET NOT OU

Les opérateurs booléens Il est indispensable de savoir que : en l’absence de parenthèses ET est prioritaire par rapport à OU NOT est prioritaire par rapport à ET NOT (a ET b) = NOT a OU NOT b NOT (a OU b) = NOT a ET NOT b

Les opérateurs booléens Liste des opérateurs par priorité décroissante, en l’absence de parenthèses puissance multiplication, division réelle division entière reste de la division entière (MOD) addition soustraction = > < >= <= <> NOT ET OU

Exemples d’expressions booléennes Traductions booléennes du texte suivant : Je n’ai pas d’ordinateur mais ma voiture est belle Avec des variables de type numérique Nb_ordinateur = 0 et nb_belle_voiture=1 Avec des variables de type booléen not ordinateur et belle_voiture

Exemples d’expressions booléennes Négation de l’expression suivante Je n’ai pas d’ordinateur mais ma voiture est belle Avec des variables de type numérique Nb_ordinateur <> 0 ou not (nb_belle_voiture=1 ) Avec des variables de type booléen ordinateur ou not belle_voiture

espace , chiffres, majuscules, minuscules Les chaînes de caractères Ce sont des variables, ou des valeurs constantes qui contiennent du texte, et/ou des chiffres, en code Ascii (American Code for Information Interchange) Pour comparer des chaînes de caractères l’ordinateur compare les codes Ascii des caractères de même rang espace , chiffres, majuscules, minuscules

Les chaînes de caractères Si nom1= "Dupont"  , nom2= "Durand" nom3= "DUPONT" ,  nom4= "dupont" Les comparaisons suivantes sont toutes fausses : Nom1 > nom2 Nom1 >= nom2 Nom1 = nom3 Nom1 < nom3 Nom1 > nom4

Les chaînes de caractères La fonction LEN indique le nombre de caractères contenus dans la variable : LONG = LEN(Saisie.Value) La fonction LCASE transforme tous les caractères de la variable en minuscules : prénom=LCASE (prénom) La fonction UCASE transforme tous les caractères de la variable en majuscules : nom=UCASE (nom)

Les chaînes de caractères La fonction Left recopie des caractères à partir du premier caractère. Exemple : soit NomComplet = ’’DUPONT Jean’’ La commande : NomDeFamille = Left (Nomcomplet, 6) permettra de mettre ’’DUPONT ’’ dans la variable NomDeFamille

Les chaînes de caractères La fonction Right recopie des caractères à partir du dernier caractère. Exemple : soit NomComplet = ’’DUPONT Jean’’ la commande : Prénom = Right (Nomcomplet, 4) permettra de mettre ’’Jean’’ dans la variable Prénom

Les chaînes de caractères La fonction Mid permet de recopier un certain nombre de caractères (3° paramètre), d’une variable Chaîne de caractères (1° paramètre), à partir du n° caractère (2° paramètre) Exemple : NomComplet = ’’DUPONT Jean’’ la commande : Prénom = Mid(NomComplet,8,4) permet d’obtenir ’’Jean’’ dans la variable Prénom

Les chaînes de caractères La fonction InStr permet de savoir si une sous-chaîne se trouve dans une chaîne, et à partir de quel endroit (attention aux minuscules, majuscules) NomComplet = ’’DUPONT JEAN’’ Position = InStr(NomComplet,’’ON’’)  Position vaudra 4 Position = InStr(NomComplet,’’on’’)  Position vaudra 0 Position = InStr(NomComplet,’’N’’)  Position vaudra 5 et c’est tout Position = InStr(NomComplet,’’I’’)  Position vaudra 0

Les chaînes de caractères Pour remplacer une sous-chaîne, par une autre sous-chaîne, dans une chaîne, on utilise la méthode Replace Dans la commande suivante : trouvé = formule.Replace(’’x’’,’’RCM’’) trouvé est une variable booléenne qui vaudra Vrai si on a trouvé, au moins une fois, la lettre ’’x’’, à remplacer par la chaîne ’’RCM’’, dans la variable formule

Les chaînes de caractères trouvé = formule.Replace(’’x’’,’’RCM’’) dans cette commande nous n’avons pas précisé s’il fallait différencier ‘ x ’ et ‘ X ’ donc par défaut ils ne sont pas différenciés, et tous les ‘ x ’ et ‘ X ’ sont remplacés. Si on ne veut faire remplacer que les ‘x’ minuscules, il faut préciser le 5° paramètre de Replace et le mettre à False trouvé = formule.Replace(’’x’’,’’RCM’’, , , False)

Les chaînes de caractères Exercice : soit NomComplet = ’’DUPONT JEAN’’ Que trouvera-t-on dans la variable X après la commande : X=Mid(NomComplet,1, InStr(NomComplet ,’’ ’’) -1) ?

pour désigner en Visual-Basic une cellule d’Excel Range( ’’A1 ’’) = 12 Set x =Range( ’’A1 ’’) x.cells = 12 Range( ’’A1 ’’) .Name = ’’age ’’ Range( ’’age ’’ ) = 12

pour mettre en Visual-Basic une formule dans une cellule Range( ’’B1 ’’) =   ’’= sin(RC[-1] ) ’’ le R vient du mot Row (niveau de ligne) et le C vient de Column Dans la cellule B1 on aura le sinus de la valeur située dans la cellule A1 ( même ligne et colonne précédente par rapport à B1)

pour désigner en Visual-Basic une plage de cellules Range( ’’A1:B10 ’’) = 12 la valeur 12 est recopiée dans toutes les cellules de la plage  ’’A1:B10 ’’ attention : ceci ne permet pas la recopie automatique d’une formule

pour désigner en Visual-Basic une plage de cellules Range (’’C2:D10 ’’).Name = ’’prénoms ’’ Range( ’’prénoms ’’) =  ’’sophie ’’ la valeur  ’’sophie ’’ est recopiée dans toutes les cellules de la plage  ’ ’prénoms’ ’ Avec la propriété Name, on nomme une plage de cellules. Le nom est ensuite visible dans la liste des cellules nommées du classeur Excel.

pour désigner en Visual-Basic une plage de cellules set PR = Range (’’C2:D10 ’’) La variable PR n ’est pas visible dans la liste des cellules nommées de la feuille Excel. Elle permet de faire référence à l’objet Range choisi. PR  =  ’’sophie ’’ impossible la valeur  ’’sophie ’’ n’est pas recopiée dans toutes les cellules de la plage référencée par PR PR.cells  =  ’’sophie ’’ correct la valeur  ’’sophie ’’ est recopiée dans toutes les cellules de la plage référencée par PR

pour désigner en Visual-Basic une plage de cellules set PR = Range (’’C2:D10 ’’) PR.Cells(5,2) désigne la cellule de la 5° ligne , 2° colonne de la plage référencée par PR (c’est la cellule D6 de la feuille) PR.Cells(10) désigne la même cellule (les cellules sont implicitement numérotées dans PR : ligne par ligne)

pour désigner en Visual-Basic une plage de cellules set PR = Range (’’C2:D10 ’’) PR.Columns(2) désigne toutes les cellules de la 2° colonne de la plage référencée par PR (ce sont les cellules D2 à D10 de la feuille) La commande PR.Columns(2) = ’’oui ’’ remplit toutes les cellules de la 2° colonne de PR avec  ’’oui ’’

pour désigner en Visual-Basic une plage de cellules set PR = Range (’ ’C2:D10 ’’) PR.Rows(7) désigne toutes les cellules de la 7° ligne de la plage référencée par PR (ce sont les cellules C8 et D8 de la feuille) La commande PR.Rows(7) = 0 remplit toutes les cellules de la 7° colonne de PR avec  0

pour désigner en Visual-Basic une plage de cellules set PR = Range (’ ’C2:D10 ’ ’) PR.Cells.Count indique le nombre total de cellules de la plage PR PR.Columns.Count indique le nombre total de colonnes de la plage PR PR.Rows.Count indique le nombre total de lignes de la plage PR Range(’ ’A1 ’ ’ ) = PR.Cells.Count ??

pour désigner en Visual-Basic une plage de cellules set PR = Range (’ ’C2:D10 ’ ’) PR.Cells(PR.Cells.Count) désigne la dernière cellule de la plage référencée par PR (c ’est la cellule D10 de la feuille) PR.Cells(9,2) et PR.Cells(18) et PR.Cells(PR.Rows.Count,PR.Columns.Count) désignent aussi la même cellule, D10 de la feuille d ’Excel

Les boucles Synonymes : boucle, répétitive Ce sont des structures de contrôle qui déterminent un choix quant à la répétition des traitements qu’elles contrôlent. Ce choix dépend de l’évaluation d’une expression booléenne, ou de la valeur du compteur éventuellement associé à cette boucle.

Les boucles En programmation structurée, une boucle doit toujours être exécutée un nombre entier de fois : zéro, une ou plusieurs fois. Son exécution se terminera toujours en fin de boucle. Il est interdit d’interrompre prématurément le traitement de la répétitive (par un Goto, ou autre déstabilisateur comme Exit ...)

Les boucles On ne mettra donc dans une boucle que des instructions qui devront toujours toutes être exécutées le même nombre de fois.

Les boucles Il existe trois boucles différentes, dans presque tous les langages évolués : la boucle POUR la boucle JUSQU ’A la boucle TANT QUE

L ’évolution de la valeur du compteur est automatique La boucle POUR On l’utilisera chaque fois qu’on sera certain de toujours pouvoir déterminer, avant d’y entrer, le nombre entier exact de fois qu’elle va être effectivement exécutée. L ’évolution de la valeur du compteur est automatique Il est interdit de la modifier en cours d’exécution de la boucle Il est interdit de modifier, en cours d’exécution de la boucle, la valeur finale du compteur, initialement prévue

La boucle POUR Exemple : calcul de la somme des 20 premiers nombres entiers strictement positifs Somme =0 For i=1 to 20 Somme=somme + i Next i

La boucle JUSQU’A On l’utilisera chaque fois : qu’on ne pourra pas utiliser correctement la boucle POUR, et qu’on sera certain qu’il faudra toujours l ’exécuter au moins une fois. La condition d’arrêt sera évaluée après chaque tour de boucle. La boucle s’arrêtera lorsque la condition d’arrêt sera vraie.

La boucle JUSQU’A Exemple : calcul de la somme des 20 premiers nombres entiers strictement positifs Somme =0 i=0 DO i=i+1 Somme=somme + i Loop until i=20 Somme =0 i=1 DO Somme=somme + i i=i+1 Loop until i=21

La boucle TANT QUE On l’utilisera chaque fois : qu’on ne pourra pas utiliser correctement la boucle POUR, et qu’on ne sera pas certain qu’il faudra toujours l’exécuter au moins une fois. La condition d ’autorisation de passage sera évaluée avant chaque tour de boucle. On n’entrera dans la boucle que si la condition de passage sera vraie.

La boucle TANT QUE Exemple : calcul de la somme des 20 premiers nombres entiers strictement positifs Somme =0 i=0 DO WHILE i<20 i=i+1 Somme=somme + i Loop Somme =0 i=1 DO WHILE <21 Somme=somme + i i=i+1 Loop

Exemple de boucle Private Sub UserForm_Initialize() Dim i As Integer For i = 1 To Range("noms").Cells.Count Range("noms").Cells(i).Interior.ColorIndex = 3 Next i End Sub

Exemple de boucle Private Sub UserForm_Initialize() Dim i As Integer i = 1 Do Range("noms").Cells(i).Interior.ColorIndex = 3 Loop Until i = Range("noms").Cells.Count End Sub

Exemple de boucle Private Sub UserForm_Initialize() Dim i As Integer i = 1 Do Range("noms").Cells(i).Interior.ColorIndex = 3 i = i + 1 Loop Until i = Range("noms").Cells.Count End Sub

Exemple de boucle Private Sub UserForm_Initialize() Dim i As Integer i = 1 Do While i < > Range("noms").Cells.Count i = i + 1 Range("noms").Cells(i).Interior.ColorIndex = 3 Loop End Sub

Exemple de IF Private Sub Choix_AfterUpdate() Dim L as string*1 L = UCase(Choix.Text) If L < > "O" or L < > "N " Then MsgBox ("erreur ") Else Range("corrigé!G2") = L End If End Sub

L’objet Workbooks Une collection est un objet contenant plusieurs autres objets, généralement, de même type. Dans Excel, par exemple, l'objet Workbooks contient tous les objets de la collection Workbook. Les éléments d'une collection peuvent être identifiés par un numéro d’ordre ou par leur nom. Workbooks(1) identifie le premier objet du Workbook ouvert. Workbooks("TD impots ") désigne le classeur nommé TD impots

L’objet Worksheets De même Worksheets est un objet particulier de la collection Worksheet . Worksheets(1) identifie la premiere feuille du Workbook ouvert. Worksheets("sondage") désigne la feuille nommée sondage

L’objet Worksheets Pour créer depuis Visual-Basic une nouvelle feuille de calcul dans la classeur courant, et l'insérer par défaut avant la feuille active, on utilise la méthode Add. Worksheets.Add Pour ajouter une nouvelle feuille de calcul après la dernière feuille du classeur actif on ajoute la méthode Move, en précisant la valeur de son paramètre after Worksheets.Add.Move after := Worksheets ( Worksheets .Count)

L’objet Worksheets Pour créer et nommer une feuille de calcul dans le classeur actif ActiveWorkbook.Worksheets.Add.Name = " planning "   Pour créer et nommer et pouvoir faire référence cette feuille de calcul par un nom de variable Set plan= Worksheets.Add plan.Name =    " planning "

Sélections et traitements Pour sélectionner une cellule, ou une plage de cellules en vue de leur appliquer un traitement (commun), on utilise la méthode Select. Ceci correspond à la sélection que l’on fait à la souris sous Excel. Range("A1:B3").Select

Sélections et traitements Pour changer de feuille active, ce qui correspond sous Excel, à cliquer sur son onglet (ça ne la sélectionne pas), on emploie la méthode Activate. Worksheets("bilan").Activate On fait de même pour passer sur un autre classeur ouvert, pour en faire le classeur actif. Workbooks("TD VB1").Activate

Couper, copier, coller Pour couper la plage A1:D10 de la feuille résultats et la placer dans le Presse-papiers. Worksheets("résultats").Range("A1:D10").Cut Pour copier-coller les cellules A1:D10 de la feuille calculs dans la feuille graphique, à partir de la cellule E5, on utilise un copy en précisant sa destination Worksheets("calculs").Range("A1:D10").Copy _ destination:= Worksheets("graphique").Range("E5")

Perfectionnement Lorsqu’on veut pouvoir déclencher un programme sans aller dans l ’éditeur de Visual-Basic, on définit un bouton dans une barre d’outils, ou un bouton de commande sur une feuille, et on lui associe une macro telle que celle-ci : Private Sub démarre() ‘ ouverture du classeur ( nécessaire si on a ‘  cliqué sur un bouton dans une barre d ’outils) Workbooks.Open("C:\Moi\MonJeu.xls") ‘ charge le userform sans l’afficher Load UserFormJeu ‘ affiche le userform UserFormJeu.Show End Sub

Dans le menu Outils d’Excel choisissez : Pour créer une nouvelle barre d’outil, et un bouton Dans le menu Outils d’Excel choisissez : Personnaliser, Onglet Barre d’outils : Nouvelle (elle apparaît dans l’écran) Onglet commandes : Catégories : choisir Macros Glisser le bouton jaune souriant dans la nouvelle barre d’outil Cliquez sur le bouton “ modifier la sélection “  Choisir “ modifier l’image du bouton ” Choisir “ affecter une macro ” Fermer

Perfectionnement Lorsque le projet nécessite plusieurs userforms, on les charge, on les affiche, et on peut les masquer temporairement, puis les décharger pour libérer de la place en mémoire centrale. La méthode Hide sert à masquer un objet, ici de type userform, sans le décharger. UserFormJeu.Hide La méthode Unload sert à le décharger. UserFormJeu.Unload Le userform de ces exemples se nomme UserFormJeu, et non pas seulement Jeu

Perfectionnement Pour désigner des plages multizones, c'est-à-dire, des plages composées d'au moins deux blocs de cellules contiguës, on utilise : Union(plage1, plage2, ...). Dim r1, r2, r1r2 As Range Worksheets("résultats").Activate Set r1 = Range("A1:B2") Set r2 = Range("C3:D4") Set r1r2 = Union(r1, r2) r1r2.Select Cet exemple crée un objet unique correspondant à l'union des plages A1:B2 et C3:D4, puis sélectionne la nouvelle plage définie.

Si le chemin d'accès courant sur le lecteur C: est Précisions sur les chemins On a souvent besoin de savoir quel est lecteur, et le répertoire actifs . La fonction CurDir renvoie le chemin d'accès courant. Exemple Si le chemin d'accès courant sur le lecteur C: est C:\LO10\Excel et si le chemin d'accès courant sur le lecteur D: est D:\Stage et si C: est le lecteur courant, alors : Chemin1 = CurDir retournera " C:\LO10\Excel " Chemin2 = CurDir("C") retournera "C:\LO10\Excel". Chemin3= CurDir("D")' retournera "D:\stage".

Précisions sur les chemins L'instruction ChDir change le répertoire par défaut mais pas le lecteur par défaut. Par exemple, si C est le lecteur par défaut, l'instruction ci-dessous change le répertoire par défaut sur le lecteur D, mais C reste le lecteur par défaut : ChDir "D:\TMP" Pour changer de lecteur courant on utilise ChDrive . ChDrive "D" fait de "D" le lecteur courant.

Précisions sur les chemins Pour créer un nouveau répertoire ou dossier dans le répertoire courant, on utilise l'instruction MkDir , abrégé de Make Directory Si le lecteur n'est pas indiqué dans le paramètre, le nouveau répertoire ou dossier est créé sur le lecteur courant. MkDir "gestion" Le fait de préciser le lecteur ne le rend pas actif par défaut Si C: est le lecteur actif, après l’instruction suivante il le sera encore MkDir "D:gestion"

Précisions sur les chemins Si sur E: le répertoire courant est Td , MkDir "E:Excel" crée un répertoire Excel dans Td MkDir "E:\Excel" crée un répertoire Excel de même niveau que L010 et Mt11