begin process at 2012 02 16 23:01:13
  Trouver un code source :
 
dans
 
Accueil > 

Tutoriels

 > 

VBA

 > [DÉBUTANTS] DÉCOUVRIR L'ENVIRONNEMENT DE VISUAL BASIC SOUS MICROSOFT EXCEL (ET SES FENÊTRES)

[DÉBUTANTS] DÉCOUVRIR L'ENVIRONNEMENT DE VISUAL BASIC SOUS MICROSOFT EXCEL (ET SES FENÊTRES)


 Information sur le tutoriel

Note :
8,8 / 10 - par 5 personnes
8,80 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10


 Description

Ce tuto présente les principaux éléments à connaitre de l'environnement VB sous Microsoft Excel, je ne traite pas le code ici, du moins pas pour le moment, mais la découverte de cet outil.

Tutorial

Sommaire

  1. Présentation de Visual Basic for Application
  • Accéder à l’interface de développement
  • Les différents éléments de l’éditeur de Visual Basic
  • L’Explorateur de Projets
  • La fenêtre des Propriétés
  • L’Explorateur d’Objets
  • L’Aide de Visual Basic pour Applications
  • La fenêtre de code et les objets par défaut d’un nouveau classeur
  • ThisWorkbook
  • Sheet
  • Les objets supplémentaires d’un nouveau classeur

Présentation de Visual Basic for Applications (via Excel)


Visual Basic pour Applications (VBA) est un outil permettant d’automatiser des tâches d’une des applications de Microsoft Office.

Ici on va parler de Microsoft Excel (et donc VBA Excel).

Tout d’abord, avant de commencer, une information sur la différence entre VBA et VB6 : VB6 sert à créer des applications autonomes (*.exe) alors que VBA a besoin d’une application hôte pour fonctionner. Il multiplie les possibilités d’Excel.


Accéder à l’interface de développement de VBA (l’IDE)

Vous avez trois possibilités, une fois Excel ouvert :

* la combinaison des touches Alt + F11

* en allant dans le menu Outils, Macro et Visual Basic Editor

* en faisant un clique-droit sur la barre d’outils, rajouter Visual Basic et en cliquant sur le bon pavé

Voilà, maintenant que l’on sait ouvrir l’éditeur de Visual Basic, nous allons prendre connaissance avec :


Les différents éléments de l’éditeur de Visual Basic :

L’Explorateur de Projets :

Il affiche tous les projets chargés, à savoir EuroTool (macro complémentaire de Microsoft sur les conversions €uro), non modifiable ; ProjetNico (macro complémentaire faite par mes soins) ; et le plus important :

VBAProject-Classeur1, avec les composants d’origine (les 3 feuilles et ThisWorkBook).

Nous y reviendrons plus tard.


La fenêtre des Propriétés :

Pas très parlant pour le moment, mais c’est cette fenêtre qui liste toutes les propriétés d’un objet.


L’Explorateur d’Objets :


Il faut appuyer sur la touche F2

Outil indispensable, il permet de savoir à quelle classe appartient tel ou tel objet, les propriétés / méthodes / évènements d’un objet ou d’une classe.

Pour mieux comprendre les classes objets, Excel en propose plus d’une centaine. Parmi ces objets, vous pouvez trouver les classeurs, les feuilles de calcul et les cellules.
Tous est hiérarchisé, un objet peut en contenir un autre, comme le classeur, qui contient des feuilles, contenant elles mêmes des cellules.

Les symboles :

Classe

Module

Enumérations

Propriété

Propriété par défaut

Evènement

Constante


L’Aide de Visual Basic pour Applications :

Comme d’habitude, F1 convient bien à la situation.

Je tiens à préciser pour les anglophobes que l’aide est en français, complète et très bien expliquée. Bref, tout abus de celle-ci est conseillé (et à utiliser sans modération).


Maintenant le tour du propriétaire étant fait, je vais vous présenter la fenêtre de code, mais dans un nouveau chapitre, en utilisant l’objet ThisWorkBook


La fenêtre de code et les objets par défaut d’un nouveau classeur :


ThisWorkBook :

Bon, vous vous souvenez de notre Explorateur de Projet ?

Double-cliquez sur ThisWorkBook, une fenêtre blanche se crée :

Vous voyez deux zones de listes, une avec le mot (Général), et une avec le mot (Déclarations).

Là où se trouve Général, vous y trouverez la liste des objets attachés à l’objet ThisWorkBook (en l’occurrence, le seul objet disponible est WorkBook, qui représente notre classeur).

