« Macros-commandes VBA/Les Macros Excel » : différence entre les versions

Contenu supprimé Contenu ajouté
fusion d'historiques
Ligne 1 :
{{Chapitre
| niveau = 14
| idfaculté = informatique
| numéro = 1
| niveau = 14
| précédent = [[../|Sommaire]]
| suivant = [[../ProjetPour VBdémarrer/]]
}}
 
{{Autres projets
== Présentation ==
|w=Microsoft Excel
|b=Raccourcis Excel
}}
 
== Introduction ==
 
La '''Macro-commande''', '''le langage {{abréviation|VBA|Visual Basic for Applications|en}}''', ces termes vous font peur ? Oui ? Et bien… Cette leçon est faite pour vous !!! Nous allons vous porter et vous encourager à vous servir de l’un des outils les plus intéressants développés depuis bien longtemps par Microsoft : la programmation {{abréviation|VBA|Visual Basic for Applications|en}}.
 
{{Définition
| contenu =
Une macro-commande, au sens informatique, est une série d'instructions qui sont exécutées les unes après les autres (toujours dans l'ordre séquentiel correspondant au rang de leur ligne de texte). La macro possède en général de nombreuses propriétés dont
* un nom qui permet sa réutilisation
* un commentaire qui permet sa compréhension
* plusieurs lignes de code informatique qui permettent chacune une action
}}
 
Les lignes de texte contenant des ensembles cohérents d’instructions {{Abréviation|VBA|Visual Basic for Applications|en}} (Visual Basic Application) sont appelées code du programme. Le codage (ou la programmation) désigne le fait de fabriquer ces lignes de texte de 2 manières complètement différentes :
 
