Formule avec variables

Bonjour le forum,

Je cherche à écrire une formule avec des variables qui définissent quelles cellules prendre en compte.

"ColLettre" est la colonne et "Lig" la ligne.

Dans ma formule, je prends en compte la valeur de la 3eme cellule à gauche ([RC-3]) (de la feuille "BDD"), je multiplie par la moyenne des valeurs entre B et la colonne (ColLettre) de la ligne Lig de la feuille "inflation Pays", puis j'additionne la même cellule ([RC-3]). J'espère être clair...

Seulement ma syntaxe doit être mauvaise car j'ai l'erreur 1004 qui apparaît en permanence...

Un héros pour me sortir de là ?

Merci d'avance

Dim rechercheDate, recherchePays As String
Dim LineC, LineL As Range

rechercheDate = Year(MaDate)

Set LineC = ThisWorkbook.Worksheets("inflationPays").Rows("1").Find(What:=rechercheDate, lookat:=xlWhole)
    If Not LineC Is Nothing Then
        Col = LineC.Column
    End If

recherchePays = ComboBox1.Value

Set LineL = ThisWorkbook.Worksheets("inflationPays").Range("A3:A174").Find(What:=recherchePays, lookat:=xlWhole)
    If Not LineL Is Nothing Then
        Lig = LineL.Row
    End If

ColLettre = Split(Columns(Col).Address(ColumnAbsolute:=False), ":")(1)

MsgBox (ColLettre)

Range("I2:I" & derligne).Select
Selection.SpecialCells(xlCellTypeBlanks).Select
'Formule
Selection.FormulaLocal = "=(RC[-3])*(AVERAGE(inflationPays!$B" & Lig & " : " & ColLettre & " " & Lig & ")))/100+BDD!RC[-3]"

Slt Greggg,

essaie de definir ColLettre , par exemple

DIM ColLettre As String

sinon à quelle etape il bloque?

un fichier peut être?

Salut m3ellem1, et merci de m'aider..

Je viens d'essayer de défnir ColLettre, sans succès.

Je ne peux malheureusement pas envoyer de fichier ("confidentiel")...

ça bloque au niveau de la formule !

Selection.FormulaLocal = "=(RC[-3])*(AVERAGE(inflationPays!$B" & Lig & " : " & ColLettre & " " & Lig & ")))/100+BDD!RC[-3]"

ça fait des heeeeures que je suis dessus, impossible de faire le moindre pas vers l'avant...

Et si t'insére la formule manuellement ca fonctionne?

Je ne sais pas comment faire ça, puisque mes variables dépendent d'un userform qui insère et rempli des lignes. Donc sans lancer la procédure, mes variables n'ont aucune valeur...

si je voulais écrire la formule dans chaque cellule, elle ressemblerait à ça :

= F188*MOYENNE(inflationPays!B8:T8)/100+BDD!F188

Sachant que F188 ne doit pas être fixé, et que B8 et T8 dépendent des variables...

essaie comme ca:

Selection.FormulaR1C1 = "=(RC[-3])*AVERAGE(inflationPays!$B" & Lig & " : " & ColLettre & " " & Lig & "))/100+BDD!RC[-3]"

C'était ce que j'avais fait initialement, mais je ne savais pas si on pouvait écrire une formule avec des références absolues et relatives...

Toujours cette erreur 1004..

Quel casse tête

J'ai aussi essayé ça, sans succès :

Selection.FormulaLocal = "=(cells.Offset(0,-3))*(AVERAGE(inflationPays!$B" & Lig & " : " & ColLettre & " " & Lig & ")))/100+BDD!(cells.offset(0,-3))"

je ne pense pas que l'erreur vient de cette formule.

crée un petit fichier test, ca va te prendre 5 min, et puis on regarde

ok je fais ça

Bon voilà j'ai fait un fichier rapidement.

En gros le bouton 1 sert à ajouter un projet, ou on choisit le pays ainsi que la date. Selon ce choix, le but de la formule qui pose problème est d'aller chercher dans la feuille "inflationPays" les valeurs qui en découlent (la moyenne entre 2018 et l'année choisie, le tout à la bonne ligne correspondant au pays choisi...)

Merci encore pour ton temps !

Ah oui et j'ai essayé avec une formule toute simple, sans variables, et ça marche nickel. Donc je pense que c'est vraiment jste un prb de syntaxe..

2test.xlsm (87.41 Ko)

oui je pense que le code qui cause le problème est le suivant:

cells.offset(0,-3)

Je continue ....

j'ai essayé de déclarer une nouvelle variable qui prend pour valeur la moyenne. Je pense que c'est un bon moyen...

Rechercher des sujets similaires à "formule variables"