Ensuite, Déclarations représente l’entête du Module (donc l’entête de ThisWorkBook). C’est ici que nous allons placer certaines déclarations (sans jeu de mots…) comme les déclarations de variables Public, ou encore les types de données personnalisées (Enumérations aussi) puis les API Windows (ou autres DLLs).

Cette zone de liste propose également les procédures / fonctions que vous créez, ainsi que les évènements attachés à un objet. Nous allons prendre l’exemple de notre classeur.

Pour faire ceci, choisissez donc WorkBook :


L’évènement par défaut apparaît :

Vous vous en doutez, le code placé entre ces deux lignes sera exécuté à chaque fois que le classeur s’ouvre !

Il est possible de choisir d’autres évènements que WorkBook_Open :


Si vous voulez savoir à quoi servent tous ces évènements, je vous invite à appuyer sur votre touche F1 :

En tapant WorkBook dans la zone de recherche de l’aide, il est proposé tout un tas de rubriques, j’ai sélectionné WorkBook (objet), et je suis arrivé sur la page d’aide, avec la liste des évènements (ainsi que des propriétés et méthodes)

Comme vous pouvez le constater, je n’ai pas menti sur l’évènement WorkBook_Open

Autre possibilité d’afficher les membres d’un objet, c’est notre touche F2 (explorateur d’objets) :

En tapant WorkBook dans la zone de recherche en haut de l’explorateur d’objets, j’obtiens le résultat de la recherche. En sélectionnant le bon, les membres s’affichent à leurs tours.

Ce qu’il faut retenir, c’est que les évènements listés avec l’objet ThisWorkBook représentent les évènements au niveau classeur (celui où se trouve le code, donc ici Classeur1.xls)


Sheet :

Allez, on va reprendre notre explorateur d’objets :

Ici il y aura le même nombre de feuilles que dans votre classeur.

Double-cliquez sur Feuil1.

Dans la zone Déclarations, sélectionnez non pas WorkBook mais WorkSheet, représentant donc la feuille sur laquelle vous avez cliqué.

La liste des évènements n’aura donc d’effets que sur ladite feuille, et non les autres.

Je vous passe donc les évènements (maintenant que vous savez faire) au niveau feuille, le but dans ce tutorial étant de découvrir l’environnement de développement.


Les objets supplémentaires d’un nouveau classeur :

Vous pouvez rajouter 3 types d’objets :

  • Module
  • Module de Classe
  • UserForm

Par le menu Insertion :

Le Module sert à stocker des procédures / fonctions en majeure partie de type Public (donc accessible depuis tout le projet) mais aussi en Private.

Le Module de Classe lui, vous permet de créer de nouvelles classes d’objet, avec ses propriétés / méthodes / évènements.

Je vais plutôt m’attarder sur le UserForm, qui est une interface utilisateur. Insérez-en un.

Dans cette interface, vous allez pouvoir y placer des objets (des boutons, des zones de listes, etc..), contenus dans la boite à outils.

(menu Affichage, boite à outils, si elle n’apparaît pas)

A part les 2 du bas, tous les autres contrôles sont ceux par défaut)

Pour placer un objet, il suffit de le sélectionner dans la boite à outils, et de le dessiner sur le UserForm.

Pour rajouter un objet qui n’est pas dans la liste par défaut, faite un clique droit sur la boite à outils, sélectionnez contrôles supplémentaires.

Une fenêtre s’affiche, avec les objets déjà insérés mais aussi plein d’autres objets, il suffit de le cocher pour le voir apparaître dans la boite à outils.

Pour vous donner un exemple, j’ai coché Windows Media Player, et maintenant, il apparaît dans la boite à outils :

Vous pouvez donc le dessiner sur votre UserForm, comme un contrôle standard :

Pour l’utilisation de ce WMP, vous trouverez de nombreux site qui expliquent comment l’utiliser.


Bon, je pense avoir fait le tour des éléments principaux à montrer. Je vais faire en sorte par la suite de fournir des codes en guise d’exemples, pour mieux guider l’utilisation des objets d’un classeur ;)

 Historique

03 avril 2007 22:14:00 :
Ajout sommaire (titres)
03 avril 2007 22:37:19 :
..
04 avril 2007 00:49:22 :
Centrage images
04 avril 2007 10:19:25 :
..
04 avril 2007 10:23:17 :
Mise en forme
04 avril 2007 10:26:18 :
.
09 avril 2007 21:42:29 :
MAJ pour cache
17 mai 2007 04:04:24 :
Corrections des fautes énumérées par Manu (merci) ;) ~~ Mise en place des perspectives pour les images
17 mai 2007 04:19:58 :
..

Commentaires

Commentaire de mortalino le 03/04/2007 05:19:08

