IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Voir le flux RSS

Pierre Fauconnier

Les variables en VBA: 1. Déclaration obligatoire

Note : 2 votes pour une moyenne de 3,00.
par , 07/08/2018 à 08h02 (3863 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 : 1417
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 le VBE (visual Basic Editor) à 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 : 1599
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 : 1558
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 : 1483
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, ...

J'en reparle encore dans ce billet, histoire de bien enfoncer le clou...

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 30/04/2021 à 20h01 par Pierre Fauconnier

Catégories
Programmation , VBA , MS Office

Commentaires