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

Contenu supprimé Contenu ajouté
réorganisation de contenu
réorganisation de contenu
Ligne 6 :
| suivant = [[../Pour démarrer/]]
}}
 
{{Autres projets
|w=Microsoft Excel
Ligne 13 ⟶ 14 :
== Introduction ==
 
LesLa '''Macro-commandescommande''', '''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
Nous allons vous porter et vous encourager à vous servir de l’un des outils les plus intéressants développé depuis bien longtemps par Microsoft : la programmation {{abréviation|VBA|Visual Basic for Applications|en}}.
| 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 essentiellement un nom qui permet sa réutilisation, un commentaire qui permet sa compréhension et des lignes de code informatique qui permettent cette exécution de tâches répétitives.
}}
 
LesCes macros EXCEL (ou WORD ou d'autres logiciels) sont des suiteslignes de lignestexte contenant des ensembles cohérents d’instructions {{Abréviation|VBA|Visual Basic for Applications|en}} (Visual Basic Application). Ces lignes de texte sont appelées code du programme. Le codage (ou la programmation) désigne le fait de fabriquer ces lignes de texte.
L’application {{abréviation|VBA|Visual Basic for Applications|en}} n’est pas encore utilisée par la majorité des utilisateurs du tableur EXCEL. En effet, la complexité relative du langage {{abréviation|VBA|Visual Basic for Applications|en}} freine bon nombre d'entre eux à se lancer dans la programmation VBA, pensant devoir apprendre au préalable les fondamentaux prérequis pour le développement de logiciel (programmation par l'environnement VBE). Il n'en est rien grâce à un outil magique : l’enregistreur de macros.
 
* 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é dans un environnement lui aussi spécialisé
{{Utilisateur:Mamagalubru/Cadre Remarque|remarque="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 son tableur."}}
* L’utilisateur béotien (en général non informaticien ou programmeur débutant {{Abréviation|VBA|Visual Basic for Applications|en}}) enregistre les lignes de code voulues via un système de magnétophone qui traduit en lignes de code BASIC (plus exactement en code {{Abréviation|VBA|Visual Basic for Applications|en}}) toutes ses interactions avec le logiciel grâce à un outil unique et magique : '''l’enregistreur de macros'''. En effet, VBA n’est pas encore utilisé par la majorité des utilisateurs du tableur EXCEL à cause de sa complexité relative du langage qui freine bon nombre d'entre eux à se lancer, pensant devoir apprendre au préalable les fondamentaux prérequis pour le développement de logiciel.
 
{{Utilisateur:Mamagalubru/Cadre Remarque|remarque="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 sonvotre tableur favori."}}
== Définitions ==
 
== Historique ==
Les macros-commandes servent à enregistrer une suite de tâches toujours effectuées dans le même ordre et de façon répétitive. Grâce aux enregistreurs ou éditeurs de macros-commandes (alias macros), il est possible d'enregistrer sous un nom dédié une série de tâches effectuées manuellement par l'utilisateur de façon à pouvoir répéter cette exécution ultérieurement.
Le principe des macros est donc d'aider l’utilisateur en enregistrant le processus opératoire d'utilisations '''complexes, longues et répétitives''' pouvant être automatisées : cette automatisation se fait grâce à la création de macro-commandes.
 
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''., Lessa macro-commandesfinalité transforment: transformer les instructionsactions dictées,effectuées par l’utilisateur ou le logiciel, en actioninstructions informatiques VISUAL BASIC.
 
''Exemple :
''Exemple : Une macro dont les instructions demandent de souligner en Gras la ou les cellules sélectionnées, soulignera cette ou ces cellules.''
* 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, en Gras la ou les cellules sélectionnées
* 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 ==
Une macro-commande est une série d’instructions préalablement exécutée par un utilisateur. L’utilisateur en exécutant sa macro, ordonne au logiciel d’exécuter l’ensemble des instructions qu’il a décrites au logiciel.
 
{{Définition
== Utilité des macros ==
| contenu =
 
Les macros {{Abréviation|VBA|Visual Basic for Applications|en}} dédiées à Excel vont(ou permettrela àprogrammation l'utilisateurVBA) oupermettent 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 auces programmeurcompléments :
* Enregistrer des actions répétitives (une suite de tâches toujours effectuées automatiquement ou manuellement dans le même ordre)
* l'automatisation de tâches répétitives
* Mémoriser ces processus opératoires d'utilisations '''complexes, longues et répétitives'''
* l'interaction entre les classeurs EXCEL
* Répéter ce qui a été enregistré précédemment (grâce au rappel du nom dédié à la macro)
* la création de formulaires spécialisés
* Améliorer ou créer de nouvelles commandes pour l’application hôte
* la personnalisation de l'interface EXCEL
* Améliorer ou créer de nouvelles fonctions inexistantes dans l’application hôte
* la personnalisation des options EXCEL
* Créer des interfaces spécialisées (formulaires d'affichage ou de saisie)
* la communication avec d'autres applications MICROSOFT OFFICE utilisant {{Abréviation|VBA|Visual Basic for Applications|en}}
* Personnaliser un logiciel (ruban ou options EXCEL)
* Faire interagir plusieurs applicationsdocuments bureautiques entre elleseux (par exemple : plusieurs classeurs EXCEL)
* Faire interagir plusieurs applications bureautiques entre elles (par exemple : piloter EXCEL avec POWERPOINT)
** WORD
** POWERPOINT
Ligne 48 ⟶ 57 :
** VISIO
** ...
 
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 essentiellement un nom qui permet sa réutilisation, un commentaire qui permet sa compréhension et des lignes de code informatique qui permettent cette exécution de tâches répétitives.
 
Les macros EXCEL (ou WORD ou d'autres logiciels) sont des suites de lignes contenant des ensembles cohérents d’instructions {{Abréviation|VBA|Visual Basic for Applications|en}} (Visual Basic Application). Ces lignes de texte sont appelées code du programme. Le codage (ou la programmation) désigne le fait de fabriquer ces lignes de texte.
 
* 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é dans un environnement lui aussi spécialisé
* L’utilisateur béotien (en général non informaticien ou programmeur débutant {{Abréviation|VBA|Visual Basic for Applications|en}}) enregistre les lignes de code voulues via un système de magnétophone qui traduit en lignes de code BASIC (plus exactement en code {{Abréviation|VBA|Visual Basic for Applications|en}}) toutes ses interactions avec le logiciel
 
 
== Utilité du langage VBA ==
 
{{Définition
| contenu =
La programmation VBA (Visual Basic Application) permet 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 :
* Automatiser des actions répétitives
* 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
* Faire interagir plusieurs applications bureautiques entre elles
* Ordonner, organiser les commandes entre elles
}}
 
== Langage VISUAL BASIC ==
Ce langage manipule non seulement tous les objets de l'application bureautique avec laquelle il est lié, mais aussi les objets des autres applications.
Si vous utilisez le VBA, vous travaillez avec des objets. Le modèle Excel, le modèle Word ainsi que tous les autres modèles des logiciels MICROSOFT possèdent des collections, des mèthodes, des propriétés et réagissent aux évènements déclenchés par l'utilisateur.
 
Visual Basic est le langage informatique développé dans les années 80 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 connaitre 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 maitrisée. Par analogie, lors de l'utilisation d'une télévision, il n'est pas nécessaire d'en connaitre les composants et leur fonctionnement, seule son interface utilisateur (en général la télécommande) doit pouvoir être maniée.
 
== Langage VBA + Logiciel Excel = Visual Basic ApplicationEXCEL ==
 
Visual BasicExcel est le langagelogiciel informatiquetableur développé dans les années 80 par Microsoft pour banalisereffectuer latout programmationtype de calcul et afficher tout type de graphique. LesL'application informaticiensExcel est également un Objet que vous allez manipuler, et aussi l’application hôte dont le VBA a besoin pour pouvoir être embarqué.
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 procédural et orienté objet.
 
== Langage VB + Logiciel Excel = Visual Basic Application ==
Excel est le logiciel tableur développé dans les années 80 par Microsoft pour effectuer tout type de calcul et afficher tout type de graphique. L'application Excel est également un Objet que vous allez manipuler, et aussi l’application hôte dont le VBA a besoin pour pouvoir être embarqué.
 
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èdentpossède des collections, des mèthodesmé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.
Ligne 87 ⟶ 79 :
 
 
'''Affichage de l'onglet développeur'''
 
 
 
 
Cet affichage de ruban va permettre au concepteur de gérer le code VBA par simple action sur les différentes commandes de l’onglet : code, contrôle, xml, …
 
Sans cet affichage de ruban l’accès aux modules et codes Visual Basic n’est pas possible.
 
Par défaut ce ruban n’est pas visible, en effet il est possible de travailler sur EXCEL (ou tout autre produit bureautique) sans créer de macro, il faut donc activer (cocher) cette possibilité.
 
 
'''Activation des macros'''
 
 
 
Cette activation va permettre à l’utilisateur d’exécuter le code VBA contenu par les macros par simple appel ou action sur les différentes commandes EXCEL (ou tout autre produit bureautique) : code, contrôle, xml, …
 
Sans cette activation de ruban l’accès aux modules et codes Visual Basic n’est pas possible.
 
Par défaut les macros ne sont pas activées, en effet il est possible de travailler sur EXCEL (ou tout autre produit bureautique) sans vouloir exécuter de macro. On désactive par exemple les macros quand un fichier bureautique est soupçonné de dysfonctionnement ou porteur de virus.
 
== VBA communique avec Excel ==