Arf, désolé pour les points d'intérogations, au lieu des apostrophes.

D'ailleurs si Nix passe par là, pour info, j'ai importé ce tuto via Word 2007.
Et j'aurai une question à te poser pour la suite, si je fais un lien hypertexte au début (sommaire) pour se rendre par exemple au milieu du tuto (pas encore testé), est-ce que ici ça fonctionnera ?
Merci!

Bon n'hésitez pas à formuler toutes remarques constructives, demandes supplémentaires.
Je vais essayer de rajouter des codes exemples par la suite.

++

Commentaire de Nix le 03/04/2007 12:31:52 administrateur CS

Effectivement on a identifié le pb, on va mettre à jour dès que possible, on te préviendra si tu veux pour mettre reposter (en tant que mise à jour) ton docx que cela corrige le pb.
Au passage, n'hésite pas à utiliser les "Titre 1" et "Titre 2" dans le doc, on les gère et tu verras la mise en page donne une petite touche supplémentaire sympa ;)

Commentaire de mortalino le 03/04/2007 21:38:01

Salut Nix,

merci pour tes infos, je vais tenter une MAJ cette nuit, en rajoutant les titres ;)
J'ai eu Cyril pour ça qui m'a donné une piste.

En tout cas, c'est vraiment agréable de pouvoir importer le tuto depuis un docx, car la mise en page reste belle, et pouvoir afficher des images est très intéressant.

Bonne continuation,
++ ;)

Commentaire de PCPT le 04/04/2007 08:32:07 administrateur CS

cache mis à jour
bonne continuation ;)

Commentaire de mortalino le 04/04/2007 11:02:03

Bon j'ai suivi la mise en forme, cependant il y a un bug d'affichage sous IE7, à savoir plus rien est visible après le premier titre.
Par contre tout est visible sous FF2.

(1 MAJ n'apparait pas encore, réduction du texte --> police 11 à 9)
Attendre un peu pour voir ce que ça donne.

++  ;)

Commentaire de mortalino le 04/04/2007 11:04:59

Bon annulation de mon dernier comm, après sa validation, le tuto s'est mis à jour même sous IE7.
(mais manque premier titre)

++

Commentaire de mortalino le 04/04/2007 11:07:44

Sinon côté esthétique, ça fait super sympa tes barres de titres, avec la mascotte  ;)
(et j'aime bien la patte pour les sous-titres, peut-être la faire plus foncée pour bien la voir) !

Commentaire de econs le 17/04/2007 22:07:55 administrateur CS

C'est plus du tutorial, c'est carrément de l'assistanat :o)
Beau boulot en tous cas, et bien présenté. VBA est un peu le parent pauvre de la famille Visual Basic, c'est bien d'en parler !
Et comme c'est vachement bien foutu, et que sur le fond je n'ai rien à redire, rendons ce tutorial 100% parfait avec ces quelques remarques de forme (oui, je sais, je fais mon chieur de service, mais à cette heure-ci, je ne sais faire que çà)

* Visual Basic pour Applications (VBA) est [un] outil permettant ...
* Nous y reviendron[s] plus tard.
* représentant donc la feuille sur laquelle vous avez cliqu[é]
* (maintenant que vous [s]avez faire)
* s’affiche, avec les objets déjà insér[és] mais aussi plein[] d'autres ...

Maintenant, c'est parfait, et çà vaut largement 10. :o)
Vivement la suite !

Commentaire de mortalino le 17/04/2007 22:16:34

Salut Manu,

merci pour la note ;)

Ok Ok pour les fautes, je les corrigerai rapidement.
Je vais aussi modifier mes images, j'ai vu le tuto de PCPT, ses screens retouchés sont parfaits, à moi de trouver une perspective + sympathique qu'actuellement (et sans recopier PCPT) :p

La suite ? beh oui il y en aura une, mais autre sujet. Après la découverte de l'environnement, il y aura la découverte de la programmation (objets d'Excel, explications et exemples pas à pas).
Par contre ça me prendra certainement du temps pour le mettre en place.

Merci pour tes encouragements,
@ ++  ;)

Commentaire de econs le 24/05/2007 13:30:32 administrateur CS

Je me disais justement en regardant les images : "Tiens, il a adopté la PCPT touch" :o)
Je ne te mets pas la pression pour la suite, prends le temps de faire les choses correctement.

Commentaire de Drikce06 le 24/05/2007 13:44:36

Salut, oui c'est ce que je me suis dis aussi le PCPT touch, mais c'est super sympas comme présentation de tuto, je met 10 pour la présentation. Après le contenu je note pas, je me sans pas concerné.