* L’utilisateur béotien (en général non informaticien enregistre les lignes de code voulues via un système de magnétophone qui traduit en lignes d'instructions (plus exactement en code VBA) toutes ses interactions avec le logiciel grâce à un outil unique et magique : '''l’enregistreur de macros'''. En effet, la majorité des utilisateurs du tableur EXCEL redoute la complexité relative du langage VBA et tarde à se lancer dans la programmation, pensant devoir apprendre au préalable les fondamentaux prérequis pour le développement de logiciel.
* Le concepteur (en général programmeur confirmé {{Abréviation|VBA|Visual Basic for Applications|en}}) crée et édite directement les lignes de code voulues à l'aide d'un outil de traitement de texte spécialisé
 
{{Remarque|contenu=Cette leçon a été réalisée pour '''expliquer l’utilité de la Macro-commande''' sur tableur de la façon la plus ludique et compréhensible possible. Ainsi, le fil conducteur de ce cours sera d’expliquer graduellement comment utiliser les Macro-commandes de votre tableur favori.}}
 
== Historique ==
 
La Macro-commande pour tableur, exploitant le langage {{abréviation|VBA|Visual Basic for Applications|en}} a été créé en 1995 par ''Microsoft'' sous la version ''Excel 5'', sa finalité : transformer les actions effectuées par l’utilisateur ou le logiciel en instructions informatiques VISUAL BASIC.
 
''Exemple :
* Phase 1 : l'utilisateur démarre un enregistrement de la macro nommée macroQuiSouligne puis sélectionne des cellules, les souligne, arrête l'enregistrement
* Phase 2 : l'utilisateur sélectionne d'autres cellules puis appelle la macro nommée macroQuiSouligne, puis l'exécute, les nouvelles cellules sélectionnées seront alors soulignées
 
== Utilité des macros VBA ==
 
{{Définition
| contenu =
Les macros {{Abréviation|VBA|Visual Basic for Applications|en}} dédiées à Excel (ou la programmation VBA) permettent de compléter des outils bureautiques déjà très performants et puissants (EXCEL, WORD, ACCESS, POWERPOINT, OUTLOOK, PROJECT, VISIO,...). Ci-dessous quelques exemples de ces compléments :
* Enregistrer des actions répétitives (une suite de tâches toujours effectuées automatiquement ou manuellement dans le même ordre)
* Mémoriser ces processus opératoires d'utilisations '''complexes, longues et répétitives'''
* Répéter ce qui a été enregistré précédemment (grâce au rappel du nom dédié à la macro)
* Améliorer ou créer de nouvelles commandes pour l’application hôte
* Améliorer ou créer de nouvelles fonctions inexistantes dans l’application hôte
* Créer des interfaces spécialisées (formulaires d'affichage ou de saisie)
* Personnaliser un logiciel (ruban ou options EXCEL)
* Faire interagir plusieurs documents bureautiques entre eux (par exemple : plusieurs classeurs EXCEL)
* Faire interagir plusieurs applications bureautiques entre elles (par exemple : piloter EXCEL avec POWERPOINT)
** WORD
** POWERPOINT
** OUTLOOK
** ACCESS
** PROJECT
** VISIO
** ...
* Ordonner, organiser les commandes entre elles
}}
 
== Un heureux mariage ==
 
=== Un Langage VISUAL BASIC ===
 
Visual Basic est le langage informatique développé dans les années 1980 par Microsoft pour banaliser la programmation. Les informaticiens
puristes trouvent à VB un défaut majeur, il n'est pas un langage de programmation orienté objet. Cette affirmation est fausse, VBA comme la plupart des langages modernes ou WEB (PHP, RUBY, PHP, …) permet de créer ses propres objets (données, méthodes et instances) et donc de programmer des actions sur tout objet informatique accessible. Il permet aussi de manipuler des variables programmes non objets, ce qui en fait un langage de programmation à la fois procédural et à la fois orienté objet.
L'intérêt majeur de la programmation Objet est qu'il n'est pas utile de connaître la composition et le fonctionnement d'un objet pour l'utiliser, seul son interface utilisateur (en général ses propriétés modifiables via VBA) doit être maîtrisée. Par analogie, lors de l'utilisation d'un téléviseur, il n'est pas nécessaire d'en connaître les composants et leur fonctionnement, seule son interface utilisateur (en général la télécommande) doit pouvoir être maniée.
 
=== Un Logiciel EXCEL ===
 
Excel est le logiciel tableur développé dans les années 1980 par Microsoft pour effectuer tout type de calcul et afficher tout type de graphique. Ce logiciel, à ses débuts, était souvent cité comme le plus mauvais des logiciels de type Tableurs ; après quelques années seulement et un travail d'amélioration gigantesque, il est devenu le logiciel de référence des tableurs. Tant et si bien que l'on peut parler de situation de monopole, vu son taux de couverture de marché avoisinant les 100%. Le logiciel Excel est également l'hôte dont le VBA a besoin pour pouvoir être embarqué.
 
=== Un Langage VB + Un Logiciel Excel = Une Visual Basic Application ===
 
Si vous utilisez le VBA, vous travaillez avec des objets. Le modèle Excel (comme le modèle Word ainsi que tous les autres modèles des logiciels MICROSOFT) possède des collections, des méthodes, des propriétés et réagissent aux événements déclenchés par l'utilisateur.
 
Si vous vous servez directement d’Excel comme application hôte, vous ne devez pas déclarer d'objet Application dans le code VBA, vous ne devrez le faire que si vous utilisez une autre application hôte que Excel.
 
Certaines instructions VBA sont donc spécifiques à Excel, celles qui manipulent des objets EXCEL telles que l’affectation de formule à une cellule, l’ouverture de classeur, …
 
=== Le développeur communique avec Excel via la bibliothèque d'objets ===
 
La bibliothèque d'objet contient tous les objets utilisés par le tableur : classeur, feuille, colonne, cellule … ainsi que toutes les opérations possibles sur ces objets. Par exemple : Application, Worksheets, Workbooks, Selection, Range, …
 
<source lang=vb>
Worksheets(1).Activate
</source>
 
=== Le développeur communique avec Excel via les macros ===
 
Les modules de code contiennent toutes les macros utilisés par le tableur : déclarations, procédures et fonctions
 
<source lang=vb>
SUB enregistrerComme()
DIM fichier as String
fichier = "C:\excel\MonDouble.xls"
ActiveWorkbook.SaveCopyAs fichier
END SUB
</source>
 
== Présentation du langage ==
[[Fichier:ProgrammeVB.JPG|thumb|right|Un exemple de fenêtre de programme réalisé en VB.]]
 
Ligne 25 ⟶ 121 :
== Références ==
<references/>
 
== Annexes ==
 
=== Bibliographie ===
* Greg Harvey et John Walkenbach, 2013, '''Excel 2013 et VBA Pour Les Nuls''', FIRST, Hoboken
* Amelot M., 2011, '''VBA Excel 2010''', ENI, St Herblain
 
=== Liens internes ===
* [[Visual Basic|Leçon VISUAL BASIC]]
* [[Tableur EXCEL|Leçon Tableur EXCEL]]
 
=== Liens externes ===
* [http://vb.developpez.com/faqvba/ FAQ developpez VBA]
* [http://www.commentcamarche.net/contents/1163-introduction-a-visual-basic Une introduction au Visual Basic]
 
 
Ligne 30 ⟶ 140 :
| idfaculté = informatique
| précédent = [[../|Sommaire]]
| suivant = [[../ProjetPour VBdémarrer/]]
}}