Insertion Formule et étirer vers le bas

Bonjour,

Je rencontre un petit problème avec mon code VBA.

ThisWorkbook.ActiveSheet.Select
Range("F4").Formula = "=SI(B4=1;E4)"

Ce morceau de code a pour but de coller la formule "=SI(B4=1;E4)", mais ca ne fonctionne pas, alors que si je mets une formule basique du style "B1*B2", tout fonctionne. Et j'aimerai aussi que l'on étire cette formule jusqu'à ma variable "dernièreLigne", mais je n'ai aucune idée de comment m'y prendre.

Auriez-vous une solution ?

Merci d'avance

Cordialement MikaG

Bonjour,

Peut-être ainsi (considérant que tu veux recopier jusqu'à la dernière cellule remplie de la colonne "E")

Range("F4:F" & Cells(Rows.Count, "E").End(xlUp).Row).FormulaR1C1 = "=IF(RC[-4]=1,RC[-1])"

Bonne journée et bonne semaine

Bonjour, je vois plusieurs erreur dans votre code.

- Votre formule est incomplète : "=SI(B4=1;E4)" si B4=1 alors on écrite E4 ok Mais si B4 n'est pas égal à 1 ?

- par ailleurs, l'utilisation de range formula oblige la rédaction en anglais.

Pour l'utilisation d'une formule en français il faut utiliser :

Range("F4").FormulaLocal = "=Si(B4=1;E4;"")"

Enfin pour pouvoir l'appliquer sur plusieurs lignes ( jusqu'à votre variable) je ferais une boucle.

'Exemple de la ligne 4 à la variable derligne

For i=4 to derligne
Range("F" &derligne).FormulaLocal = "=Si(B" &derligne &"=1;E" &derligne &";"")"
Next

Bonjour à tous,

Une variante....en tirant la formule vers le bas...

Même remarque que XmenPl, il manque un paramètre à la fonction SI.

Sub Bouton1_Cliquer()
 Dim dl%
  With Sheets("Feuil1")
   dl = .UsedRange.Rows.Count + 3
    .Range("F4").FormulaLocal = "=Si(B4=1;E4;"""")"
    .Range("F4:F" & dl).FillDown
  End With
End Sub
6classeur1.xlsm (19.22 Ko)

Cordialement,

Bonjour,

Tout d'abord merci à tous pour vos réponses !

Ensuite j'ai réussi à régler le problème en utlisant un :

FormulaLocal

Cordialement

MikaG

Rechercher des sujets similaires à "insertion formule etirer bas"