RechercheV en VBA

  • Initiateur de la discussion grin dor
  • Date de début
G

grin dor

Guest
Bonjour à tous
Bonjour le forum
Peut-on exécuter automatiquement la formule suivante en VBA:
=si(esterreur(recherchev(F1;A1:B00;2;Faux));recherchev(F1;C1:D100;2;Faux);recherchev(F1;A1:B100:2;Faux)
Merci d'avance
 
B

Benoit

Guest
Bonjour, je ne sais pas si celà va répondre à ta question mes voici,

La façon la plus facile que j'ai trouvé pour transposer une formule en VBA est de l'écrire dans une cellule du fichier et s'assurer qu'elle fonctionne.

Ensuite on remplace le = par une lettre.
On part l'enregistreur de macro, on remplace la lettre par un = et on arrête l'enrgistreur de macro.

Excel au 'traduit' la formule en code VBA dans un module.

Ensuite, on peut récupérer ce code dans une autre macro.
 
B

Benoit

Guest
Bonjour, je ne sais pas si celà va répondre à ta question mes voici,

La façon la plus facile que j'ai trouvé pour transposer une formule en VBA est de l'écrire dans une cellule du fichier et s'assurer qu'elle fonctionne.

Ensuite on remplace le = par une lettre.
On part l'enregistreur de macro, on remplace la lettre par un = et on arrête l'enrgistreur de macro.

Excel au 'traduit' la formule en code VBA dans un module.

Ensuite, on peut récupérer ce code dans une autre macro.
 
B

Benoit

Guest
Bonjour, je ne sais pas si celà va répondre à ta question mes voici,

La façon la plus facile que j'ai trouvé pour transposer une formule en VBA est de l'écrire dans une cellule du fichier et s'assurer qu'elle fonctionne.

Ensuite on remplace le = par une lettre.
On part l'enregistreur de macro, on remplace la lettre par un = et on arrête l'enrgistreur de macro.

Excel au 'traduit' la formule en code VBA dans un module.

Ensuite, on peut récupérer ce code dans une autre macro.
 

Charly2

Nous a quittés en 2006
Repose en paix
Bonsoir,

En références relatives, cela dépend de la cellule dans laquelle est écrite la formule, mais en références absolues, tu peux essayer ceci :

Res = Evaluate('IF(ISERROR(VLOOKUP(R1C6,R1C1:R100C2,2,FALSE)),VLOOKUP(R1C6,R1C3:R100C4,2,FALSE),VLOOKUP(R1C6,R1C1:R100C2,2,FALSE))')

ou encore, si version française :

Res = Evaluate('SI(ESTERREUR(RECHERCHEV($F$1;$A$1:$B$100;2;FAUX));RECHERCHEV($F$1;$C$1:$D$100;2;FAUX);RECHERCHEV($F$1;$A$1:$B$100;2;FAUX))')

A+ ;)
 

Charly2

Nous a quittés en 2006
Repose en paix
re bonsoir,

Ok pour G10 :

1.) deux instructions identiques ligne et colonne relatives :

Evaluate('SI(ESTERREUR(RECHERCHEV(F1;$A$1:$B$100;2;FAUX));RECHERCHEV(F1;$C$1:$D$100;2;FAUX);RECHERCHEV(F1;$A$1:$B$100;2;FAUX))')

et

Evaluate('IF(ISERROR(VLOOKUP(R[-9]C[-1],R1C1:R100C2,2,FALSE)),VLOOKUP(R[-9]C[-1],R1C3:R100C4,2,FALSE),VLOOKUP(R[-9]C[-1],R1C1:R100C2,2,FALSE))')

2.) ligne relative et colonne absolue :

Evaluate('SI(ESTERREUR(RECHERCHEV($F1;$A$1:$B$100;2;FAUX));RECHERCHEV($F1;$C$1:$D$100;2;FAUX);RECHERCHEV($F1;$A$1:$B$100;2;FAUX))')

et

Evaluate('=IF(ISERROR(VLOOKUP(R[-9]C6,R1C1:R100C2,2,FALSE)),VLOOKUP(R[-9]C6,R1C3:R100C4,2,FALSE),VLOOKUP(R[-9]C6,R1C1:R100C2,2,FALSE))')

Voilà.

A+ :)
 

Charly2

Nous a quittés en 2006
Repose en paix
re bonsoir Grin d'Or,

En fait, cela dépend de ce que tu souhaites faire du résultat. Tu peux essayer dans un module (par Insertion/Module sous vbe) :

Sub MaMacro()
'
Dim Resultat As Variant
'
  Resultat = Evaluate('bla bla bla')
  Range('G10') = Resultat
  ' ou un autre traitement

End Sub

Si tu as un souci, joins un fichier en expliquant ce que tu souhaites faire :)

A+
 
G

grin d'or

Guest
Re bonsoir charly2
Merci pour votre aide,voici un fichier joint,je veux le code en private sub
resultat dans la cellule G10
recherchev(F1;A1:B65536;2;Faux));recherchev(F1;C1:D65536;2;Faux);recherchev(F1;A1:B65536;2;Faux))
Merci d'avance [file name=resultat_20060512213108.zip size=6749]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/resultat_20060512213108.zip[/file]
 

Pièces jointes

  • resultat_20060512213108.zip
    6.6 KB · Affichages: 61

Charly2

Nous a quittés en 2006
Repose en paix
re-re-re :lol:

Voici ton fichier avec une proposition de code dans le Private Module de ta feuille :

[file name=Grin_d_Or_Resultat.zip size=11796]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Grin_d_Or_Resultat.zip[/file]

A+
 

Pièces jointes

  • Grin_d_Or_Resultat.zip
    11.5 KB · Affichages: 70

Discussions similaires

Réponses
7
Affichages
350

Statistiques des forums

Discussions
312 496
Messages
2 088 978
Membres
103 996
dernier inscrit
KB4175