Utilisation de variables dans les formules

Bonjour,

Ma formule avec 2 variables n'est manifestement pas correcte.

Dim Décalage As Integer

Dim Test As String

Décalage = -2

Test = "Payé"

Formule = "=IF(RC[" & Décalage & "]=" & Test & ",0,1)"

ActiveCell.FormulaR1C1 = Formule

2 conséquences différentes :

- RC[" & Décalage & "] entraine une erreur d'exécution 1004 : erreur définie par l'application ou par l'objet

- le test =" & Test & " se traduit par un test sur la valeur Payé (sans ""), et non sur "Payé" (avec "") !

Précision : la cellule active est AN2. Un décalage sur la gauche renvoyant à la colonne 0 ou -1 n'est donc pas possible dans cet exemple.

Merci infiniment pour votre aide.

Rebonjour Dach2,

Je te laisse essayer ce code VBA :

Option Explicit

Sub Essai()
  Const Test As String * 4 = "Payé"
  Dim Formule$, Décalage%: Décalage = -2
  Formule = "=--(RC[" & Décalage & "]=""" & Test & """)"
  ActiveCell.FormulaR1C1 = Formule
End Sub

Voici le même, en bien plus court (aucune constante ni variable utilisée ➯ Option Explicit est inutile) :

Sub Essai()
  ActiveCell.FormulaR1C1 = "=--(RC[-2]=""Payé"")"
End Sub

t'auras noté qu'dans chaque formule, y'a pas besoin de IF (et pourtant ça marche !)

dhany

Merci Dhanny.

Cela fonctionne parfaitement.

Je ne sais pas pourquoi ma syntaxe ne marche pas (elle m'a l'air très standard), mais je vais bosser la chose.

Encore merci et bonne soirée à toi.

c'est à cause des guillemets : faut doubler ceux de la formule qui entourent le paramètre texte, donc avec 3 guillemets.

Ton instruction VBA réécrite : Formule = "=IF(RC[" & Décalage & "]=""" & Test & """,0,1)"

dhany

Rechercher des sujets similaires à "utilisation variables formules"