Résolu FormulaR1C1 et variables

Almanzor

Nouveau membre
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
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
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.
Derniers messages publiés
Statistiques globales
Discussions
730 126
Messages
6 717 808
Membres
1 586 365
Dernier membre
matiOs1
Partager cette page
Haut