comprends pas...copie de formule en vb

  • Initiateur de la discussion zertion
  • Date de début
Z

zertion

Guest
Salut!
voilà je vous explique,
je souhaite afficher dans n cellules, la formule suivante: (ex pour cellule 6)

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

voilà le code que j'ai fais:

Sub test()

Dim Cel As Range

With ActiveSheet

For Each Cel In .Range("BN1:BN" & n) 'n est le nombre de ligne
If (Cel.FormulaR1C1 = "") Then
Cel.FormulaR1C1 = "=IF(RC[-1]=" & Chr(34) & Chr(34) & "," & Chr(34) & Chr(34) & ",IF(RC[-1]=EUR,1,VLOOKUP(RC[-1],Currencies!A:C,3,FALSE)))"

End If
Next Cel

End With
End Sub


mais j'obtient cette formule dans ma feuille excel:

=IF(BM7="";"";IF(BM7=EUR;1;VLOOKUP(BM7;Currencies!A:BN:BN;FALSE)))

alors voilà, je comprends pas pourquoi j'ai:
..."Curencies!A:BN:BN"... au lieu de ..."Curencies!A:C"

Si quelqu'un peut aider un novice ce serait cool!

merci d'avance....
 
Y

Yeahou

Guest
Re bonjour zertion, le forum

ta formule récupérée sur l'enregistreur

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

Reste sur le même fil pour le même sujet! c'est précisé dans la charte.

<http://www.excel-downloads.com/html/French/forum/messages/1_107418_107418.htm>
<http://www.excel-downloads.com/html/French/forum/messages/1_107300_107300.htm>

Cordialement, A+
 
J

Jean-Marie

Guest
Bonjour zertion

Cel.FormulaR1C1 = "=IF(R[-1]C[-1]=" & Chr(34) & Chr(34) & "," & Chr(34) & Chr(34) & ",IF(R[-1]C[-1]=EUR,1,VLOOKUP(R[-1]C[-1],Currencies!A:C3,3,FALSE)))"

RC[-1] -> R[-1]C[-1] remontera d'une ligne la référence de la cellule.
Currencies!A:C vba anaylant en premier les références de type RC, il a compris dans le cas présent que C était la colonne de la cellule active. Pour affecter la plage A:C utilise le terme Currencies!A:C3

@+Jean-Marie
 
Z

zertion

Guest
désolé Yeahou....

En utilisant

Cel.FormulaR1C1 = "=IF(RC[-1]=" & Chr(34) & Chr(34) & "," & Chr(34) & Chr(34) & ",IF(RC[-1]=EUR,1,VLOOKUP(RC[-1],Currencies!A:C3,3,FALSE)))"

(pas la peine d'utiliser C[-1]C[-1] en fait je me suis trompé dans mon copier coller hihihihi)

voilà ce que j'obtient dans ma cellule 6:

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

et ca plait pas à excel...

merci!
 
Z

zertion

Guest
ben en fait j'ai du oublier les "" donc voilà le code:

Cel.FormulaR1C1 = "=IF(RC[-1]=" & Chr(34) & Chr(34) & "," & Chr(34) & Chr(34) & ",IF(RC[-1]=" & Chr(34) & "EUR" & Chr(34) & ",1,VLOOKUP(RC[-1],Currencies!A:C3,3,FALSE)))"


mais y'a tjrs:

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

.........
 
Y

Yeahou

Guest
Re bonjour à tous

alors cela donne quelque chose comme cela

Cel.FormulaR1C1 = "=IF(RC[-1]="""","""", (IF(RC[-1]=""EUR"",""1"",VLOOKUP(RC[-1],Currencies!C[-65]:C[-63],3,'FALSE'))))"

ou avec A:C en absolu

Cel.FormulaR1C1 = "=IF(RC[-1]="""","""", (IF(RC[-1]=""EUR"",""1"",VLOOKUP(RC[-1],Currencies!C1:C3,3,'FALSE'))))"

Cordialement, A+
 

Discussions similaires

Réponses
11
Affichages
478

Statistiques des forums

Discussions
312 429
Messages
2 088 349
Membres
103 822
dernier inscrit
kader55