Problème variable dans formule VBA

Bonjour à tous,

J'ai la formule suivante que j'ajoute sur ma feuille depuis mon code VBA :

=SIERREUR(SI(V2>0;QUOTIENT(V2;RECHERCHEV(H2;'Qt par pal'!A:B;2;0));0);0)+SIERREUR(SI(V2>0;SI(MOD(V2;RECHERCHEV(H2;'Qt par pal'!A:B;2;0))>RECHERCHEV(H2;'Qt par pal'!A:B;2;0)*"ICI LA VARIABLE";MOD(V2;RECHERCHEV(H2;'Qt par pal'!A:B;2;0));0);0);0)

Ma variable est un pourcentage que je récupère depuis une autre cellule d'un classeur différent de la façon suivante :

Dim pourcentage_prelevement As Single
pourcentage_prelevement = Range("B2").Value

Il n'y a pas de soucis à ce niveau, la variable prend bien la bonne valeur.

J'utilise alors le code VBA suivant pour créer la formule :

Range("X2").Select
    ActiveCell.FormulaR1C1 = _
        "=IFERROR(IF(RC[-2]>0,QUOTIENT(RC[-2],VLOOKUP(RC[-16],'Qt par pal'!C[-23]:C[-22],2,0)),0),0)+IFERROR(IF(RC[-2]>0,IF(MOD(RC[-2],VLOOKUP(RC[-16],'Qt par pal'!C[-23]:C[-22],2,0))>VLOOKUP(RC[-16],'Qt par pal'!C[-23]:C[-22],2,0)*" & pourcentage_prelevement & ",MOD(RC[-2],VLOOKUP(RC[-16],'Qt par pal'!C[-23]:C[-22],2,0)),0),0),0)"

Mais j'obtiens un message d'erreur :

image

Quelqu'un aurait une idée d'où vient le problème ?

tibo

Bonjour,

Pas d'erreur détectée chez moi

Le code est identique au vôtre:

    Dim pourcentage_prelevement As Single
    pourcentage_prelevement = Range("B2").Value
    Range("X2").FormulaR1C1 = "=IFERROR(IF(RC[-2]>0,QUOTIENT(RC[-2],VLOOKUP(RC[-16],'Qt par pal'!C[-23]:C[-22],2,0)),0),0)+IFERROR(IF(RC[-2]>0,IF(MOD(RC[-2],VLOOKUP(RC[-16],'Qt par pal'!C[-23]:C[-22],2,0))>VLOOKUP(RC[-16],'Qt par pal'!C[-23]:C[-22],2,0)*" & pourcentage_prelevement & ",MOD(RC[-2],VLOOKUP(RC[-16],'Qt par pal'!C[-23]:C[-22],2,0)),0),0),0)"

Cdlt

Bonjour Arturo,

merci pour votre réponse, j'ai réussi à identifier mon erreur. Je devais convertir la variable car elle était sous la forme X,XX alors qu'il fallait la mettre sous la forme X.XX

pourcentage_prelevement = Range("B2").Value
pourcentage_prelevement_len = Len(pourcentage_prelevement)
pourcentage_prelevement = 0 & "." & Right(pourcentage_prelevement, pourcentage_prelevement_len - 2)
Rechercher des sujets similaires à "probleme variable formule vba"