XL 2019 Aide formule R1C1

  • Initiateur de la discussion Initiateur de la discussion netparty
  • 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 !

netparty

XLDnaute Occasionnel
Bonjour à tous

J'essaye de transformer ma formule au formatR1C1 pour l'intégrer dans une macro, mais je n'y arrive pas.
voici ma formule :
=SI(ET($J31="SLA12";$K31="NON CRITIQUE";M31>MOIS.DECALER($L31;BONUS!$E$14));ARRONDI.SUP($M31-(MOIS.DECALER($L31;BONUS!$E$14));0)*BONUS!$C$14;"")

j'ai essayé comme ceci :
Range("O" & i).FormulaR1C1 = "=IF(AND(rc10=""SLA12"",rc11=""NON CRITIQUE"",rc13>EDATE(rc12,BONUS!R14C5)),ROUNDUP(rc13-(EDATE(rc12,BONUS!r14c5)),0)*BONUS!r14c3,""""))"

Merci d'avance

Bonne journée à tous
 
Bonjour à tous

J'essaye de transformer ma formule au formatR1C1 pour l'intégrer dans une macro, mais je n'y arrive pas.
voici ma formule :
=SI(ET($J31="SLA12";$K31="NON CRITIQUE";M31>MOIS.DECALER($L31;BONUS!$E$14));ARRONDI.SUP($M31-(MOIS.DECALER($L31;BONUS!$E$14));0)*BONUS!$C$14;"")

j'ai essayé comme ceci :
Range("O" & i).FormulaR1C1 = "=IF(AND(rc10=""SLA12"",rc11=""NON CRITIQUE"",rc13>EDATE(rc12,BONUS!R14C5)),ROUNDUP(rc13-(EDATE(rc12,BONUS!r14c5)),0)*BONUS!r14c3,""""))"

Merci d'avance

Bonne journée à tous
Bonjour,

Pour une plage donnée
Exemple
Code:
Sub TesT()
    Dim Plage
    Set Plage = [O10:O20]
    Plage.FormulaLocal = "=SI(ET($J31=""SLA12"";$K31=""NON CRITIQUE"";M31>MOIS.DECALER($L31;BONUS!$E$14));ARRONDI.SUP($M31-(MOIS.DECALER($L31;BONUS!$E$14));0)*BONUS!$C$14;"""")"
End Sub
 
Bonjour,

Dans ces cas là, sélectionnez une cellule qui contient la formule, puis dans l'éditeur de macro (VBE) dans la fenêtre d'exécution (CTRL+G si elle n'est pas ouverte) tapez le texte suivant (y compris le ?) :

?ActiveCell.FromulaR1C1
Validez par entrée et vous verrez s'afficher votre formule telle qu'elle doit être écrite.
Doublez les "" internes de la formule

=IF(AND(R[28]C10="SLA12",R[28]C11="NON CRITIQUE",R[28]C[-1]>EDATE(R[28]C12,BONUS!R14C5)),ROUNDUP(R[28]C13-(EDATE(R[28]C12,BONUS!R14C5)),0)*BONUS!R14C3,"")
Mais vba n'exige pas le R1C1 vous pouvez également faire :

? Activecell.Formula
et vous aurez :
=IF(AND($J31="SLA12",$K31="NON CRITIQUE",M31>EDATE($L31,BONUS!$E$14)),ROUNDUP($M31-(EDATE($L31,BONUS!$E$14)),0)*BONUS!$C$14,"")
que vous pourrez mettre dans Range("O" & i).Formula

Par contre .Formula est préférable à .FormulaLocal (qui voyagera très mal d'un système fr vers d'autres systèmes)

Cordialement
 
Bonjour,

Dans ces cas là, sélectionnez une cellule qui contient la formule, puis dans l'éditeur de macro (VBE) dans la fenêtre d'exécution (CTRL+G si elle n'est pas ouverte) tapez le texte suivant (y compris le ?) :

?ActiveCell.FromulaR1C1
Validez par entrée et vous verrez s'afficher votre formule telle qu'elle doit être écrite.
Doublez les "" internes de la formule


Mais vba n'exige pas le R1C1 vous pouvez également faire :

? Activecell.Formula
et vous aurez :

que vous pourrez mettre dans Range("O" & i).Formula

Par contre .Formula est préférable à .FormulaLocal (qui voyagera très mal d'un système fr vers d'autres systèmes)

Cordialement
merci Roblochon
 
Re,

Quelle boucle ?

Sur une plage de cellule elle incrémentera lignes et colonnes idoines.
Range("A1:A10").Formula ="=IF(AND($J31=""SLA12"",$K31=""NON CRITIQUE"",M31>EDATE($L31,BONUS!$E$14)),ROUNDUP($M31-(EDATE($L31,BONUS!$E$14)),0)*BONUS!$C$14,"""")"

$J31 en A1 deviendra $J32 en A2

Cordialement
 
Re,

Quelle boucle ?

Sur une plage de cellule elle incrémentera lignes et colonnes idoines.
Range("A1:A10").Formula ="=IF(AND($J31=""SLA12"",$K31=""NON CRITIQUE"",M31>EDATE($L31,BONUS!$E$14)),ROUNDUP($M31-(EDATE($L31,BONUS!$E$14)),0)*BONUS!$C$14,"""")"

$J31 en A1 deviendra $J32 en A2

Cordialement
Re..
Certes OUI
Mais il est donné ==>Range("O" & i).Formula
Et là, c'est bien une boucle, non?
 
Dernière édition:
Re,
Certes Oui,
Mais on ne connaît pas le reste du projet ni de quelle incrémentation il s'agit ni le pourquoi du comment. Rien ne nous dit que i n'est pas alimenté par autre chose qu'une boucle (Textbox, inputBox etc.)
Puisque vous semblez connaître l'ensemble du problème, êtes sûr que c'est la meilleure solution, et que je ne goûte pas à ce genre de tergiversation, qui pollue les fils, je vous laisse là.
 
Dernière édition:
- 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

Retour