IntelliSense VBA amélioré
IntelliSense est un ensemble de fonctionnalités d'aide à l'édition de code qui permettent aux développeurs d'écrire du code plus rapidement et avec moins d'erreurs. Nous vous présentons ici les extensions IntelliSense VBA fournies par Code VBA, classées approximativement dans l'ordre où vous les rencontrerez lors de la programmation, en commençant par les plus simples pour aller vers les plus complexes.
ThisWorkbook
Ajouter une nouvelle procédure
Lorsque vous commencez à rédiger une procédure en tapant le s de « Sub », le f de « Function » ou le « pro » de « property », un menu correspondant s'affiche immédiatement. En sélectionnant le premier élément, le bloc standard s'insère et le curseur se place juste avant « () » pour vous permettre de saisir le nom de la procédure.
Sub |()
End Sub
La première fois, ce comportement vous surprendra et vous agacera peut-être même. Mais d'un autre côté, vous remarquerez peut-être que le menu propose des fonctionnalités qui méritent d'être explorées.
- Utilisation Esc pour fermer le menu s'il ne vous est pas utile.
- Au bas des menus du Code VBA, vous trouverez des options permettant de désactiver ce comportement de déclenchement.
- Si c'est le cas, vous pouvez utiliser Shift-Space pour activer IntelliSense.
Déclaration des variables
Dim menu d'autocomplétion pour la déclaration de variables
En tapant dim (un déclencheur de mot-clé), vous ouvrez le menu de suggestion pour la déclaration de variables. En sélectionnant le type souhaité, vous insérez le code standard de la déclaration.
Dim wb| As Workbook
Indiquez un nom approprié après le préfixe pour compléter la déclaration.
- Dans les préférences, vous pouvez indiquer si vous souhaitez utiliser des noms de variables avec un préfixe.
- Vous pouvez également modifier ici les préfixes actuellement utilisés.
- En VBA, vous pouvez déclarer plusieurs variables sur une même ligne, séparées par des virgules.
- La virgule ouvrira à nouveau le menu « Variable ».
Déclaration automatique de fin
En fait, grâce à la fonctionnalité « Auto Declare », vous n'avez plus besoin de déclarer les variables vous-même. Par exemple, si vous tapez
strName=
... outre l'apparition du menu d'affectation (voir la section suivante), la déclaration suivante a été ajoutée :
Dim strName As String
strName=
Suggestions d'affectation de variables
Dans le cas d'une affectation de variable comme celle ci-dessus, un menu proposant des suggestions s'affiche à droite. Ce menu dépend du type de la variable. Dans l'exemple de la chaîne de caractères `strName`, il propose de nombreuses options, pour n'en citer que quelques-unes :
- Une chaîne littérale vide
""à remplir - Une nouvelle variable, fonction ou constante à déclarer automatiquement
- Une variable déjà définie dans la procédure, éventuellement de type String, mais Visual Basic autorise également d'autres types.
- Un nom figurant quelque part dans votre projet, ou un dossier ou un nom de fichier à sélectionner via une boîte de dialogue.
- A VBUn appel de fonction tel que
Trim(...) - Une propriété d'un objet (
ActiveCell.Value), etc.
Exemple
Si nous attribuons une valeur à la variable Date, le menu ressemblera à la capture d'écran ci-contre. Vous pouvez sélectionner et insérer du code pour
- Trois littéraux représentant une date et/ou une heure :
#2/12/2026 7:58:06 AM#. - Utilisez le
Datefonction qui renvoie la date du jour, ou Now pour la date et l'heure. - Utilisez le
DateAddfonction permettant de calculer une date et une heure dans le futur. - Sélectionnez un extrait de code pour calculer une date future, par exemple : First day in month:
dt = DateSerial(Year(dt), Month(dt), 1). Une longue liste de ces fonctions de date est disponible ; elles se trouvent dans le Bibliothèque de Code VBA.
Suggestions d'affectation de variables d'objet
La prise en charge de l'affectation de variables d'objet incluse s'appuie sur une connaissance approfondie des objets des applications Office concernées pour suggérer comment définir un objet d'un type donné.
- Les plages se réfèrent toujours à une feuille. Ici, nous avons sélectionné la Feuille1, mais le code pourrait également partir d'une variable de type « Nouvelle feuille ».
- Le code qui sera inséré lorsque l'on clique sur un élément est visible dans une info-bulle.
- Dans cet exemple, le menu comporte des points de suspension (...) indiquant qu'un clic dessus ouvrira une boîte de dialogue. Il s'agit ici d'une boîte de dialogue « Générateur Call Builder » permettant de préciser les méthodes de Range.
- Le mot-clé « Set » est ajouté automatiquement afin que l'affectation de la variable « Object » soit syntaxiquement correcte.
Cette fonctionnalité est encore étendue dans la mesure où, grâce au mot-clé de déclenchement Set, elle connaît les variables d'objet de la procédure en cours et peut écrire des instructions complètes en combinant la connaissance des objets disponibles avec leurs méthodes permettant de définir un objet associé.
Si l'option « New String Variable » est sélectionnée dans le sous-menu « Range », le code ci-dessous est créé en utilisant le nom de variable par défaut de la boîte de dialogue.
Dim strRange As String: strRange =
Set rngSubscriptions = wsAccount.Range(Cell1:=strRange)
Ensuite, vous pouvez facilement attribuer le nom manquant en plaçant le curseur après « strRange = » et
en activant les suggestions de complétion pour les instructions d'affectation.
Dim strRange As String: strRange = "[Account4223.xlsm]Sheet1!B4:C6"
Suggestion de complétion d'argument
Lorsque vous appelez une procédure, vous devez souvent fournir des arguments pour ses paramètres. La complétion des arguments est très pratique dans ce cas. Elle fonctionne pour toutes les procédures de votre projet, qu'elles soient personnalisées ou intégrées, qu'il s'agisse de méthodes d'objet ou de procédures de module.
- Les arguments qui n'ont pas encore été fournis peuvent être sélectionnés par leur nom.
- L'info-bulle explique à quoi sert le paramètre.
- Sélectionnez comme argument la variable dont vous avez besoin, ou créez-en une nouvelle, une propriété d'un objet, voire une procédure ou un extrait de Code VBA.
Bloc d'instructions If Then Else avec condition
Lorsque vous tapez If, le menu ci-dessous s'ouvre. La capture d'écran ci-dessous montre la création d'un bloc d'instructions « If Then Else ». Notez que :
- Le If Then Else Le menu « menu » est la troisième option parmi les quatre principales du menu « If ».
- Pour n'afficher que la structure de base, sélectionnez la ligne vide dans la deuxième liste.
- Le reste de la deuxième liste permet de construire la partie conditionnelle.
- Utilisation de touche d'accès B ouvre le sous-menu VBA qui contient des fonctions et des extraits de code pouvant servir d'éléments de condition booléenne.
- En haut à droite, on voit l'effet au survol Aperçu une info-bulle contenant le code qui sera inséré si l'on clique sur l'élément de menu, une description de la dernière procédure sélectionnée (ici la fonction IsDate) et la touche F1 pour indiquer la présence d'une aide en ligne.
Le code obtenu, tel qu'il a déjà été présenté dans l'info-bulle :
If IsDate(str) Then
Else
End If