FormulaR1C1 Division

Bonsoir la communauté

Je sèche sur un truc que je ne connais pas. Je voudrais faire une division de deux cellules mais je ne voudrais pas passer en mode automatique et utiliser .Value car ça ralentit le code. J'ai alors pensé à FormulaR1C1 qui fait la division. Je l'ai utilisé auparavant pour la somme, mais pas pour la division. Voici ce que j'aurais écris si jamais .Value faisait l'affaire :

For i = 2 To derlig
    For j = 2 To derlig
        If .Cells(i, 1) = "Total CA" Then
            If .Cells(j, 1) = "Résultat d'exploitation" Then
               .Cells(j, 5) = Format(.Cells(j,4) / .Cells(i,4), "0.00%") 
            End If
        End If
    Next j
Next i

Merci

Me

Bonjour,

Tu veux utiliser :

.Cells(j, 5).FormulaR1C1 = ...

Ce n'est pas équivalent à ce que tu écris dans ton code.

Daniel

Pourquoi ce n'est pas équivalent ?

Dans ton code, tu obtiens du texte. Là, tu vas avoir une formule...

Daniel

Essaie en remplaçant :

.Cells(j, 5) = Format(.Cells(j, 4) / .Cells(i, 4), "0.00%")

Par :

  .Cells(j, 5).FormulaR1C1 = "=RC4/R[" & i & "]C4"
  .Cells(j, 5).NumberFormat = "0.00%"

(Non testé).

Daniel

Là il me renvoie DIV/0 car il divise par une auyre cellule et non pas celle de la ligne i voulue ...

voici une capture écran du résultat :

capture1 capture2

Donc il a divisé par D22 au lieu de D7 ... ça pourra vous aider pour ajuster le code ?

Merci

Bonsoir

Si je puis me permette, pourquoi ne pas utiliser tout simplement "FormulaLocal"

.Range("E" & j).FormulaLocal = "=D" & J & "/C" & J-1

A+

Bonsoir Bruno

Oui ça fonctionne là mais avec un petit amendement :

.Range("E" & j).FormulaLocal = "=D" & j & "/D" & i
.Cells(j, 5).NumberFormat = "0.00%"

Merci beaucou à vous Bruno et Daniel :)

Rechercher des sujets similaires à "formular1c1 division"