vlookup?

  • Initiateur de la discussion Rém
  • Date de début
R

Rém

Guest
bonjour,

je suis un novice et j'aimerais savoir ce que cette fonction fait exactement et comment la retranscrire en Vb....

=IF(BM4="";""; (IF(BM4="EUR";"1";VLOOKUP(BM4;Currencies!A:C;3;FALSE))))

merci d'avance à tous
 
@

@Christophe@

Guest
Bonjour,

Comment expliquer:

D'abord qq info:

Si BM4 = rien, le formule fait rien
Si BM4 est différent de rien, la formule vérifie si BM4 = EUR
Si BM4 = EUR alors elle marque 1 dans la cellule ou se trouve la cette formule
Si BM4 est différent de EUR alors la formule recherche le texte inscrit dans la cellule BM4 dans la page Currencies colonne A et renvoi ce que se trouve dans la colonne C

Voila

La formule retranscrite en VBA donne:

ActiveCell.FormulaR1C1 = _
"=IF(R[3]C[64]="""","""", (IF(R[3]C[64]=""EUR"",""1"",VLOOKUP(R[3]C[64],Currencies!C:C[2],3,'FALSE'))))"

Bonne journée

@Christophe@
 
L

Lord Nelson

Guest
Bonsoir Rém et Christophe,

Il s'agit, à mon avis de rechercher un taux de change d'après un code devise.

En VB, cela pourrait ressembler à ceci :

Function TauxChange(DEV)
Dim CL As Range
TauxChange = ""
If DEV = "EUR" Then
TauxChange = 1
Else
For Each CL In Range("A1:A" & Range("A65536").End(xlUp).Row)
If DEV = CL.Text Then
TauxChange = CL.Offset(0, 2).Value
End If
Next
End If
End Function

Mais c'est juste pour faire un petit exercice didactique en VB, la formule Excel convient très bien pour traiter ce genre de chose.

A+
Horatio
 
R

Rém

Guest
désolé,
mais qd je mais la formule de christophe, en compilant il fait une erreur: "compil error: Syntax error"

ActiveCell.FormulaR1C1 = _
"=IF(R[3]C[64]="""","""", (IF(R[3]C[64]=""EUR"",""1"",VLOOKUP(R[3]C[64],Currencies!C:C[2],3,'FALSE'))))"

j'ai pas du tout comprendre, j'ai mis la formule tel quelle....

merci!
 
R

Rém

Guest
re-salut!

en fait je vous explique,
je voudrais utiliser cette formule dans une boucle For (en bouclant sur les lignes):

For i=2 To n
ActiveCell.FormulaR& iC66 ="=IF(R["&i&"]C[64]="""","""", (IF(R["&i&"]C[64]=""EUR"",""1"",VLOOKUP(R["&i&"]C[64],Currencies!C:C[2],3,FALSE))))"

next i

merci de vos lumières.....
 

Discussions similaires

Réponses
6
Affichages
144

Statistiques des forums

Discussions
312 336
Messages
2 087 389
Membres
103 534
dernier inscrit
Kalamymustapha