Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

FormulaR1C1 remplacé par FormulaLocal

  • Initiateur de la discussion Initiateur de la discussion cibleo
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

cibleo

XLDnaute Impliqué
Bonjour le forum,

Dans la colonne R, cette formule : =SI(Q2="";"";Q2-N2) traduite en VBA
Code:
ShtR.Cells(DerLiR, [COLOR=red]18[/COLOR]).FormulaR1C1 = "=IF(RC[-1]="""","""",RC[-1]-RC[-4])"

Dans la colonne U, cette autre formule : =SI(R2="";"";R2*0,85-S2-T2)
Code:
ShtR.Cells(DerLiR, [COLOR=blue]21[/COLOR]).FormulaR1C1 = "=IF(RC[-3]="""","""",RC[-3]*0.85-RC[-2]-RC[-1])"
Ces 2 instructions font partie d'une boucle Do...Loop While que j'aimerais supprimer.
Mais intégrer dans la macro ci-dessous sous forme de FormulaLocal.

Code:
Sub Calcul_H_Prise_Serv() 'PierreJean
DerLiR = Sheets("Synthese").Range("A65536").End(xlUp).Row
For n = 2 To DerLiR
 Range("N" & n).FormulaLocal = "=prise_serv(" & n & ")"
 Range("O" & n).FormulaLocal = "=lieu_heure(" & n & ")"
 'Range("[COLOR=red]R[/COLOR]" & n).[COLOR=green]FormulaLocal[/COLOR] =
 'Range("[COLOR=blue]U[/COLOR]" & n).[COLOR=green]FormulaLocal[/COLOR] =
Next n
End Sub
Comment puis-je les retranscrire ?

Cibleo
 
Re : FormulaR1C1 remplacé par FormulaLocal

Bonsoir,
A tout hasard
Code:
Sub Calcul_H_Prise_Serv() 'PierreJean
DerLiR = Sheets("Synthese").Range("A65536").End(xlUp).Row
For n = 2 To DerLiR
Range("N" & n).FormulaLocal = "=prise_serv(" & n & ")"
Range("O" & n).FormulaLocal = "=lieu_heure(" & n & ")"
Range("R" & n).FormulaLocal = "=SI(Q" & DerLiR & "="""";"""";Q" & DerLiR & "-N" & DerLiR & ")"
Range("U" & n).FormulaLocal = "=SI(R" & DerLiR & "="""";"""";R" & DerLiR & "*0,85-(S" & DerLiR & "-T)" & DerLiR & ")"
Next n
End Sub
A+
kjin
 
Re : FormulaR1C1 remplacé par FormulaLocal

Re bonsoir à tous,

Merci de m'avoir aiguiller Kjin 🙂, grâce à toi, j'ai fini par trouver.

Code:
Sub Calcul_H_Prise_Serv() 'PierreJean
DerLiR = Sheets("Synthese").Range("A65536").End(xlUp).Row
For n = 2 To DerLiR
Range("N" & n).FormulaLocal = "=prise_serv(" & n & ")"
Range("O" & n).FormulaLocal = "=lieu_heure(" & n & ")"
Range("R" & n).FormulaLocal = "=SI(Q" & n & "="""";"""";Q" & n & "-N" & n & ")"
Range("U" & n).FormulaLocal = "=SI(R" & n & "="""";"""";R" & n & "*0,85" & "-S" & n & "-T" & n & ")"
Next n
End Sub

Cibleo
 
Re : FormulaR1C1 remplacé par FormulaLocal

Bonjour le forum,
Bonjour kjin,

En bout de colonne R, j'ai la somme de la plage et donc la formule suivante : =SOMME($R$2:$R$5)

Traduite en VBA comme ceci :
Code:
Cells(DerLiR + 1, [COLOR=red]18[/COLOR]).FormulaLocal = "=SOMME(" & Cells([COLOR=blue]2[/COLOR], [COLOR=red]18[/COLOR]).Address & ":" & Cells([COLOR=green]DerLiR[/COLOR], [COLOR=red]18[/COLOR]).Address & ")"

