Formation VBA Excel 2003 avec exemples
…
Dans ce livret vous apprendrez à créer des macros simples et des boutons de commandes. Si vous savez créer des macros avec l’enregistreur, ce livret sera davantage une révision avec des compléments d’explications sur certaines fonctionnalités.
Pré-requis : Maîtriser Excel 2003 et ses fonctions de base, savoir faire des macros simples avec Excel 2003. Avoir des notions d’anglais.
Objectifs :
Créer des macros simples
Modifier des macros
Créer des macros complexes en VBA Créer des boutons de commandes
Signalétique Attention
Information complémentaire
RECOMMANDATION : PRENEZ LE TEMPS DE BIEN LIRE LES INSTRUCTIONS.
Chapitre 2 Généralités sur les macros
VBA est un langage de programmation pour les applications Office (Word - Excel – Access - PowerPoint – Outlook).
Il permet d'automatiser des tâches répétitives ou encore d'effectuer des opérations événementielles.
Par exemple : rechercher des doublons d'une liste dans une feuille ou supprimer des lignes blanches, effectuer une série de calculs complexes, chargés des données à l'ouverture...
Une macro est une suite d'actions enregistrées qui peuvent être ensuite exécutées automatiquement par Excel. Les macros simples peuvent être conçues avec l'enregistreur de macros. Les macros sont écrites dans un langage de programmation : le Visual Basic pour Application (VBA) qui est le langage de développement commun aux applications Microsoft (Word, Access...)
La programmation en VBA permet :
Il existe deux types de macros : Les procédures Sub et les procédures Function :
Sub Elles s'exécutent en lançant une commande de macro (par un bouton ou le menu) Ex : Sub MettreEnPage()
....
End Sub
Function Elles retournent une seule valeur – comme le résultat d'un calcul. On les utilise de la même manière que les fonctions d'Excel, en tapant
« =NomDeLaFonction(arg) » dans la cellule. Elles apparaissent dans la boîte de dialogue « Insérer un fonction »
Ex : Function RacineCubique(Cellule)
....
End Function
Vous allez utiliser des fonctions et des structures de programme que nous détaillerons dans le livret suivant. Dans ce livret vous faites une première approche des manipulations. Ne cherchez pas maintenant à savoir pourquoi on fait les choses mais attachez-vous à mémoriser comment on fait les choses. Les questions que vous vous poserez au fil des TP trouveront leurs réponses dans les cours suivants.
Chapitre 3 L’enregistreur de macro
3.1 Afficher la barre d’outils Visual Basic
Nous allons apprendre à lancer une macro. Commençons par afficher la barre d'outils de création des macros.
Pour afficher la barre d'outils :
3.2 Description de la barre d’outils
Voici un descriptif des différents boutons de la barre d’outils Visual Basic.
Autre méthode pour créer une nouvelle macro avec le menu : Outils/Macro/Nouvelle macro.
Chapitre 4 Les macros
4.1 Créer une macro
1 Définition d'un raccourci
Vous pouvez désigner une combinaison de touches qui servira à l'exécution de la macro.
Ex C ou Shift+C. La touche Ctrl étant toujours active, il faudra appuyer sur Ctrl+R ou Ctrl+Shift+R pour exécuter la macro.
Attention : si vous choisissez de ne pas utiliser la touche Shift (facultative), sachez que des combinaisons comme Ctrl+C, Ctrl+G ... remplaceront les raccourcis d'Excel (ex :Ctrl+C = Copier).
2 Nom des macros
Le nom de la macro ne peut être composé que de lettres et/ou de chiffres. Le premier caractère doit être une lettre. Choisissez des noms explicites.
3 Affectation des macros
On détermine ici si la macro est affectée au classeur, à un nouveau classeur ou bien si la macro sera affectée à votre classeur Perso.xls qui contient les macros disponibles pour l'ensemble de vos applications Excel. Il est disponible dans le répertoire XLStart (c'est un fichier caché). Une fois créé, les macros seront accessibles dès l'ouverture d'Excel. Pour afficher ce fichier cliquez sur : Fenêtre / Afficher. Lorsque vous choisissez d'affecter les macros au classeur actif vous pourrez aussi les utiliser dans les autres classeurs mais à chaque fois ce classeur source s'ouvrira.
Lorsque vous cliquez sur le bouton OK, toutes vos actions clavier et souris seront enregistrées à la manière d'un magnétophone.
Avant d'enregistrer ou d'écrire une macro, planifiez les étapes et les commandes que la macro doit effectuer. Si vous commettez une erreur pendant l'enregistrement de la macro, ces erreurs sont également enregistrées.
4.2 Arrêter l’enregistrement d’une macro
Pour arrêter l'enregistrement de la macro vous cliquez sur le bouton arrêt de la barre d'outils Arrêt enregistrement.
Si cette barre d'outils n'est pas visible, vous pouvez l'afficher en faisant : Affichage / Barre d'outils / Arrêter l'enregistrement. (visible uniquement quand une macro est en cours d'enregistrement).
4.3 Exécuter une macro
Une fois la macro créée, cliquez sur ou bien Outils/Macro/Macros pour l'exécuter.
Pour arrêter l'exécution de la macro avant la fin, cliquez sur Echap ou Ctrl + Pause. Remarque :
Si vous souhaitez créer une macro en utilisant les références absolues (le fameux $ ), cliquez sur le boutons de références absolues. Il reste actif jusqu'à ce que vous cliquiez à nouveau dessus.
Maintenant que vous avez appris comment lancer l'enregistrement d'une macro, nous allons faire quelques exercices pratiques.
Chapitre 5 Les macros simples sur Excel
5.1 Exo 1 : Formater une feuille
Nous allons créer une macro qui permet d'automatiser le centrage dans les cellules et d'agrandir la taille des cellules. La macro sera créée avec l'enregistreur de macro.
Onglet alignement : Horizontal et vertical = centré. Onglet police : Choisissez la police de votre choix.
Examinons le code informatique.
…
Dans ce cours, vous allez apprendre à utiliser l'interface de l'éditeur de Visual Basic. Vous apprendrez les commandes servant à déboguer une macro, à rechercher de l'aide et découvrir les objets de VBA. Lisez simplement le contenu et essayer de bien vous repérer dans l’interface de l’éditeur de Visual Basic. Ce livret est une première approche, dans les cours suivants, vous aurez amplement l’occasion d’utiliser ce que vous apprendrez dans ce cours.
Pré-requis : Maitriser EXCEL et ses fonctions de base, livret 1 Introduction à VBA. Avoir fait le livret 18 Excel 2003 sur les macros
Objectifs :
Se repérer dans l’éditeur Visual Basic Exécuter une macro pas à pas Utiliser les points d’arrêts
Signalétique Attention
Information complémentaire
RECOMMANDATION : PRENEZ LE TEMPS DE BIEN LIRE LES INSTRUCTIONS.
…
Chapitre 1 INTRODUCTION
Dans ce cours, vous allez apprendre les instructions nécessaires à la programmation Visual Basic. Les méthodes de programmation mentionnées dans ce livret sont celles utilisées dans la programmation de langages plus évolués comme le C++ ou le VB.NET. Bien que le VBA ne soit pas un langage orienté objet, nous nous effacerons de nous en approcher. L'ensemble de ce livret vous servira de soutient pour les applications. Vous ne retiendrez pas tout du premier coup, aussi, n'hésitez pas à y revenir lorsque vous aborderez le livret suivant.
Pré-requis : Maitriser EXCEL et ses fonctions de base, livret 1 Introduction à VBA et Livret 2.
Objectifs :
Maîtriser le langage Visual Basic Utiliser les instructions de contrôles Utiliser les boucles
Appliquer des règles de programmation
Signalétique Attention
Information complémentaire
RECOMMANDATION : PRENEZ LE TEMPS DE BIEN LIRE LES INSTRUCTIONS.
Chapitre 2 Syntaxe de base
2.1 Différentes zones d’un module
Un module est la page qui contient le code de programmation de nos macros. Les modules sont visibles avec l'éditeur de code de Visual Basic. Les différentes zones d'un module devraient se découper ainsi :
Chaque procédure commence par un mot clé : Sub et se termine par End Sub Chaque fonction par : Function et se termine par End Function.
La différence entre une procédure et une fonction est qu'une fonction renvoie un résultat mais pas la procédure.
Ex :
Sub MettreEnRouge ('Éventuellement des paramètres ici')
... Les instructions...
End Sub
Function SommeDe ('Éventuellement des paramètres ici')
... Les instructions...
‘je renvoi la somme trouvée’
End Function
2.2 Les commentaires
Voici deux méthodes pour écrire du texte qui sera considéré comme un commentaire et non comme du code Basic : action ' commentaires (l’apostrophe désigne une zone de commentaire) ou
REM commentaires
Les commentaires vous permettront de clarifier votre code. Notez toutefois que si votre code est bien fait et que les noms de vos variables et procédures sont bien choisis, vos commentaires seront peu nombreux.
2.3 Les identificateurs
Les identificateurs sont des noms permettant de référencer les différents objets utilisés par le programme. Ces objets peuvent être des constantes, des variables ou des fonctions.
Pour suivre la logique Microsoft, chaque mot de l'identificateur commencera par une majuscule.
ex LeVolume CalculerLaCirconference()
Les Procédures étant des actions, il convient d'utiliser des verbes dans leur identificateur. Pour les fonctions, le nom de l'objet renvoyé (en général c'est le résultat d'un calcul) suffit comme identificateur.
Exemple pour une procédure : Sub MettreEnGras(....) Exemple pour une fonction : Function MaTVA(...)
On peut aussi utiliser le caractère '_' (underscore) si on veut séparer les mots constituant un identificateur.
2.4 Les options
Le mot clé Option permet de configurer des options par défaut.
Lorsqu'on choisi d'utiliser des options, celles-ci doivent être déclarée en tout premier dans le module.
2.5 Les mots réservés
Comme dans tout langage évolué VB possède un jeu de mots nécessaires à son fonctionnement.
Le tableau suivant contient une liste des mots clés du langage Visual Basic. Tous les mots clés du langage sont réservés et ne peuvent pas servir d'identificateur.
Jetez-y un œil, les termes en gras sont ceux qui sont le plus utilisés.
GetType
Retourne le type de l'objet spécifié.
Is
Instruction de test qui permet de comparer des objets.
Nothing
Le mot clé Nothing représente la valeur par défaut d'un type de données. L'assignation de Nothing à une variable la définit à sa valeur par défaut pour son type déclaré. Si ce type contient des membres de variable, ils ont tous leurs valeurs par défaut.
GoTo
Effectue un branchement inconditionnel vers une ligne spécifiée d'une procédure. Utiliser dans la gestion d'erreur.
Like
Instruction de test qui permet de comparer des valeurs de types différents.
Optional
Le mot clé Optional indique qu'un argument de procédure peut être omis lorsque la procédure est appelée.
In
Me
Le mot clé Me sert de variable objet faisant référence à l'instance en cours d'une classe. Lorsqu'une classe peut posséder plusieurs instances, Me offre la possibilité de faire référence à l'instance spécifique de la classe où s'exécute actuellement le code. L'utilisation de Me est particulièrement utile pour le passage des informations concernant l'instance d'une classe en cours d'exécution, à une procédure se trouvant dans une autre classe ou un autre module.
…
Chapitre 1 INTRODUCTION
Dans ce cours, vous allez apprendre les instructions nécessaires à la programmation Visual Basic. Les méthodes de programmation mentionnées dans ce livret sont celles utilisées dans la programmation de langages plus évolués comme le C++ ou le VB.NET. Bien que le VBA ne soit pas un langage orienté objet, nous nous efforcerons de nous en approcher.
Pré-requis : Maitriser EXCEL et ses fonctions de base, livret 1, 2 et 3 des cours VBA. Objectifs :
Signalétique Attention
Information complémentaire
Vous découvrirez VBA au travers de plusieurs TP. Ces TP vont aller croissant en difficultés.
Chapitre 2 Les classes d’objets
Avant de commencer, éclaircissons un point sur le fonctionnement du VBA et notamment ce qui concerne les objets et les collections.
2.1 Les collections
Une collection désigne un ensemble d'éléments ayant une relation entre eux. On accède à ces éléments grâce à leur numéro d'index ou leur nom. Les collections peuvent ainsi être hiérarchisées (l'application Excel contient une collection de classeur, chaque classeur contient une collection de feuilles, chaque feuille contient une collection de cellules...)
Les actions de base (appelées méthodes) de la plupart des collections, sont les méthodes suivantes :
Add Pour ajouter un élément à la collection
Delete (ou Remove) Pour supprimer un élément de la collections
La propriété Count permet de connaître le nombre d'éléments de la collection.
On devine ici que les collections prennent beaucoup de place en mémoire. Si on doit l'utiliser fréquemment, il est préférable de passer par une variable:
Un classeur se compose de différents éléments ou objets.
Les feuilles Les graphiques
Les cellules Les boîtes de dialogue
Les Formulaires
Un classeur peut également contenir des contrôles divers : image, bouton, liste déroulante... Ces contrôles sont aussi des objets qui ont des caractéristiques (propriétés) et sur lesquelles on peut agir.
2.2 Les objets
Les objets désignent des éléments spécifiques qui possèdent des propriétés et des méthodes. Par exemple, l’objet Porte de la maison possède des propriétés : dimension, type de bois, avec ou sans vitre... avec elle on peut réaliser des actions (méthodes) : ouvrir, fermer, verrouiller dégonder...
Il en va de même pour les objets Excel (qu’on appelle aussi des classes). On trouve l’objet Cellules, feuilles, classeurs...
Vous avez appris dans un livret précédent à afficher l’explorateur d’objet. Cet explorateur donne la liste des objets et des propriétés et méthodes.
La notation et l’utilisation des objets est à retenir également.
Dans les livrets précédents vous avez utilisé l’objet Range qui désigne une ou plusieurs cellules. Range(‘’A1”) correspond donc à la cellule A1.
Si on veut utiliser une méthode ou une propriété, nous taperons un point(.) après l’objet. Voici un exemple pour désigner la valeur de la cellule A1 : Range(‘’A1”).Value
Les propriétés peuvent également s’enchaîner. Voici un exemple pour parler d’une cellule dont le contenu est mis en gras :Range(‘’A1”).Font.Bold
Font = Police d’écriture Bold = gras (en anglais).
Vous devez absolument bien comprendre cette utilisation des objets. La suite du chapitre approfondira cet aspect.