Résolu FormulaR1C1 et variables

Almanzor

Nouveau membre
#1
Bonjour tout le monde,

Je souhaite utiliser une variable dans FormulaR1C1 et je n'obtiens que du stress.

Je joins partie du code ci-après.

La variable : Mvt, est dûment déclarée.

Si quelqu'un veut bien regarder, je lui suis reconnaissant.

Merci.

Sub Périodicité()
'
Dim Mvt As Integer
Dim Col As Integer

For Col = 5 To 20
Cells(52, Col).Select
Mvt = 0
Pér = ActiveCell.Value
ActiveCell.Offset(1, 0).Select
ActiveCell.FormulaR1C1 = "=(-1)*PMT(R[-37]C[-Mvt]/R[-1]C,R[-39]C[-Mvt]*R[-1]C,R[-41]C[-Mvt])"
Mvt = Mvt + 1
..........etc
 

drul

Obscur pro du hardware
Staff
#2
Salut, alors oui, mais non ...
Tout ce qui est entre "" est du TEXTE donc Mvt ne va pas être remplacé...
Ce que tu veux faire est plutôt:
Code:
ActiveCell.FormulaR1C1 = "=(-1)*PMT(R[-37]C[-" & Mvt & "]/R[-1]C,R[-39]C[-" & Mvt &"]*R[-1]C,R[-41]C[-" & Mvt &"])"
L'opérateur & permettant de concaténer deux chaine de caractère. Vba étant assez permissif, il n'est heureusement pas nécessaire de tranformer Mvt en srting.

Quelque remarque:
1) Evite les "é" en vba souvent problématique si tu échanges tes fichiers
2) Cell.select est à eviter, utilise directement la cellule dont tu as besoin.

ce qui donnerais ici:
Code:
For Col = 5 To 20
Mvt = 0
Per = Cells(52, Col).Value
Cells(53, Col).FormulaR1C1 = "=(-1)*PMT(R[-37]C[-" & Mvt & "]/R[-1]C,R[-39]C[-" & Mvt & "]*R[-1]C,R[-41]C[-" & Mvt & "])"
 

Almanzor

Nouveau membre
#3
Bonjour,

J'ai ajouté "(s) et &(s) où il fallait comme tu me l'as dit.

Miracle

Donc un grand merci pour ton aide.

Ben àtoi.
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Staff en ligne
  • vince1053
    Modérateur
Membres en ligne
  • erendyll
  • Yama310
  • _Othy_
  • vince1053
Derniers messages publiés
Statistiques globales
Discussions
869 202
Messages
8 105 741
Membres
1 579 735
Dernier membre
madani mohamed
Partager cette page
Haut