Toujours en colonne R, j'aimerais retranscrire cette formule : =SOMMEPROD((JOURSEM(A2:A5;2)=3)*(R2:R5))
qui correspond à la somme des mercredis.

Code:
Cells(DerLiR + 2, [COLOR=red]18[/COLOR]).FormulaLocal = "=SOMMEPROD.........

Pouvez-vous m'aider, je m'y perds encore 😕
Cibleo
 
Re : FormulaR1C1 remplacé par FormulaLocal

Salut Cibleo

Dans le code, mieux vaut toujours qualifier l'utilisation du Range()
Code:
Sub Calcul_H_Prise_Serv()  'PierreJean
  With Sheets("Synthese")
    DerLiR = .Range("A65536").End(xlUp).Row
    For n = 2 To DerLiR
      .Range("N" & n).FormulaLocal = "=prise_serv(" & n & ")"
      .Range("O" & n).FormulaLocal = "=lieu_heure(" & n & ")"
      .Range("R" & n).FormulaLocal = "=SI(Q" & n & "="""";"""";Q" & n & "-N" & n & ")"
      .Range("U" & n).FormulaLocal = "=SI(R" & n & "="""";"""";R" & n & "*0,85" & "-S" & n & "-T" & n & ")"
    Next n
  End With
End Sub
Avec ce code on est certain que les cellules remplies sont celle située dans la feuille "Synthese"

Sinon pour ta dernière question
Code:
Range("R" & DerLiR + 2).FormulaLocal= "=SOMMEPROD((JOURSEM(A2:A5;2)=3)*(R2:R5))"
Je ne vois pas trop ou se situe le problème avec FormulaLocal 😕

A+
 
Re : FormulaR1C1 remplacé par FormulaLocal

Salut Bruno,

D'accord avec toi sur ce point :
Code:
Range("R" & DerLiR + 2).FormulaLocal=
J'ai oublié de préciser que la formule venait se placer au bout d'une plage dynamique.
Donc =SOMMEPROD((JOURSEM(A2:A?;2)=3)*(R2:R?)) soit jusqu'à la dernière ligne.

Dans mon élan, j'espère ne pas avoir posé une question stupide 😱

Cibleo
 
Re : FormulaR1C1 remplacé par FormulaLocal

Re,

Si plage dynamique, alors :
Code:
Range("R" & DerLiR + 2).FormulaLocal= "=SOMMEPROD((JOURSEM(A2:A" & DerLig & ";2)=3)*(R2:R" & DerLig & "))"

A+
 
Re : FormulaR1C1 remplacé par FormulaLocal

Re,

Cela me renvoyait une erreur #Nom# et ceci 😕
=SOMMEPROD((JOURSEM(A2:A;2)=3)*(R2:R))
Y avait une erreur de retranscription DerLig à la place de DerLiR.
Code:
Range("R" & DerLiR + 2).FormulaLocal = "=SOMMEPROD((JOURSEM(A2:A" & [COLOR=red]DerLiR[/COLOR] & ";2)=3)*(R2:R" & [COLOR=red]DerLiR[/COLOR] & "))"

Merci Bruno 😉

Cibleo
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
7
Affichages
829
Réponses
1
Affichages
1 K
N
Réponses
5
Affichages
3 K
Nicocotte125
N
G
  • Question Question
Réponses
3
Affichages
2 K
J
Réponses
4
Affichages
39 K
Johanes
J
M
Réponses
3
Affichages
2 K
C
  • Question Question
Réponses
1
Affichages
2 K
M
Réponses
9
Affichages
2 K
N
  • Question Question
Réponses
5
Affichages
3 K
R
Réponses
0
Affichages
6 K
R
J
Réponses
8
Affichages
2 K
L
Réponses
4
Affichages
2 K
Lorenzogazier
L
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…