formule en VB

D

Den's

Guest
Bonjour,

j'ai cette formule et j'aimerai savoir si on peut la mettre en VB, SVP.

=ADRESSE(EQUIV(E3;A1:A12;0)+1;1;4;1)


Merci pour votre aide.

Informatiquement
Den's
 
L

LaurentTBT

Guest
Bonjour.

Pour ce genre de question, il y a un outil très pratique: l'enregistreur de macro.
Je suis allé sous excel, j'ai lancé l'enregistreur de macro comme ceci:
Outils, Macros, Nouvelle macro (où plus rapidement un cliquant sur le rond bleu de la barre d'outil de "Visual Basic")
Ensuite, j'ai tapé ta formule dans une cellule. et j'ai arrêté l'enregistreur (le rond s'est transformé en carré, il suffit de cliquer dessus).

Et là, c'est magique, le code est crée tout seul, il suffit d'aller le voir sous VBA, et cela donne:

Selection.FormulaR1C1 = _
"=ADDRESS(MATCH(R[-3]C[1],R[-5]C[-3]:R[6]C[-3],0)+1,1,4,1)"

Ensuite, il faut adapter, car l'enregistreur travail en cellules relatives (R1C1), et donc les références aux cellules se font par rapport à l'adresse de la cellule active où j'ai mis la formule. Il suffit d'adapter selon ce que tu veux faire dans ton programme. Et si cela concerne des plages fixes, tu peux travailler avec Formula au lieu de FormulaR1C1.

Bonne programmation.
Laurent.

Rq: autre défaut de l'enregistreur, c'est qu'il travaille toujours sur des selection. Il faut donc ensuite éventuellement faire du nettoyage, si on connait un peu VBA, et surtout si le code sera long. Mais cet enregistreur est vraiment un outil génial pour retrouver des syntaxes de code quel'on a oublié!
 

Discussions similaires

Réponses
4
Affichages
231

Statistiques des forums

Discussions
312 685
Messages
2 090 947
Membres
104 705
dernier inscrit
Mike72