* Bonjour *
J'ai été confronté à un problème sous Excel et VBA, et bien que j'ai réussi - après moult jurons et arrachages de cheveux - à trouver une parade, je me suis dit qu'il serait bon d'en faire part sur ce forum, histoire de partager ma misère et éventuellement obtenir de vous tous une solution plus élégante.
Voilà le problème.
J'ai écris une fonction VBA toute simple qui utilise en argument des valeurs Excel qui sont calculées avec la fonction Excel DECALER
Par exemple, dans la cellule A1 j'écris la formule =DECALER(B1;1;1)
et ma fonction s'écrit Myfunction(A1)
Le bug, si s'en est un, est que la fonction DECALER semble ne pas être évaluée avant l'appel de Myfunction. Bizarrement, Myfunction se déroule une première fois sans l'argument, puis une seconde fois avec cette fois la bonne valeur, comme si il avait fallu une première exécution de MyFunction pour que DECALER soit évaluée.
J'ai essayé de passer A1 byval sous VBA mais sans succés.
La parade : j'ai écris une fonction VBA décalage qui fait exactement la même chose que DECALER :
et là ça fonctionne parfaitement......
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 function Decalage(Cell, nblig,nbcol) decalage=cell.offset(nblig,nbcol) end function
Comme dirait Queneau : bizarotenkétrange....
* Merci d'avance *
Partager