Excel - Power Query - Power Pivot - VBA
Visual Basic

icon picker
Procédures

Sub

Une procédure Sub est une macro au sens Excel. Elle exécute des actions (instructions), peut recevoir des arguments, mais ne retourne pas de valeur. On voit ces procédures dans la fenêtre Macros (ALT + F8).

Function

Une Function, à la différence d’un Sub, peut retourner une valeur, sur le même principe que les fonctions Excel : la fonction SOMME retourne une… somme. Par exemple :
c = Left("maison", 3)
retourne "mai" (les 3 caractères à gauche de maison) et stocke cette valeur dans la variable c. Left est une fonction intrinsèque (intégrée à Excel). Vous pouvez créer vos propres fonctions :
Function MaFonction1(Argument1, Argument2…)
MaFonction1 = Argument1 + Argument2
End Function

Arguments nommés

La syntaxe suivante…
ActiveWorkbook.Close True
… indique de fermer en classeur (méthode Close) en enregistrant les modifications (argument SaveChanges sur True).
En utilisant cette autre syntaxe…
ActiveWorkbook.Close SaveChanges:=True
… on obtient une ligne de code plus facilement lisible.
Les arguments nommés permettent également de les mettre dans n’importe quel ordre et d’en omettre certains. Par exemple, pour ouvrir un classeur en lecture seule, on peut écrire :
Workbooks.Open Filename:="C:\Classeur1.xlsx", ReadOnly:=True

Module

Principes

Un module est une page contenant du code VBA.
Trois types de module :
image.png
Feuil1, Feuil2… : module de feuille. Le code de ce module ne peut être appelé que depuis la feuille.
ThisWorkbook : module de classeur. Le code de ce module ne peut être appelé que depuis le classeur
Modules : module. Le code de ce module peut être appelé de n’importe où : feuille, classeur, autre module.

Options d’un module

En haut de chaque module, vous devez écrire (si vous n’avez coché l’option dans Visual Basic Editor) :
Option Explicit
De cette façon, vous serez obligé de déclarer toutes vos variables, ce qui est un moyen de sécuriser son code contre les erreurs.
Notez que vous avez aussi intérêt à ajouter l’instruction suivante :
Option Compare Text
Également à placer en haut de chaque module, elle facilite les comparaisons de chaînes : les lettres en majuscules seront égales aux mêmes lettres en minuscule (data et Data seront considérés comme identiques).
Want to print your doc?
This is not the way.
Try clicking the ⋯ next to your doc name or using a keyboard shortcut (
CtrlP
) instead.