# Macros-commandes VBA/Pour démarrer
## Un Onglet masqué en standard par EXCEL

Pour des raisons de sécurité, vous ne pourrez pas vous lancer dans la programmation VBA sans avoir l'onglet Développeur (masqué en standard par EXCEL) à votre disposition ni sans autoriser l’utilisation des macros. En effet, il est possible de travailler sur EXCEL (ou tout autre produit bureautique) sans vouloir exécuter de macro. On désactive aussi les macros quand un fichier bureautique EXCEL est soupçonné de dysfonctionnement ou d’être porteur de virus.
| Étape 1 : Affichage de l'environnement de développement | Personnaliser le ruban via les options EXCEL pour afficher l’onglet développeur (case à cocher) |
| Étape 2 : Autorisation d’utilisation des macros | Personnaliser les options EXCEL pour activer les macros (autre case à cocher) |
| Étape 3 : Bravo ! | L'onglet "Développeur" apparaît dans le ruban, place à la programmation ! |
Affichage de l'onglet développeur : cet affichage supplémentaire d’un onglet sur le 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, l’accès aux modules et codes Visual Basic n’est pas possible.
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 autorisation complémentaire l’exécution des macros et codes Visual Basic est interdite.
dans l'onglet Fichier cliquer sur Options, une fois que la fenêtre option apparue, cliquer sur Personnaliser le ruban puis cocher développeur ; EXCEL 2007 ==> la même action mais démarrée depuis le bouton Office

## Intérêts des macros pour les novices

La macro permet principalement d’automatiser des tâches répétitives. L’une des premières utilités de cette automatisation est de demander au logiciel d’effectuer les instructions que l’utilisateur aura préalablement historisées dans une macro. Ainsi, si vous rappelez votre macro archivée, le logiciel exécutera l’ensemble des instructions préenregistrées, gain de temps et de productivité garanti.
Cet aspect théorique ne vous suffit pas pour parcourir notre leçon ? Pas de problème ? Nous vous avons alors répertorié quelques tâches possibles avec cet outil :
* Faire le lien entre plusieurs outils bureautiques (par exemple appeler une feuille EXCEL lors d’un diaporama POWERPOINT)
* Créer un formulaire de saisie via EXCEL (par exemple réaliser une enquête de satisfaction sur votre nouvel outil de publipostage)
* Poser une question à un utilisateur EXCEL via une boite de dialogue (par exemple, demander quel exercice comptable il veut travailler)
* Simuler des outils de gestion EXCEL (par exemple consolider plusieurs classeurs EXCEL de reporting envoyés par les différentes filiales de l'entreprise)
* Créer les nouvelles fonctions EXCEL dont vous avez besoin (par exemple inventer une fonction standard de mise en page avant impression)

## N'hésitez pas !

Nous vous souhaitons à présent une bonne lecture de la leçon et restons à votre disposition pour tout complément d’information relatif à cette leçon. Mais n'oubliez pas !!!
* De nombreux utilisateurs non informaticiens ont pris un plaisir certain à créer leurs propres programmes, vous serez peut-être l'un d'eux ou l'une d’elles !!!
* Imaginer l’immense potentiel que vous représenterez vis-à-vis de votre employeur actuel ou futur grâce à votre connaissance experte du tableur !!!
* Après avoir sillonné les chapitres de début de leçon et les exercices qui les étendent, vous pourrez aborder les chapitres de fin et les annexes qui vous amèneront de manière à cette expertise du tableur !!!
Dans un premier temps, nous allons voir la structure de base d’un projet Visual Basic.

## Projet

Un projet Visual Basic est l’ensemble des fichiers écrits en VB nécessaires à la compilation d'une application ou d’un formulaire.
Un projet VBA EXCEL peut être composé de différents éléments :
* Un ensemble de propriétés du projet (nom, version, description, icône...)
* Un ensemble de feuilles de tableurs contenant des lignes et des colonnes formant des cellules
* Un ensemble de formulaires, encore appelés userform contenant des contrôles activex
* Un ensemble de modules de code comprenant des lignes écrites en Visual Basic

## Module

Il existe deux types de modules :
* Les modules standards qui sont un regroupement de différentes fonctions, procédures et variables au sein d’un même fichier ayant pour extension .bas
* Les modules de classe qui représentent un type d'objet personnalisé sous la forme d’un fichier .cls
Un module VBA EXCEL peut être composé de différents éléments :
* Un ensemble de propriétés du module(nom ...)
* Un ensemble de constantes et de variables VBA, outils de stockage de valeurs (entier, chaine, date, ...)
* Un ensemble de procédures et de fonctions comprenant
** Un ensemble de constantes et de variables VBA, outils de stockage de valeurs (entier, chaine, date, ...)
** Un ensemble d'instructions VBA, outils de gestion du programme (affectation, débranchement, boucle, ...)

## Formulaire

Un formulaire Visual Basic est une fenêtre du système d'exploitation qui permet l’affichage d'informations à l'écran. Il est défini dans un fichier d'extension .frm et est représenté dans le code par l’objet Form
Un formulaire VBA EXCEL peut être composé de différents éléments :
* Un ensemble de propriétés du formulaire (nom, titre, couleur, visibilité, image de fonds ...)
* Un ensemble de contrôles ActiveX, outils de communication avec l'utilisateur (bouton, case à cocher, boite de saisie, ...)
* Un ensemble de constantes et de variables VBA, outils de stockage de valeurs (entier, chaine, date, ...)
* Un ensemble de procédures et de fonctions comprenant
** Un ensemble de constantes et de variables VBA, outils de stockage de valeurs (entier, chaine, date, ...)
** Un ensemble d'instructions VBA, outils de gestion du programme (affectation, débranchement, boucle, ...)
* Un ensemble de procédures de gestion d’événements VBA, outils de gestion des événements liés à un contrôle ActiveX (click, focus, ouverture, ...)

## Contrôles

Un contrôle, ou composant ActiveX, est un élément indépendant pouvant être utilisé dans un formulaire
Les contrôles peuvent être :
* ceux de base (bouton, zone de texte, image...)
* développés par un tiers et incorporés au projet
* un contrôle utilisateur défini dans le projet