Commentaire de mortalino le 24/05/2007 13:53:40

Et ouais, dur dur de ne pas le recopier :$

J'ai tenté diverses perspectives, mais j'en ai pas trop fait (ombre, arrondi sur l'arrière, autres options), mais ça pourrait encore être plus sympa.

Problème : c'est long à faire  :)

Merci pour la notes Drikce ;)
++

Commentaire de erirob le 15/06/2007 11:36:05

Bonjour,
Je suis totalement débutant.J'ai créé un userform pas de soucis.Je souhaite qu'il apparaisse sur ma feuille2.Comment faire?
Merci

Commentaire de mortalino le 15/06/2007 15:13:31

Salut,

il faut que quand tu en as besoin, tu le demandes par l'instruction
NomDuUserForm.Show

et pour le désactiver
Unload Me

Si tu as besoin de l'afficher dès que ton classeur s'ouvre, met le dans l'évènement WorkBook_Open, et si tu dois (pendant que ton UserForm est affiché) pouvoir travailler sur les cellules, passe lui la propriété SowModal à False.

@++

Commentaire de lexsty le 07/10/2007 10:56:47

Salut MORTALINO
Ce tutoriel est très sympa
Il permet assez vite de se situer dans VBA et donc d'y faire
des premiers pas.
A plus
  JP

Commentaire de lexsty le 07/10/2007 10:58:58

Ton aide mérite un 10

Commentaire de liloune35 le 06/01/2008 01:13:04

merci j ai tout compris grâce à toi

Commentaire de DOM1300 le 19/01/2008 15:43:01

merci tres interessant je cherche la suite

Commentaire de papiscom le 01/04/2008 02:20:59

Salut;bien présenté,simple et compréhensible.Merci bon courage.

Commentaire de hidozo le 28/05/2008 14:29:40

trés bien ce tuto, pour quelqu'un qui galère, il est tsè intéressant et j'attends la suite avec impatience. S'il y a suite bien sur.

Le plus compliqué n'est plus maintenant de créer un projet avec des userforms, mais bien que les infos se basculent dans Excel, et ça j'ai pas encore trouvé !!!! lol

Commentaire de mortalino le 28/05/2008 14:49:24

Salut,

merci pour ton comm ;)
Si tu veux quelques infos, regarde le site de Us30, il y a pas mal de code et de technique :
http://fordom.free.fr/

Bonne continuation
++

Commentaire de BlueShadow le 18/07/2008 15:57:59

Salut a toute l'equipe
Je me demande si vous pouviez m'envoyer des cours pour débutant mais vraiment pour débuants comme:"comment programmer des bouttons ou des menus "
vous voyez des petits application
Merci Bcp pour voter attention
et@+

Commentaire de ronyron le 27/10/2008 14:27:11

intéressant,
je teste ça ce soir
+

Commentaire de lpopovici le 14/01/2009 09:20:42

Escuse moi pour ma Francaise Cette tutoriel est extraordinnaire!

I have  aquestion for you: What software you use to make 3d Screenshots in this Tutorial!

Merci beaucoup!

Kind respect!
dipl ing Liviu Popovici!

Commentaire de Doggydog le 02/02/2009 10:29:46

Très bon, mais pourquoi des copies d'écrans en perspectives et reliefs ????
pour les droits de reproductions ?
pour faire "joli"?
ou quoi?


Commentaire de Judo1 le 13/09/2009 21:54:16

Concernant la tuto sur l'interface de développement de VBA (l'IDE, j'ai suivi exactement la procédure mais quand je mets le lecteur windows media sur le userform mon interface visual en excell se ferme complètement et on me demande de signaler le message d'erreur.
Que faire?
Merci de m'aider!

Commentaire de c2pier le 11/11/2009 15:34:51

Salut Mortalino,
Ton pseudo, comme ton avatar fichent la trouille, mais il semblerait que sois un gentil garçon vu l'énergie que tu dépenses pour aider les pauvres hères tels que moi, bravo pour ton boulot.
Moi, je suis un vrai "qui comprends pas grand chose mais qui aimerait pourtant" et j'aimerais savoir programmer soit via VB, soit VBA qui à mon avis (du moins j'espère) utilisent la même syntaxe. Et c'est bien cette dite syntaxe que j'aimerais comprendre (pour ne pas dire maitriser)!
Existe-t-il un tuto, un bouquin... qui explique en français les lignes de commande avec des petits exemples progressifs ? J'ai déjà essayé plusieurs fois mais je ne sais pas donner les instructions pour obtenir tel ou tel résultat.
A bientôt,
Pierre

Commentaire de narcisse2009 le 13/11/2009 17:51:42

