VBA sur Excel Bug ou (R)évolution
Je m’explique il y a une différence au niveau de l’utilisation des variables et de leur portée entre VBA 2003 et VBA 2007
avec le tableau ci-dessous ce sera plus clair
2003 |
2007 |
Correction 2007 |
function test(mavariable as string)
mavariable = left(mavariable,2) test=mavariable end function sub test() varorigine=”bonjour” resultat = test(varorigine) end sub |
fonction identique à 2003 | function test(mavariable as string)
tmpvariable = mavariable tmpvariable = left(tmpvariable,2) test=tmpvariable end function sub test() varorigine=”bonjour” resultat = test(varorigine) end sub |
Résultat après exécution | Résultat après exécution | Résultat après exécution |
varorigine = “bonjour”
resultat = “bo” |
varorigine = “bo”
resultat = “bo” |
varorigine = “bonjour”
resultat =”bo” |
En fait dans la version non corrigée la redéfinition de la variabla agit comme un pointeur et va modifier la variable en dehors de la fonction.