VBA sur Excel Bug ou (R)évolution

Posted by on Fév 17, 2009 in Blog, Edito | No Comments

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.

twitterlinkedin

Leave a Reply

You must be logged in to post a comment.