merci pour ta présentation VBA, la suite va beaucoup m'interresser , c'a d  les codes d'une aapplication.
un tuto serais mieux
merci pour ton tuto
comme note je donne 19/20

Commentaire de archiifk le 14/04/2010 18:58:00

bonjour,
Tuto excellent.
les questions afférentes concerne le partae eventuel de resultats :
1) comment fait on pour exporter puis ré-importer un projet VBA ? (ca fait des fichier frm, vbx ...)
2) peut on ré-utiliser une macro ecrite en vba sous excel sous word ? (evidement pour les procedures ne faisant pas explicitement reference au feuilles ou cellules de feuilles excel )
cdlt

Commentaire de fngoagouni le 24/05/2010 00:23:57

Tuto sympas en effet pour les archi débutant.

J'ai eu à former quelqu'un une fois, et c'est aussi le choix que j'ai fait : présenter d'abord l'environnement de développement.

Ce tuto le fait trés bien, mais pour ceux qui cherchent plus de détails sur le langage VBA à proprement parlé c'est pas ici. Ne négligez pas cependant de comprendre comment est foutu l'éditeur VBA, c'est super important pour commencer à programmer.

Coté critique : Il manque juste une précision pour ceux qui cherchent à commencer le VB :
La différence entre VB et VBA.

pour faire simple ,
VB est le langage "mère"
VBA (Visual Basic Application), c'est du VB, mais spécialisé pour une application MS Office.
Ainsi, selon que vous utilisez l'éditeur VBA de Excel, Word, Outlook ou autre, vous serez toujours en VBA, mais vous ne disposerez pas direcetement des même outils. Vous aurez tout le VB, et des objet spécialement conçus pour gérer le document sur lequel vous travaillez.

Vous pourrez par exemple aisément manipuler des cellules Excel sous Excel, mais ces commandes n'auront pas lieu d'être dans un document Word.

Heureusement, il y a une aide trés riche, à laquelle vous pourrez accéder comme indiqué dans ce tuto.

Si quelqu'un connait un tuto aussi sympa permettant de passer à la vitesse supérieure, c'est ici qu'il faut poster.

Commentaire de yassafa le 16/06/2010 19:54:33

salut
je te remercie pour ce tutoriel , c'est un bon tutoriel pour les débutant en VBA Excel
juste pour ceux qui veulent connaitre et apprendre le code VBA , je vais se contenter par quelque Remarques vites , puisque je suis un étudiant du code VBA et je suis pas un professionnel ,néanmoins j'ai arrivé à créer des petites applications intégrées en Excel , par exemple tu peux créer une interface interactive avec l'Editeur VBA, et après tu vas écrire  un code qui va permettre de faire apparaitre ton interface dés le démarrage de l'application Excel,c'est comme si tu es entrain de manipuler une autre application qu'Excel .
quel est la différence entre VB et VBA?
Bon le VBA est une partie spécifique du langage VB, si tu veux par exemple manipuler l'application Excel via le langage VB6 tu es obligé de déclarer l'application Excel comme un Objet par : Dim Appxcel as Object et après tu dois l'instancier par set Appexcel = New Object
mais avant de faire cela tu dois ajouter la référence de l'application Excel Version X dans la bibliothèque  de VB 6.
par contre si tu veux manipuler Excel sous le VBA Excel tu n'as pas besoin de faire tous ca
il suffit de déclarer l'application Excel comme une application Excel car la forme de l'application Excel est préalablement définis et le VBA Excel connait trés bien la forme de l'application Excel qui est prédéfinis par : Excel.application
et il y d'autre petites différences entre le VBA Excel et le VB  c'est qu'au niveau des objets manipuler par le VBA ne sont pas les même que ceux de VB car en VB on parle d'un objet qui s'appelle Cellule qui est prédéfinis par Excel par la forme  Range ou Cell si tu veux déclarer une variable comme un objet  "cellule" tu vas écrie  Dim Nomvariable as Range.
enfin y a des commandes spécifiques au VBA comme par Exemple :
Range("A1").offset(3).value=5
cela veut dire que la valeur de la cellule qui est situé au 3éme case juste au dessous de la cellule  A1   est  5 .
Bon j'espère  que j'ai pu enlevé un peu de nuance sur la différence entre VB et VBA et que j'ai pas commis des erreurs d'explication
                                                            salut

Commentaire de mortalino le 05/12/2011 20:55:11

@ c2pier : je te conseille les bouquins de Eyrolles
Pour certains : ce tuto a été fait avec Worrd 2007, à l'époque
Pour d'autres, merci tout court.

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,047 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales