Voir le flux RSS

Pierre Fauconnier

Les variables en VBA: 1. Déclaration obligatoire

Noter ce billet
par , 07/08/2018 à 08h02 (126 Affichages)
Salut.

Sur le forum, je rencontre beaucoup de questions remontant des problèmes liés à la non-déclaration obligatoire des variables... VBA est très permissif de nature, c'est le moins que l'on puisse dire, et il me semble utile de placer certains garde-fous pour éviter les erreurs et les pertes de temps.

Voici un code trouvé dans une discussion
Code VB : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
Sub test2()
Dim a As Double
Dim vYear
 
vYear = "2018"
 
  a = Application.WorksheetFunction.SumIf(Range("B2", Range("B2").End(xlDown)), intYear & "*", Range("L2", Range("L2").End(xlDown)))
 
MsgBox a
 
End Sub

L'auteur du post s'étonne que a vaille 0. Mais le problème qu'il rencontre est qu'il affecte 2018 à vYear puis qu'il utilise intYear qui ... est vide!
Nom : 2018-08-07_073905.png
Affichages : 32
Taille : 20,9 Ko

Résoudre ce problème ponctuel est simple ici car il n'y a quasi pas de code. Dans un code plus fourni, les heures perdues sur un problème pareil peuvent être nombreuses.

EUREKÂ... Il existe une solution. Forcer Excel à nous obliger à déclarer nos variables. Qui plus est, la solution est SIMPLISSIME! Il suffit de placer la ligne Option Explicit en début de module...

Nom : 2018-08-07_075458.png
Affichages : 32
Taille : 15,2 Ko

Dès lors, si le code utilise une variable non déclarée, VBA nous en informe et refuse de démarrer le code...
Nom : 2018-08-07_075630.png
Affichages : 31
Taille : 13,5 Ko

Super, non?

Pour garantir que chaque nouveau module possèdera cette ligne Option Explicit, il suffit de modifier les options de l'éditeur VBE.
Nom : 2018-08-07_080024.png
Affichages : 32
Taille : 15,7 Ko

Attention: Les modules existants ne sont pas impactés par cette modification des options...

Dans mes prochains billets sur les variables, je vous parlerai du typage des variables, de la portée des variables, ...

Bonne lecture et ... bon code

Envoyer le billet « Les variables en VBA: 1. Déclaration obligatoire » dans le blog Viadeo Envoyer le billet « Les variables en VBA: 1. Déclaration obligatoire » dans le blog Twitter Envoyer le billet « Les variables en VBA: 1. Déclaration obligatoire » dans le blog Google Envoyer le billet « Les variables en VBA: 1. Déclaration obligatoire » dans le blog Facebook Envoyer le billet « Les variables en VBA: 1. Déclaration obligatoire » dans le blog Digg Envoyer le billet « Les variables en VBA: 1. Déclaration obligatoire » dans le blog Delicious Envoyer le billet « Les variables en VBA: 1. Déclaration obligatoire » dans le blog MySpace Envoyer le billet « Les variables en VBA: 1. Déclaration obligatoire » dans le blog Yahoo

Mis à jour 08/08/2018 à 10h11 par Pierre Fauconnier

Catégories
Programmation , VBA , MS Office

Commentaires