VBA Excel (IGN).pdf

download VBA Excel (IGN).pdf

of 33

Transcript of VBA Excel (IGN).pdf

  • CPR Informatique

    (poste 3159 ou 3164)

    Septembre 2001

    VViissuuaall BBaassiicc AApppplliiccaattiioonn ppoouurr EExxcceell

  • Table des matires

    1.- PRISE EN MAIN DE LENVIRONNEMENT ...................................................................................................3

    1.1.- DEMARRAGE DE VISUAL BASIC DANS EXCEL.................................................................................................... 3 1.2.- LEXPLORATEUR DE PROJET ............................................................................................................................. 3 1.3.- LEXPLORATEUR D'OBJETS ............................................................................................................................... 4 1.4.- LA FENETRE CODE............................................................................................................................................ 6 1.5.- LA FENETRE EXECUTION .................................................................................................................................. 7 1.6.- LA FENETRE ESPIONS ....................................................................................................................................... 8

    2.- CREATION DE FORMULAIRES ......................................................................................................................9

    2.1.- CASE DOPTION................................................................................................................................................. 9 2.2- CASE COCHER ................................................................................................................................................. 9 2.3.- ZONE DE LISTE ................................................................................................................................................ 10 2.4.- BOUTON DE COMMANDE ................................................................................................................................. 11 2.5.- IDENTIFICATEUR DES CONTROLES................................................................................................................... 12

    3.- LES BOITES DE DIALOGUES.........................................................................................................................13

    3.1.- LOBJET USERFORM. ...................................................................................................................................... 13 3.1.1.- Cration dune UserForm ......................................................................................................................13 3.1.2.- Modification du nom dune UserForm...................................................................................................13 3.1.3.- Modification des proprits dune UserForm. .......................................................................................13

    3.2.- LA BOITE A OUTILS ......................................................................................................................................... 14 3.2.1.- Affichage ou masquage de la bote outils ............................................................................................14 3.2.2.- Les contrles de la bote outils............................................................................................................14

    3.3.- LES CONTROLES SUPPLEMENTAIRES ............................................................................................................... 18 3.4.- MODIFICATION DUN CONTROLE..................................................................................................................... 18

    3.4.1.- Modification du nom ..............................................................................................................................18 3.4.2.- Modification dune proprit .................................................................................................................19

    3.5.- LA SUPERPOSITION DES CONTROLES ............................................................................................................... 19

    4.- LES MENUS ........................................................................................................................................................20

    4.1.- LE MENU BARRE ........................................................................................................................................ 20 4.2.- LE MENU CONTEXTUEL ............................................................................................................................. 20

    5.- REPONSES AUX EVENEMENTS....................................................................................................................22

    6.- LAIDE EN LIGNE SUR LES PROCEDURES EVENEMENTIELLES ......................................................23

    7.- ACTIONS POSSIBLES SUR UN DOCUMENT EXCEL................................................................................24

    7.1.- OUVERTURE ET FERMETURE DUN DOCUMENT EXCEL .................................................................................... 24 7.2.- ACTIONS SUR LOBJET FEUILLE EXCEL ..................................................................................................... 24 7.3.- ACTIONS SUR LOBJET CELLULE EXCEL .................................................................................................... 25 7.4.- AUTRES ACTIONS SUR DES OBJETS EXCEL....................................................................................................... 26 7.5.- QUELQUES EXEMPLES DACTIONS PLUS COMPLEXES....................................................................................... 27

    ANNEXES .................................................................................................................................................................29

    A1.- CONSTANTES, BOUTONS ET ICONES DES BOITES DE MESSAGES....................................................................... 29 A2.- CONSTANTES DE CODE DE TOUCHES ............................................................................................................... 31

  • IGN / ENSG / CPRI Visual Basic Application pour Excel page 3/33

    1.- Prise en main de lenvironnement

    1.1.- Dmarrage de Visual basic dans Excel Dans le menu Outils slectionnez la commande Macro Visual Basic Editor pour activer lexplorateur de projet.

    1.2.- LExplorateur de projet Lexplorateur de projet affiche une liste hirarchise des projets et de tous les lments rfrencs par chaque projet et contenus dans un projet.

    Ouvre une fentre destine recevoir le code Visual Basic

    Le projet et les lments qu'il contient :

    Affiche l'objet slectionn

  • IGN / ENSG / CPRI Visual Basic Application pour Excel page 4/33

    1.3.- LExplorateur d'objets Affiche les classes, les proprits, les mthodes, les vnements et les constantes disponibles dans les bibliothques d'objets et les procdures de votre projet. Il permet de rechercher et d'utiliser des objets que vous crez ainsi que des objets provenant d'autres applications.

    Projet/bibliothque

    Rechercher un texte

    Retourner

    Avancer

    Afficher la dfinition

    Aide

    Copier

    Afficher/masquerRechercher

    Zone Projet/bibliothque Affiche les bibliothques actuellement rfrences pour le projet actif. Vous pouvez ajouter des bibliothques dans la bote de dialogue Rfrences. All Libraries permet d'afficher simultanment toutes les bibliothques. Zone Rechercher un texte Contient la chane utiliser dans votre recherche. Vous pouvez taper ou choisir la chane utiliser. La zone Rechercher un texte conserve jusqu' la fermeture du projet les 4 dernires chanes de recherche que vous avez entres. Vous pouvez utiliser les caractres gnriques Visual Basic standard lorsque vous tapez une chane. Pour rechercher un mot entier, utilisez la commande Mot entier du menu contextuel. Bouton Retourner Permet de revenir la slection prcdente dans les listes Classes et Membres de . Vous remontez d'une slection chaque fois que vous cliquez sur ce bouton, jusqu' puisement des choix prcdents. Bouton Avancer Permet de rutiliser vos slections d'origine dans les listes Classes et Membres de chaque fois que vous cliquez dessus, jusqu' puisement de la liste de slections. Bouton Copier dans le Presse-papiers Copie la slection en cours dans la liste Membres de ou le texte du volet Dtails vers le Presse-papiers. Vous pouvez ensuite coller la slection dans votre code. Bouton Afficher la dfinition Dplace le curseur la position laquelle est dfinie la slection dans la liste Membres de ou Classes de la fentre Code.

  • IGN / ENSG / CPRI Visual Basic Application pour Excel page 5/33

    Bouton Aide Affiche la rubrique d'aide en ligne correspondant l'lment slectionn dans la liste Classes ou Membres de . Vous pouvez galement appuyer sur F1. Bouton Rechercher Lance une recherche dans les bibliothques sur la classe ou proprit, mthode, constante ou l'vnement correspondant la chane que vous avez tape dans la zone Rechercher un texte et ouvre le volet Rsultats de la recherche , dans lequel figurent les informations demandes. Bouton Afficher/Masquer les rsultats de la recherche Ouvre ou masque le volet Rsultats de la recherche . Les informations de ce dernier sont modifies pour afficher les rsultats de la recherche dans la bibliothque ou dans le projet slectionn dans la liste Projet/bibliothque . Les rsultats de la recherche sont rpertoris par ordre alphabtique de A Z. Liste Rsultats de la recherche Affiche la bibliothque, la classe et le membre correspondant aux lments indiqus dans votre chane de recherche. Les informations du volet Rsultats de la recherche sont modifies lorsque vous changez la slection dans la zone Projet/bibliothque . Liste Classes Affiche toutes les classes disponibles dans la bibliothque ou dans le projet slectionn dans la zone Projet/Bibliothque . S'il existe du code rdig pour une classe, cette dernire apparat en gras. La liste commence toujours par , la liste des membres auxquels l'accs est global. Si vous slectionnez une classe sans prciser de membre, le membre par dfaut, s'il existe, est utilis. Le membre par dfaut est indiqu par un astrisque (*) ou par l'icne par dfaut spcifique ce membre. Liste Membres de Affiche les lments de la classe slectionne dans le volet Classes en les triant par groupe, puis dans l'ordre alphabtique au sein de chaque groupe. Les mthodes, proprits, vnements ou constantes pour lesquels du code est rdig apparaissent en gras. Vous pouvez modifier l'ordre de cette liste avec la commande Membres du groupe du menu contextuel de l'Explorateur d'objets. Volet Dtails Affiche la dfinition du membre. Le volet Dtails contient un renvoi la classe ou bibliothque laquelle l'lment appartient. Certains membres sont dots de renvois leur classe parent. Par exemple, si le texte du volet Dtails indique que Command1 est dclare en tant que type de bouton de commande, la classe Bouton de commande apparat si vous cliquez sur le bouton de commande. Vous pouvez copier ou faire glisser le texte du volet Dtails vers la fentre Code. Barre de fractionnement Spare les volets pour vous permettre de modifier leur taille. Des sparations existent entre : la zone Classes et la zone Membres de ; la liste Rsultats de la recherche et les zones Classes et Membres de ; les zones Classes et Membres de et le volet Dtails .

  • IGN / ENSG / CPRI Visual Basic Application pour Excel page 6/33

    1.4.- La Fentre Code Pour afficher la fentre de code : 1. slectionnez lobjet qui doit tre associ au code Visual Basic ; 2. cliquez sur le bouton daffichage de la fentre code .

    12

    La fentre Code permet d'crire, d'afficher et de modifier le code Visual Basic. Vous pouvez ouvrir autant de fentres Code que vous avez de modules, ce qui vous permet de visualiser facilement le code des diffrentes feuilles ou modules et d'effectuer des oprations de copier-coller de l'un l'autre.

    Vous pouvez ouvrir une fentre Code partir de :

    la fentre Projet, en slectionnant une feuille ou un module, et en choisissant le bouton Afficher le code ;

    une fentre UserForm, en double-cliquant sur un contrle ou sur une feuille, en choisissant Code dans le menu Affichage ou en appuyant sur F7.

    Vous pouvez faire glisser le texte slectionn vers :

    un autre emplacement de la fentre Code en cours ; une autre fentre Code ; les fentres Excution et Espions ; la Corbeille. lments de la fentre code Zone Objet Affiche le nom de l'objet slectionn. Cliquez sur la flche situe droite de la zone de liste pour afficher la liste de tous les objets associs la feuille. Zone Procdures/vnements Rpertorie tous les vnements reconnus par Visual Basic pour la feuille ou le contrle affich dans la zone Objet. Lorsque vous slectionnez un vnement, la procdure d'vnement qui est associe son nom apparat dans la fentre Code. Si (Gnral) est affich dans la zone Objet, la zone Procdure rpertorie l'ensemble des dclarations et des procdures gnrales qui ont t cres pour la feuille. Si vous modifiez le code du module, la zone Procdure affiche toutes les procdures gnrales du module. Dans les deux cas, la procdure que vous avez slectionne dans la zone Procdure apparat dans la fentre Code.

  • IGN / ENSG / CPRI Visual Basic Application pour Excel page 7/33

    Toutes les procdures d'un module sont affiches par ordre alphabtique dans une mme liste avec dfilement. Si vous slectionnez une procdure l'aide des zones de liste droulantes situes en haut de la fentre Code, le curseur va immdiatement se placer sur la premire ligne de code de la procdure slectionne. Barre de fractionnement Faire glisser cette barre vers le bas a pour effet de fractionner la fentre Code en deux volets horizontaux dont vous pourrez faire dfiler le contenu de manire totalement autonome. Vous pouvez ensuite afficher simultanment diffrentes parties de votre code. Les informations qui apparaissent dans les zones Objet et Procdures/vnements s'appliquent au code du volet qui a le focus. Si vous faites glisser la barre de fractionnement jusqu'en haut de la fentre, un volet se ferme. Barre des indicateurs en marge Zone grise situe gauche de la fentre Code o apparaissent les indicateurs en marge. Icne Affichage de la procdure Affiche la procdure slectionne. La fentre Code ne peut afficher qu'une procdure la fois. Icne Affichage complet du module Affiche l'ensemble du code du module.

    1.5.- La Fentre Excution

    Dans cette fentre, vous pouvez : taper ou coller une ligne, puis appuyer sur ENTRE pour l'excuter ; copier le code de la fentre Excution pour le coller dans la fentre Code , mais vous ne

    pouvez pas enregistrer le code de la fentre Excution ; faire glisser et dplacer la fentre Excution n'importe o sur votre cran, sauf si vous en

    faites une fentre ancrable l'aide de l'onglet Ancrage de la bote de dialogue Options. Pour fermer la fentre, cliquez sur la case de fermeture. Si elle n'est pas visible, double-cliquez sur la barre de titre pour que la case de fermeture apparaisse, puis cliquez sur cette dernire.

    En mode Arrt, une instruction figurant dans la fentre Excution est excute dans le contexte ou la porte indiqu dans la zone Procdure. Par exemple, si vous tapez Print variablename , la sortie est la valeur d'une variable locale, comme si la mthode Print s'tait trouve dans la procdure que vous excutiez quand le programme s'est arrt.

  • IGN / ENSG / CPRI Visual Basic Application pour Excel page 8/33

    1.6.- La Fentre Espions

    Cette boite apparat automatiquement lorsque des expressions espionnes sont dfinies dans le projet. Vous pouvez : modifier la taille des en-ttes de colonnes en faisant glisser la bordure vers la droite pour les

    agrandir ou vers la gauche pour les rduire ; faire glisser une variable slectionne vers la fentre Excution ou la fentre Espion ; fermer la fentre en cliquant sur la case de fermeture. Si elle n'est pas visible, double-cliquez

    sur la barre de titre pour que la case de fermeture apparaisse, puis cliquez sur cette dernire.

    Expression : affiche l'expression espionne avec l'icne Espion, sa gauche. Valeur : indique la valeur de l'expression au moment du passage au mode Arrt. Vous pouvez modifier la valeur puis appuyer sur ENTRE, sur les touches flches HAUT et BAS, TAB, MAJ+TAB, ou cliquer sur l'cran pour valider la modification. Si la valeur est incorrecte, le champ Modifier reste actif et la valeur est mise en vidence. Un message dcrivant l'erreur apparat galement. Pour annuler une modification, appuyez sur CHAP.

    Type : indique le type de l'expression. Contexte : affiche le contexte de l'expression espionne. Si le contexte de l'expression n'est pas dans la porte lors du passage au mode Arrt, la valeur en cours n'est pas indique. Pour fermer la fentre, cliquez sur la case de fermeture. Si elle n'est pas visible, double-cliquez sur la barre de titre pour que la case de fermeture apparaisse, puis cliquez sur cette dernire.

  • IGN / ENSG / CPRI Visual Basic Application pour Excel page 9/33

    2.- Cration de formulaires Sur une feuille de calcul vous pouvez placer des case cocher, des boutons d'options, des listes droulantes ou des boutons de commande (qui serviront dclencher des macros).

    Ces contrles placs sur une feuille de calcul peuvent ne pas tre visible au moment de l'impression.

    2.1.- Case doption 1. dans le menu Affichage , activez la commande Barre d'outils , puis affichez la barre

    Formulaire ; 2. cliquez sur le bouton Case doption , puis placez lobjet sur la feuille de calcul ; 3. lorsque lobjet est slectionn, dans le menu Format , activez la commande

    Contrle.. ; 4. cliquez sur longlet Contrle , puis indique la valeur souhaite (Non coch, Coch ou

    Gris) ; 5. indiquez la cellule lie. La cellule lie tant la cellule qui reoit le n de la case doption

    active.

    1

    2

    3

    4

    5

    Cellule lie

    2.2- Case cocher 1. dans le menu Affichage , activez la commande Barre d'outils , puis affichez la barre

    Formulaire ; 2. cliquez sur le bouton Case cocher , puis placez lobjet sur la feuille de calcul ; 3. lorsque lobjet est slectionn, dans le menu Format , activez la commande Contrle ; 4. cliquez sur longlet Contrle , puis indique la valeur souhaite (Non coch, Coch ou

    Gris) ; 5. indiquez la cellule lie. La cellule lie tant la cellule qui reoit VRAI lorsque la case est

    coche, FAUX dans lautre cas.

  • IGN / ENSG / CPRI Visual Basic Application pour Excel page 10/33

    1

    2

    Cellule lie

    4

    3

    5

    2.3.- Zone de liste 1. dans le menu Affichage , activez la commande Barre d'outils , puis affichez la barre

    Formulaire ; 2. cliquez sur un des boutons Zone de liste, puis placez lobjet sur la feuille de calcul ; 3. lorsque lobjet est slectionn, dans le menu Format , activez la commande Contrle ; 4. cliquez sur longlet Contrle , puis indique la Plage dentre . La plage dentre tant

    la plage des cellules contenant les informations qui doivent figurer dans la liste ; 5. indiquez la cellule lie. La cellule lie tant la cellule qui reoit le n du rang de

    linformation slectionne dans la liste ; 6. indiquez le Nombre de lignes ,. Le nombre de lignes correspond aux nombre de lignes

    affiches lorsque lon clique sur la zone de liste droulante.

    1

    4

    3

    5

    2

    6

    Cellule lie

    Plage d'entre

  • IGN / ENSG / CPRI Visual Basic Application pour Excel page 11/33

    Remarque :

    les cellules lies, les plages dentres, peuvent tre situes sur une autre feuille ; pour ne pas imprimer ces contrles, dcochez la case Imprimer lobjet .

    2.4.- Bouton de commande 1. dans le menu Affichage , activez la commande Barre d'outils , puis affichez la barre

    Formulaire ; 2. cliquez sur le bouton Bouton, puis placez lobjet sur la feuille de calcul ; 3. la fentre Affecter une macro saffiche, slectionnez la macro ; 4. cliquez sur Ok ; 5. slectionner le texte du bouton, puis taper le texte qui vous convient.

    1 4

    3

    5

    2

  • IGN / ENSG / CPRI Visual Basic Application pour Excel page 12/33

    2.5.- Identificateur des contrles Contrairement aux boites de dialogue que nous verrons dans le chapitre suivant, les contrles insrs dans une feuille Excel (Case option, Case cocher, Boutons ) nont pas didentificateur. La seule de manire de les identifier est de connatre lordre de cration du contrle dans la feuille Excel. Visual Basic range les contrles dans un tableau de mme type. Par exemple, si vous crez trois boutons sur votre feuille Excel, VBA cre un tableau Buttons de trois lments de type Buttons . De mme, si vous crez deux cases doptions, vous aurez un tableau OptionButtons de deux lments. Si vous dsirez connatre ltat des cases doptions (par exemple laquelle des deux est slectionne), vous pouvez crire le code suivant : For I = 1 To 2

    Valeur = Sheets ("nom de la feuille").OptionButtons(I).ValueDebug.Print Valeur

    Next

    Dans le cas prcdent, Valeur vaudra 1 pour la case coche et une valeur ngative quelconque pour la case non coche. Autre exemple : rendre un bouton visible. Pour connatre lordre de cration du bouton (donc son rang dans le tableau Buttons ), on peut par exemple parcourir lensemble des boutons de la feuille Excel (faire une boucle sur le nombre de boutons de la feuille) et comparer lattribut Text de tous les boutons avec celui recherch.

    Une fois le rang du bouton trouv, il suffit daffecter la valeur False la proprit Visible du bouton.

    Sheets ("nom de la feuille").Buttons(rang).Visible = False

    Note : Le tableau des boutons de commande a pour nom : Buttons . Le tableau des Cases cocher a pour nom : CheckBoxes . Le tableau des Cases doptions a pour nom : OptionButtons . Le tableau des Zones de liste a pour nom : DropDowns . Le tableau des Zones de texte a pour nom : Labels .

  • IGN / ENSG / CPRI Visual Basic Application pour Excel page 13/33

    3.- Les boites de dialogues 3.1.- Lobjet UserForm. 3.1.1.- Cration dune UserForm La commande Userform du menu Insertion vous permet de crer des fentres ou des botes de dialogue pour votre projet. Pour crer une fentre, activez la commande UserForm du menu Insertion.

    Une fois lobjet UserForm cr, utilisez les boutons de la bote outils pour dessiner des contrles sur la feuille. Vous pouvez aligner automatiquement les contrles sur la grille en choisissant l'option correspondante dans l'onglet Gnral de la bote de dialogue Options. Vous pouvez afficher la grille de feuille et dfinir l'espacement de ses lignes dans l'onglet Gnral de la bote de dialogue Options.

    3.1.2.- Modification du nom dune UserForm. slectionnez une UserForm ; dans la partie gauche de la fentre, face Name ,modifiez le nom.

    3.1.3.- Modification des proprits dune UserForm. slectionnez une UserForm ; cliquez dans la partie gauche de la fentre, face la proprit modifiez, slectionnez la

    nouvelle valeur dans le menu droulant. Remarque : Pour connatre la signification dune proprit, cliquez sur le libell de la proprit et appuyez sur la touche F1.

  • IGN / ENSG / CPRI Visual Basic Application pour Excel page 14/33

    3.2.- La boite outils 3.2.1.- Affichage ou masquage de la bote outils Dans le menu Affichage, regardez si une coche saffiche en regard de Bote outils. Si la coche est prsente, la bote outils saffiche, dans le cas contraire, elle est masque.

    Choisissez lune des options suivantes : pour afficher la bote outils, vrifiez que la coche apparat en regard de Bote outils. Si ce

    nest pas le cas, slectionnez Bote outils ; pour masquer la bote outils, vrifiez quaucune coche napparat en regard de Bote

    outils. Si une coche apparat, slectionnez Bote outils pour la supprimer.

    3.2.2.- Les contrles de la bote outils Outil de slection des contrles

    IntitulZone de texte

    Zone de liste modifiable

    Zone de listeCase cocher

    Bouton d'option

    Bouton bascule

    CadreBouton de commande

    OngletMultipage

    DfilementToupie

    Zone d'image

    3.2.1.- Intitul ( Label )

    Un contrle Label dans une feuille affiche un texte descriptif tel que des titres, des lgendes, des images ou de brves instructions. Par exemple, les tiquettes dun carnet dadresses peuvent inclure un contrle Label pour un nom, une rue ou une ville. Un contrle Label naffiche pas de valeurs issues de sources de donnes ou dexpressions ; il est toujours indpendant et ne change pas lorsque vous vous dplacez dun enregistrement lautre. La proprit par dfaut dun Label est la proprit Caption. Lvnement par dfaut dun Label est lvnement Click.

    3.2.2.- Zone de texte ( TextBox )

    Le contrle zone de texte est le contrle le plus souvent utilis pour afficher les informations entres par un utilisateur. Il peut galement afficher un ensemble de donnes, tel quune table, une requte, une feuille de programmation ou le rsultat dun calcul. Si un contrle zone de texte est dpendant dune source de donnes, les changements apports au contenu dun contrle zone de texte modifient aussi la valeur de la source de donnes dont il dpend. Le format appliqu toute partie du texte du contrle zone de texte se rpercutera la totalit du texte du contrle. Par exemple, si vous changez la police ou la taille dun caractre du contrle, la modification affecte tous les caractres du contrle. La proprit par dfaut dun contrle zone de texte est la proprit Value. Lvnement par dfaut dun contrle zone de texte est lvnement Change.

    3.2.3.- Zone de liste ( ListBox )

    Affiche une liste de valeurs et vous permet den slectionner une ou plusieurs. Si le contrle Zone de liste est dpendant dune source de donnes, il enregistre la valeur slectionne dans cette source de donnes. Le contrle Zone de liste peut apparatre sous la forme dune liste, dun groupe de contrles OptionButton ou de contrles CheckBox.

  • IGN / ENSG / CPRI Visual Basic Application pour Excel page 15/33

    La proprit par dfaut dun contrle Zone de liste est la proprit Value. Lvnement par dfaut dun contrle Zone de liste est lvnement Click.

    3.2.4.- Zone de liste modifiable ( ComboBox )

    Allie les caractristiques dun contrle Zone de liste et dun contrle zone de texte. Lutilisateur peut entrer une nouvelle valeur, comme dans un contrle zone de texte ou bien slectionner une valeur existante comme dans un contrle Zone de liste. Si un contrle Zone de liste modifiable est dpendant dune source de donnes, il insre dans cette source de donnes la valeur que lutilisateur entre ou slectionne. Si une liste modifiable multicolonne est dpendante, la proprit BoundColumn dtermine la valeur enregistre dans la source de donnes dont dpend la liste modifiable. La liste dun contrle Zone de liste modifiable se compose de lignes de donnes. Chacune delle peut contenir une ou plusieurs colonnes qui peuvent apparatre avec ou sans titre. Certaines applications nutilisent pas les titres de colonne, dautres ne les lutilisent que partiellement. La proprit par dfaut dun contrle Zone de liste modifiable est la proprit Value. Lvnement par dfaut dun contrle Zone de liste modifiable est lvnement Change.

    3.2.5.- Case cocher ( CheckBox )

    Affiche ltat de la slection dun lment. Utilisez un contrle Case cocher pour permettre lutilisateur de choisir entre deux valeurs telles que Oui/Non, Vrai/Faux ou Actif/Inactif. Quand lutilisateur slectionne un contrle Case cocher, une marque spciale (un X, par exemple) saffiche et sa valeur courante est Oui, Vrai ou Actif ; si lutilisateur ne slectionne pas le contrle Case cocher, celui-ci est vide et sa valeur est Non, Faux ou Inactif. Selon la valeur de la proprit TripleState, un contrle Case cocher peut aussi avoir une valeur nulle. Si un contrle Case cocher est dpendant dune source de donnes, le changement de paramtre modifie la valeur de cette source. Un contrle Case cocher dsactiv affiche sa valeur courante mais il apparat ombr et ne permet pas lutilisateur de modifier sa valeur. Vous pouvez aussi utiliser des cases cocher lintrieur dune zone de groupe pour slectionner un ou plusieurs lments connexes. Par exemple, vous pouvez crer un bon de commande contenant une liste des lments disponibles, en faisant prcder chaque lment dun contrle Case cocher. Lutilisateur peut slectionner un ou plusieurs lments particuliers en cochant le contrle Case cocher correspondant. La proprit par dfaut dun contrle Case cocher est la proprit Value. Lvnement par dfaut dun contrle Case cocher est lvnement Click.

    3.2.6.- Bouton doptions ( OptionButton )

    Affiche ltat de la slection dun lment faisant partie dun groupe. Utilisez un contrle Bouton doptions pour afficher si un seul lment contenu dans un groupe est slectionn. Tous les contrles Bouton doptions dun contrle Frame sexcluent lun lautre. Si un contrle Bouton doptions est dpendant dune source de donnes, il peut afficher la valeur de cette source de donnes comme tant Oui/Non, Vrai/Faux ou Actif/Inactif. Si lutilisateur slectionne le contrle Bouton doptions, la valeur courante est Oui, Vrai ou Actif ; si lutilisateur ne slectionne pas le contrle Bouton doptions, la valeur est Non, Faux ou Inactif. Par exemple, dans une application de suivi des stocks, un contrle Bouton doptions peut faire apparatre si la production dun lment est arrte. Si le contrle Bouton doptions est dpendant dune source de donnes, le changement de paramtre modifie la valeur de cette source. Un contrle Bouton doptions dsactiv est indisponible et il naffiche aucune valeur. Selon la valeur de la proprit TripleState, un contrle Bouton doptions peut aussi avoir une valeur nulle.

  • IGN / ENSG / CPRI Visual Basic Application pour Excel page 16/33

    Vous pouvez aussi utiliser un contrle Bouton doptions lintrieur dune zone de groupe pour slectionner un ou plusieurs groupes dlments connexes. Par exemple, vous pouvez crer un bon de commande contenant une liste des lments disponibles, en faisant prcder chaque lment dun contrle Bouton doptions. Lutilisateur peut slectionner un lment particulier en cochant le contrle Bouton doptions correspondant. La proprit par dfaut dun contrle Bouton doptions est la proprit Value. Lvnement par dfaut dun contrle Bouton doptions est lvnement Click.

    3.2.7.- Bouton bascule (ToggleButton )

    Affiche ltat de la slection dun lment. Utilisez un contrle Bouton bascule pour afficher si un lment est slectionn. Si un contrle Bouton bascule est dpendant dune source de donnes, il affiche la valeur courante de cette source de donnes comme tant Oui/Non, Vrai/Faux, Actif/Inactif ou tout autre choix de deux valeurs. Si lutilisateur slectionne le contrle Bouton bascule, la valeur courante est Oui, Vrai ou Actif ; si lutilisateur ne slectionne pas le contrle Bouton bascule, la valeur est Non, Faux ou Inactif. Si le contrle Bouton bascule est dpendant dune source de donnes, le changement de paramtre modifie la valeur de cette source. Un contrle Bouton bascule dsactiv affiche une valeur, mais il est indisponible et nautorise pas les changements partir de linterface utilisateur. Vous pouvez aussi utiliser un contrle Bouton bascule lintrieur dun contrle Frame pour slectionner un ou plusieurs groupes dlments connexes. Par exemple, vous pouvez crer un bon de commande contenant une liste des lments disponibles, en faisant prcder chaque lment dun contrle Bouton bascule. Lutilisateur peut choisir un lment particulier en slectionnant le Bouton bascule appropri. La proprit par dfaut dun contrle Bouton bascule est la proprit Value. Lvnement par dfaut dun contrle Bouton bascule est lvnement Click.

    3.2.8.- Cadre ( Frame )

    Cre un groupe de contrles fonctionnel et visuel. Tous les boutons doption dun contrle Cadre sexcluent lun lautre, de sorte que vous pouvez utiliser le contrle Cadre pour crer un groupe doptions. Vous pouvez aussi utiliser un contrle Cadre pour regrouper des contrles dont le contenu est troitement associ. Par exemple, dans une application qui traite les commandes clients, vous pouvez utiliser un contrle Cadre pour regrouper noms, adresses et numros de comptes des clients. Vous pouvez aussi utiliser un contrle Cadre pour crer un groupe de boutons bascules, mais ceux-ci ne sexcluent pas lun lautre. Lvnement par dfaut dun contrle Cadre est lvnement Click.

    3.2.9.- Bouton de commande (CommandButton )

    Lance, termine ou interrompt une action ou une srie dactions. La macro ou la procdure dvnement affecte lvnement Click du contrle Bouton de commande dtermine laction de celui-ci. Par exemple, vous pouvez crer un contrle Bouton de commande qui ouvre une autre feuille. Vous pouvez aussi afficher un texte, une image ou les deux sur un contrle Bouton de commande. La proprit par dfaut dun contrle Bouton de commande est la proprit Value. Lvnement par dfaut dun contrle Bouton de commande est lvnement Click.

    3.2.10.- Onglet ( tabStrip )

    Prsente un ensemble de contrles connexes sous forme dun groupe visuel. Vous pouvez utiliser un contrle Onglet pour visualiser diffrents ensembles dinformations. Par

  • IGN / ENSG / CPRI Visual Basic Application pour Excel page 17/33

    exemple, les contrles peuvent reprsenter des informations relatives lemploi du temps journalier dun groupe de personnes, chaque ensemble dinformations correspondant une personne diffrente du groupe. Dfinissez le titre de chaque onglet pour afficher le nom dune seule personne. Vous pouvez ensuite crire un code qui, quand vous cliquez sur longlet, met jour les contrles pour afficher les informations concernant la personne dont le nom figure sur longlet. La proprit par dfaut dun contrle Onglet est la proprit SelectedItem. Lvnement par dfaut dun contrle Onglet est lvnement Change.

    3.2.11.- MultiPage (MultiPage)

    Le contrle MultiPage est un conteneur dune collection dobjets Pages dans laquelle chaque page contient un ou plusieurs objets Page. Un contrle MultiPage est utile lorsque vous travaillez avec un gros volume dinformations qui peuvent tre tries en plusieurs catgories. Vous pouvez notamment utiliser un contrle MultiPage pour afficher les informations contenues dans une candidature et, par exemple, rserver une page aux renseignements personnels tels que le nom et ladresse, une autre la liste des prcdents employeurs et une troisime la liste des rfrences. Le contrle MultiPage vous permet de combiner visuellement des informations connexes tout en conservant un enregistrement complet facilement accessible. Les nouvelles pages sont ajoutes droite de la page slectionne. La proprit par dfaut dun contrle MultiPage est la proprit Value qui renvoie lindex de la Page couramment active dans la collection de Pages du contrle MultiPage. Lvnement par dfaut dun contrle MultiPage est lvnement Change.

    3.2.12.- Barre de dfilement (ScrollBar )

    Retourne ou dfinit la valeur dun autre contrle en fonction de la position du curseur de dfilement. Le contrle Barre de dfilement est un contrle autonome que vous pouvez placer sur une feuille. Son aspect visuel est identique celui de la barre de dfilement prsente dans certains objets tels quun contrle Zone de liste ou dans la partie droulante dun contrle Zone de liste modifiable. Toutefois, linverse des barres de dfilement cites dans ces exemples, le contrle Barre de dfilement autonome ne fait pas partie intgrante dun autre contrle. Pour utiliser le contrle Barre de dfilement afin de dfinir ou de lire la valeur dun autre contrle, vous devez crire un code pour les vnements et les mthodes du contrle Barre de dfilement. Par exemple, pour utiliser le contrle Barre de dfilement en vue de mettre jour la valeur dun contrle Zone de texte, vous pouvez crire un code lisant la proprit Value du contrle Barre de dfilement, puis dfinir la proprit Value du contrle Zone de texte. La proprit par dfaut dun contrle Barre de dfilement est la proprit Value. Lvnement par dfaut dun contrle Barre de dfilement est lvnement Change. Pour crer un contrle Barre de dfilement vertical ou horizontal, faites glisser les poignes de redimensionnement du contrle Barre de dfilement horizontalement ou verticalement sur la feuille.

    3.2.13.- Toupie (SpinButton )

    Incrmente et dcrmente des nombres. Cliquer sur un contrle Toupie ne modifie que la valeur de celui-ci. Vous pouvez crire un code qui utilise le contrle Toupie pour mettre jour la valeur affiche dun autre contrle. Par exemple, vous pouvez utiliser un contrle Toupie pour changer le mois, le jour ou lanne dans une date. Vous pouvez aussi utiliser un contrle Toupie pour faire dfiler une srie de valeurs ou une liste dlments, ou bien pour modifier la valeur affiche dans une zone de texte.

  • IGN / ENSG / CPRI Visual Basic Application pour Excel page 18/33

    Pour afficher une valeur mise jour laide dun contrle Toupie, vous devez affecter la valeur du contrle Toupie la partie affiche dun contrle telle que la proprit Caption dun contrle Label ou la proprit Text dun contrle Zone de texte. Pour crer un contrle Toupie horizontal ou vertical, faites glisser les poignes de redimensionnement du contrle Toupie horizontalement ou verticalement sur la feuille. La proprit par dfaut dun contrle Toupie est la proprit Value. Lvnement par dfaut dun contrle Toupie est lvnement Change.

    3.2.14.- Zone dImage ( Image )

    Le contrle Image vous permet dafficher une image comme partie des donnes contenues dans une feuille. Par exemple, vous pouvez utiliser un contrle Image pour afficher la photographie des employs dans une feuille du personnel. Le contrle Image vous permet de couper, de redimensionner ou deffectuer un zoom avant ou arrire sur limage, mais ne vous permet pas den modifier le contenu. Par exemple, vous ne pouvez utiliser le contrle Image pour modifier les couleurs dune image, pour la rendre transparente ou pour affiner la vue de limage. Pour effectuer ces oprations, il vous faut un logiciel de traitement dimage. Le contrle Image supporte les formats de fichiers suivants : *.bmp, *.cur, *.gif, *.ico, *.jpg, *.wmf

    3.3.- Les contrles supplmentaires Pour afficher ou supprimer des contrles de la bote outils : 1. Cliquez avec le bouton droit dans la bote outils. 2. Slectionnez la commande Contrles supplmentaires .

    1 2

    3.4.- Modification dun contrle 3.4.1.- Modification du nom

    1. slectionnez le contrle ; 2. dans la partie gauche de la fentre, face Name ,modifiez le nom.

  • IGN / ENSG / CPRI Visual Basic Application pour Excel page 19/33

    1

    2

    3.4.2.- Modification dune proprit

    1. slectionnez le contrle ; 2. cliquez dans la partie gauche de la fentre, face la proprit modifiez, slectionnez la

    nouvelle valeur dans le menu droulant.

    1

    2

    Remarque : Pour connatre la signification dune proprit, cliquez sur le libell de la proprit et appuyez sur la touche F1.

    3.5.- La superposition des contrles On utilise la notion de hirarchie pour superposer les contrles.

    Pour avancer ou pour reculer un contrle dans la hirarchie:

    slectionnez le contrle repositionner ; dans le menu Format, slectionnez Ordre ; dans le menu en cascade, slectionnez Amener au premier plan ou Envoyer larrire-

    plan .

    Pour dplacer un contrle dune position dans la hirarchie :

    slectionnez le contrle repositionner. dans le menu Format, slectionnez Ordre . dans le menu en cascade, slectionnez Amener vers lavant ou Envoyer vers larrire .

  • IGN / ENSG / CPRI Visual Basic Application pour Excel page 20/33

    4.- Les menus

    4.1.- Le menu barre Pour crer une nouvelle barre de menu dans votre application, il faut utiliser loutil personnalis dExcel.

    Une fois le menu cr (Cf. documentation sur Excel), il est possible dans votre code Visual Basic de le rendre visible ou non en utilisant la fonction CommandBars . Cette fonction peut galement tre utilise pour les menus prdfinis du logiciel Excel ( standard , mise en forme ). Ci-dessous un exemple de code lanc au dmarrage dune application (dans la mthode auto_open Cf. chapitre 7.1). Ce code permet de rendre invisible les menus standard et mise en forme et de rendre visible un menu cr par le programmeur appel Saisie . Sub auto_open ()

    Application.CommandBars("Standard").Visible = FalseApplication.CommandBars("Formatting").Visible = FalseApplication.CommandBars("Saisie").Visible = True

    End Sub

    4.2.- Le menu contextuel Cest le menu qui sactive lorsque vous cliquez sur le bouton droit de la souris. Il est possible de supprimer certaines lignes de ce menus et den crer de nouvelles. En slectionnant une ligne de ce menu vous pouvez dclencher un module (et donc un traitement). Ci-dessous le code permettant dactiver le menu contextuel sur le fond dune feuille Excel en cliquant sur le bouton droit de la souris. Dans ce cas, les lignes 4 et 5 du menu existant sont remplaces par deux lignes permettant dactiver les modules Moyenne par lve et Moyenne par Matire . Lobjet menu contextuel est un objet de la classe CommandBars .

  • IGN / ENSG / CPRI Visual Basic Application pour Excel page 21/33

    Private cbBar As CommandBar CommandBar sans s !

    Sub Active_Menu_contextuel()

    Set cbBar = CommandBars("Cell") 'Cell est le menu contextuel des cellules

    cbBar.Controls(4).Delete 'Dtruit le 4eme choix (en partant d'en'haut) du menu contextuel existant

    cbBar.Controls(5).Delete

    cbBar.Controls(4).FaceId = 0 'Efface le bouton du menucbBar.Controls(4).Caption = "Moyenne par lve" 'libell dans le menucbBar.Controls(4).OnAction = "MoyParEleve" 'Active la macro MoyParEleve

    cbBar.Controls(5).FaceId = 0 'Efface le bouton du menucbBar.Controls(5).Caption = "Moyenne par matire" 'libell dans le menucbBar.Controls(5).OnAction = "MoyParMat" 'Active la macro MoyParMat

    End Sub

    Attention, il est indispensable de dsactiver le menu contextuel pour quil ne soit plus visible l cran. Sub Desactive_Menu_contextuel()

    CommandBars("cell").ResetEnd Sub

    Si vous voulez ajouter plus de lignes quil y en avait dans le menu dorigine (9 dans lexemple ci-dessous), il faut crire le code suivant avant dajouter de nouvelles lignes dans le menu. Private cbctl As CommandBarControl a ajouter aux declarations

    lIndex = 9 on ajoute une 9eme ligneSet cbctl = cbBar.Controls.Add(Type:=msoControlButton, Before:=lIndex)

    Insertion de Moyenne par lve en ligne4 et de Moyenne par Matire en ligne 5.

  • IGN / ENSG / CPRI Visual Basic Application pour Excel page 22/33

    5.- Rponses aux vnements Votre application doit pouvoir ragir aux divers vnements, par exemple excuter une procdure lorsquune feuille est active, ou lorsque la valeur dune cellule est modifie. Dans la fentre de code, pour chaque objet, ou chaque contrle vous avez une liste de procdures vnementielles dans lesquelles vous pouvez ajouter du code qui sexcutera lors de la dtection de lvnement correspondant.

    Exemple 1 : Supposons que vous dsirez excuter une tche lorsque la fentre dun classeur est redimensionne : 1. dans la fentre du projet, vous slectionnez lobjet Classeur ; 2. dans la fentre de code du classeur, vous slectionnez Workbook ; 3. dans la liste des procdures vnementielles vous slectionnez WindowResize ; 4. il ne vous reste plus qu crire le code lintrieur de la procdure cre par Visual Basic.

    1

    2

    2

    3

    4

    Exemple 2 : Supposons que vous dsirez excuter une tche lorsque lon cliquera sur un contrle. 1. Dans la fentre du projet, slectionnez la feuille ou la bote de dialogue contenant le

    contrle ; 2. Cliquez sur licne pour afficher la fentre de code ; 3. Slectionnez le contrle ; 4. Slectionnez lvnement ; 5. Il ne vous reste plus qu crire le code lintrieur de la procdure cre par Visual Basic.

    1

    23

    45

  • IGN / ENSG / CPRI Visual Basic Application pour Excel page 23/33

    6.- Laide en ligne sur les procdures vnementielles Pour revenir aux exemples de la page prcdente, supposons que nous voulions avoir de laide sur la procdure vnementielle WindowResize . 1. affichez lexplorateur dobjets ; 2. slectionnez la bibliothque Excel ; 3. slectionnez Workbook ;

    2

    3

    4

    4. slectionnez WindowResize ; 5. appuyer sur la touche F1 pour obtenir laide ci-dessous.

    WindowResize, vnement Voir aussi Exemple S'applique Cet vnement survient ds que la fentre d'un classeur est redimensionne.

    Syntaxe Private Sub object_WindowResize (ByVal Wb As Excel.Workbook, ByVal Wn As Excel.Window) object Application ou Workbook. Pour plus d'informations sur l'utilisation d'vnements avec l'objet Application, consultez Utilisation d'vnements avec l'objet Application.

    Wb Utilis uniquement avec l'objet Application. Classeur affich dans la fentre redimensionne. Wn Fentre redimensionne.

    On ferais de mme pour lexemple 2 de la page prcdente : 1. affichez lexplorateur dobjet ; 2. slectionnez la bibliothque MSForms ; 3. slectionnez CommandButton .

    2

    3

    4

    4. slectionnez Click ; 5. appuyer sur la touche F1 pour obtenir laide en ligne.

  • IGN / ENSG / CPRI Visual Basic Application pour Excel page 24/33

    7.- Actions possibles sur un document Excel

    7.1.- Ouverture et fermeture dun document Excel Si vous voulez effectuer un traitement au moment de louverture dun document Excel, vous devez crire votre code dans un module particulier ayant pour nom : auto_open(). Il est intressant deffectuer la phase dinitialisation dans ce module. Sub auto_open ()

    Call Initialisation appel dun module InitialisationEnd Sub

    De mme, si vous voulez effectuer un traitement au moment de la fermeture dun document Excel, vous devez crire votre code dans un module particulier ayant pour nom : auto_close(). Sub auto_close ()

    ...

    End Sub

    7.2.- Actions sur lobjet feuille Excel Masquer une feuille de calcul

    If Sheets("NomOnglet").Visible Then Sheets("NonOnglet").Visible = False

    Dmasquer une feuille de calcul

    If Not Sheets("NomOnglet").Visible Then Sheets("NonOnglet").Visible = True

    Oter la protection dune feuille de calcul

    Sheets("NomOnglet").SelectActiveSheet.Unprotect

    Protger une feuille de calcul

    Sheets("NomOnglet").SelectActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True

    Lancer l'impression dune feuille

    Sheets("NomOnglet").SelectActiveWindow.SelectedSheets.PrintOut Copies:=2, Collate:=True

  • IGN / ENSG / CPRI Visual Basic Application pour Excel page 25/33

    7.3.- Actions sur lobjet cellule Excel Affecter la valeur dune cellule une variable.

    MaVariable = Sheets("NomOnglet").Cells (N de ligne, N de colonne).Value

    Affecter la valeur dune variable une cellule.

    Sheets("NomOnglet").Cells(N de ligne, N de colonne).Value = MaVariable

    Obtenir ladresse de la cellule active

    'Renvoi sous la forme R3C4Dim RefCel As StringRfCel = ActiveCell.Address(ReferenceStyle:=xlR1C1)

    'Pour obtenir la ligne et la colonneDim Ligne As Integer, Colonne As IntegerLigne = CInt(Mid$(RefCel, 2, InStr(RefCel, "C") - 2))Colonne = CInt(Mid$(RefCel, InStr(RefCel, "C") + 1))Obtenir ladresse de la plage de cellules slectionnesReferenceCelluleActive = Selection.Address(ReferenceStyle:=xlR1C1)'Renvoi R3C4:R10C5

    Slectionner une cellule

    Sheets("NomOnglet").Cells(2,2).Select

    Activer une cellule

    Sheets("NomOnglet").Cells(2,2).Activate

    Dplacer la cellule active dune colonne

    ActiveCell.Offset(0,1).Activate

    Dplacer la cellule active dune ligne

    ActiveCell.Offset(1,0).Activate

    Slectionner une plage de cellules

    With Sheets("NomOnglet ")Range(.Cells(1,1), .Cells(5,5)).Select

    End With

    Slectionner plusieurs plages de cellules

    Sub SlectionMultiple()Dim r1, r2, plusieursPlages As RangeSet r1 = Sheets("NomOnglet ").Range(Cells(1,1), Cells(5,2))Set r2 = Sheets("NomOnglet ").Range(Cells(1,6), Cells(5,8))Set plusieursPlages = Union(r1,r2)plusieursPlages.Select

    End Sub

    Affecter une formule une cellule

    Cells(7, 1).SelectActiveCell.FormulaR1C1 = "=SUM(R[-6]C:R[-1]C)"

  • IGN / ENSG / CPRI Visual Basic Application pour Excel page 26/33

    7.4.- Autres actions sur des objets Excel Supprimer la mise jour de lcran

    Application.ScreenUpdating = False

    Autoriser la mise jour de lcran

    Application.ScreenUpdating = True

    Demander une information lutilisateur

    MaVariable = InputBox("Entrez le n de la commande supprimer", "")

    Envoyer un message lutilisateur

    Dim message as string , rep as integerChr(13) Pour aller la lignemessage = "ATTENTION : Vous avez oubli d'indiquer le code comptable" +Chr$(13) + Chr$(13) + "Opration annule!.."rep = MsgBox(message, 48, "")

    Supprimer une ligne

    Rows(N de la ligne).SelectSelection.Delete Shift:=xlUp

    Insrer une ligne

    Rows("N de la ligne ").SelectSelection.Insert Shift:=xlDown

    Charger en mmoire une boite de dialogue UserForm

    Load UserForm1 Charge un objet sans lafficher

    Dcharger une boite de dialogue UserForm

    Unload UserForm1

    Affichage dune bote de dialogue UserForm

    UserForm1.Show Si lobjet spcifi nest pas charg lors de lappel dela mthode Show, Visual Basic le charge automatiquement.

    Remarque : Un objet UserForm est toujours modal, il en rsulte que lutilisateur doit toujours rpondre avant dutiliser une autre partie de lapplication. Aucun autre code ne sexcutera tant que lobjet UserForm ne sera pas masqu ou dcharg. Bien que les autres feuilles de lapplication soient dsactives pendant laffichage dun objet UserForm, les autres applications ne le sont pas.

    Masquer dune bote de dialogue UserForm

    UserForm1.Hide Masque un objet sans le dcharger.

    Rcuprer linformation contenue dans une zone de texte

    MonTexte = NomUserForm.NomZoneDeTexte.Text

  • IGN / ENSG / CPRI Visual Basic Application pour Excel page 27/33

    Test dune case cocher

    If NomUserForm.NomCasecocher ThenLa case est coche

    ElseLa case nest pas coche

    End If

    Test dune case doption

    If NomUserForm.NomCaseOptionThenLoption est coche

    ElseLoption nest pas coche

    End If

    Rcuprer linformation slectionne dans une zone de liste

    NomSlection = NomUserForm.NomListe.value

    7.5.- Quelques exemples dactions plus complexes Ajout et suppression dans une listBox Lexemple suivant ajoute et supprime le contenu dun contrle ListBox . un contrle ListBox nomm ListBox1, et 2 contrles CommandButton nomms CommandButton1 et CommandButton2.

    Dim EntryCount As SinglePrivate Sub CommandButton1_Click()

    EntryCount = EntryCount + 1UserForm1.ListBox1.AddItem (EntryCount & " - Slection")

    End Sub

    Private Sub CommandButton2_Click()With UserForm1

    ListBox1.SetFocus'Vrifiez que le contrle ListBox contient des lments de listeIf ListBox1.ListCount >= 1 Then 'Si aucune slection, choisissez le

    'dernier lment de la liste.If ListBox1.ListIndex = -1 Then

    ListBox1.ListIndex = ListBox1.ListCount-1End IfListBox1.RemoveItem (ListBox1.ListIndex)

    End IfEnd With

    End Sub

    Private Sub UserForm_Initialize()EntryCount = 0CommandButton1.Caption = "Ajoutez llment"CommandButton2.Caption = "Supprimez llment"

    End Sub

    Transfert de donnes vers le Presse-papiers Lexemple suivant illustre les mouvements de donnes dun contrle TextBox vers le Presse-papiers, du Presse-papiers vers un objet DataObject et dun objet DataObject vers un autre contrle TextBox. La mthode GetFromClipboard transfre les donnes du Presse-papiers vers un objet DataObject. Les mthodes Copy et GetText sont aussi utilises. Deux contrles TextBox (TextBox1, TextBox2) et un contrle CommandButton (CommandButton1) sont crs.

  • IGN / ENSG / CPRI Visual Basic Application pour Excel page 28/33

    Dim MyData As DataObjectPrivate Sub CommandButton1_Click() 'Slectionnez un texte avant de le

    'copier dans le Presse-papiersTextBox1.SelStart = 0TextBox1.SelLength = TextBox1.TextLengthTextBox1.CopyMyData.GetFromClipboardTextBox2.Text = MyData.GetText(1)

    End Sub

    Private Sub UserForm_Initialize()Set MyData = New DataObjectTextBox1.Text = "Placez ces donnes dans " & _

    "le Presse-papiers, dans un objet " & _"DataObject, puis dans le contrle " & "TextBox2 !"

    End Sub

    Lexemple suivant illustre les mouvements de donnes dun contrle TextBox vers un objet DataObject, dun objet DataObject vers le Presse-papiers et du Presse-papiers vers un autre contrle TextBox. La mthode PutInClipboard transfre les donnes dun objet DataObject vers le Presse-papiers. Les mthodes SetText et Paste sont aussi utilises. Deux contrles TextBox (TextBox1 et TextBox2) et un contrle CommandButton (CommandButton1) sont crs.

    Dim MyData As DataObjectPrivate Sub CommandButton1_Click()

    Set MyData = New DataObjectMyData.SetText TextBox1.TextMyData.PutInClipboardTextBox2.Paste

    End Sub

    Private Sub UserForm_Initialize()TextBox1.Text = "Placez ces donnes dans un " & _

    "objet DataObject, dans le " & _" Presse-papiers, puis dans " & _"le contrle TextBox2 !"

    End Sub

  • IGN / ENSG / CPRI Visual Basic Application pour Excel page 29/33

    Annexes

    A1.- Constantes, Boutons et icnes des boites de messages Un message dans une bote de dialogue attend que l'utilisateur clique sur un bouton puis renvoie une valeur de type Integer qui indique le bouton choisi par l'utilisateur. MsgBox(prompt[, buttons] [, title] [, helpfile, context])

    Facultatif : expression numrique qui reprsente la somme des valeurs indiquant le nombre et le type de boutons afficher, le style d'icne utiliser, l'identit du bouton par dfaut, ainsi que la modalit du message. Si l'argument buttons est omis, sa valeur par dfaut est 0. L'argument buttons peut prendre les valeurs suivantes : Constante Valeur Description vbOKOnly 0 Affiche le bouton OK uniquement. vbOKCancel 1 Affiche les boutons OK et Annuler. vbAbortRetryIgnore

    2 Affiche le bouton Abandonner, Ressayer et Ignorer.

    vbYesNoCancel 3 Affiche les boutons Oui, Non et Annuler. vbYesNo 4 Affiche les boutons Oui et Non. vbRetryCancel 5 Affiche les boutons Ressayer et Annuler.

    vbCritical

    16 Affiche l'icne Message critique.

    vbQuestion

    32 Affiche l'icne Requte d'avertissement.

    vbExclamation

    48 Affiche l'icne Message d'avertissement.

    vbInformation

    64 Affiche l'icne Message d'information.

    vbDefaultButton1

    0 Le premier bouton est le bouton par dfaut.

    vbDefaultButton2

    256 Le deuxime bouton est le bouton par dfaut.

    vbDefaultButton3

    512 Le troisime bouton est le bouton par dfaut.

    vbDefaultButton4

    768 Le quatrime bouton est le bouton par dfaut.

    vbApplicationModal

    0 Bote de dialogue modale. L'utilisateur doit rpondre au message affich dans la zone de message avant de pouvoir continuer de travailler dans l'application en cours.

    vbSystemModal 4096 Modal systme. Toutes les applications sont interrompues jusqu' ce que l'utilisateur rponde au message affich dans la zone de message.

    Le premier groupe de valeurs (0 5) dcrit le nombre et le type de boutons affichs dans la bote de dialogue. Le deuxime groupe (16, 32, 48 et 64) dcrit le style d'icne. Le troisime groupe

  • IGN / ENSG / CPRI Visual Basic Application pour Excel page 30/33

    (0, 256 et 512) dfinit le bouton par dfaut. Enfin, le quatrime groupe (0 et 4 096) dtermine la modalit de la zone de message. Au moment d'additionner ces nombres pour obtenir la valeur finale de l'argument buttons, ne slectionnez qu'un seul nombre dans chaque groupe. Note Ces constantes sont indiques par Visual Basic pour Applications. Vous pouvez par consquent les utiliser n'importe o dans votre code la place des valeurs relles correspondantes. Valeurs renvoyes Constante Valeur Bouton vbOK 1 OK vbCancel 2 Annuler vbAbort 3 Abandonner vbRetry 4 Ressayer vbIgnore 5 Ignorer vbYes 6 Oui vbNo 7 Non

  • IGN / ENSG / CPRI Visual Basic Application pour Excel page 31/33

    A2.- Constantes de code de touches Les constantes suivantes peuvent remplacer les valeurs relles partout dans votre code : Constante Valeur Description vbKeyLButton 0x1 Bouton gauche de la souris vbKeyRButton 0x2 Bouton droit de la souris vbKeyCancel 0x3 Touche ANNULER vbKeyMButton 0x4 Bouton secondaire de la

    souris vbKeyBack 0x8 Touche RET.ARR vbKeyTab 0x9 Touche TAB vbKeyClear 0xC Touche EFFACER vbKeyReturn 0xD Touche ENTRE vbKeyShift 0x10 Touche MAJ vbKeyControl 0x11 Touche CTRL vbKeyMenu 0x12 Touche MENU vbKeyPause 0x13 Touche PAUSE vbKeyCapital 0x14 Touche VERR.MAJ vbKeyEscape 0x1B Touche CHAP vbKeySpace 0x20 Touche ESPACE vbKeyPageUp 0x21 Touche PG.PRC vbKeyPageDown 0x22 Touche PG.SUIV vbKeyEnd 0x23 Touche FIN vbKeyHome 0x24 Touche ORIGINE vbKeyLeft 0x25 Touche FLCHE GAUCHE vbKeyUp 0x26 Touche FLCHE HAUT vbKeyRight 0x27 Touche FLCHE DROITE vbKeyDown 0x28 Touche FLCHE BAS vbKeySelect 0x29 Touche SLECTION vbKeyPrint 0x2A Touche IMPR.CRAN vbKeyExecute 0x2B Touche EXCUTER vbKeySnapshot 0x2C Touche SNAPSHOT vbKeyInsert 0x2D Touche INSER vbKeyDelete 0x2E Touche SUPPR vbKeyHelp 0x2F Touche AIDE vbKeyNumlock 0x90 Touche VERR.NUM Les touches A Z sont les mmes que leurs quivalents ASCII : Constante Valeur ascii Description vbKeyA 65 Touche A vbKeyB 66 Touche B vbKeyC 67 Touche C vbKeyD 68 Touche D vbKeyE 69 Touche E vbKeyF 70 Touche F vbKeyG 71 Touche G vbKeyH 72 Touche H vbKeyI 73 Touche I

  • IGN / ENSG / CPRI Visual Basic Application pour Excel page 32/33

    vbKeyJ 74 Touche J vbKeyK 75 Touche K vbKeyL 76 Touche L vbKeyM 77 Touche M vbKeyN 78 Touche N vbKeyO 79 Touche O vbKeyP 80 Touche P vbKeyQ 81 Touche Q vbKeyR 82 Touche R vbKeyS 83 Touche S vbKeyT 84 Touche T vbKeyU 85 Touche U vbKeyV 86 Touche V vbKeyW 87 Touche W vbKeyX 88 Touche X vbKeyY 89 Touche Y vbKeyZ 90 Touche Z Les touches 0 9 sont les mmes que leurs quivalents ASCII : Constante Valeur Description vbKey0 48 Touche 0 vbKey1 49 Touche 1 vbKey2 50 Touche 2 vbKey3 51 Touche 3 vbKey4 52 Touche 4 vbKey5 53 Touche 5 vbKey6 54 Touche 6 vbKey7 55 Touche 7 vbKey8 56 Touche 8 vbKey9 57 Touche 9 Les constantes suivantes reprsentent les touches du pav numrique : Constante Valeur Description vbKeyNumpad0 0x60 Touche 0 vbKeyNumpad1 0x61 Touche 1 vbKeyNumpad2 0x62 Touche 2 vbKeyNumpad3 0x63 Touche 3 vbKeyNumpad4 0x64 Touche 4 vbKeyNumpad5 0x65 Touche 5 vbKeyNumpad6 0x66 Touche 6 vbKeyNumpad7 0x67 Touche 7 vbKeyNumpad8 0x68 Touche 8 vbKeyNumpad9 0x69 Touche 9 vbKeyMultiply 0x6A Touche MULTIPLICATION

    (*) vbKeyAdd 0x6B Touche PLUS (+) vbKeySeparator 0x6C Touche ENTRE vbKeySubtract 0x6D Touche MOINS () vbKeyDecimal 0x6E Touche POINT DCIMAL (.)

  • IGN / ENSG / CPRI Visual Basic Application pour Excel page 33/33

    vbKeyDivide 0x6F Touche DIVISION (/) Les constantes suivantes reprsentent les touches de fonction : Constante Valeur Description vbKeyF1 0x70 Touche F1 vbKeyF2 0x71 Touche F2 vbKeyF3 0x72 Touche F3 vbKeyF4 0x73 Touche F4 vbKeyF5 0x74 Touche F5 vbKeyF6 0x75 Touche F6 vbKeyF7 0x76 Touche F7 vbKeyF8 0x77 Touche F8 vbKeyF9 0x78 Touche F9 vbKeyF10 0x79 Touche F10 vbKeyF11 0x7A Touche F11 vbKeyF12 0x7B Touche F12 vbKeyF13 0x7C Touche F13 vbKeyF14 0x7D Touche F14 vbKeyF15 0x7E Touche F15 vbKeyF16 0x7F Touche F16

    11.- Prise en main de lenvironnement1.1.- Dmarrage de Visual basic dans Excel1.2.- LExplorateur de projet1.3.- LExplorateur d'objets1.4.- La Fentre Code1.5.- La Fentre Excution1.6.- La Fentre Espions

    2.- Cration de formulaires2.1.- Case doption2.2- Case cocher2.3.- Zone de liste2.4.- Bouton de commande2.5.- Identificateur des contrles

    3.- Les boites de dialogues3.1.- Lobjet UserForm.3.1.1.- Cration dune UserForm3.1.2.- Modification du nom dune UserForm.3.1.3.- Modification des proprits dune UserForm.

    3.2.- La boite outils3.2.1.- Affichage ou masquage de la bote outils3.2.2.- Les contrles de la bote outils

    3.3.- Les contrles supplmentaires3.4.- Modification dun contrle3.4.1.- Modification du nom3.4.2.- Modification dune proprit

    3.5.- La superposition des contrles

    4.- Les menus4.1.- Le menu barre 4.2.- Le menu contextuel

    5.- Rponses aux vnements6.- Laide en ligne sur les procdures vnementielles7.- Actions possibles sur un document Excel7.1.- Ouverture et fermeture dun document Excel7.2.- Actions sur lobjet feuille Excel 7.3.- Actions sur lobjet cellule Excel 7.4.- Autres actions sur des objets Excel7.5.- Quelques exemples dactions plus complexes

    AnnexesA1.- Constantes, Boutons et icnes des boites de messagesA2.- Constantes de code de touches