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
  • PriceTF141
    Modo hardware RGB
Membres en ligne
  • daw0331
  • Reinhardt aria
  • JIEF2
  • SergioVE
  • Thaumazein
  • PriceTF141
Derniers messages publiés
Statistiques globales
Discussions
866 648
Messages
8 070 948
Membres
1 577 192
Dernier membre
LicornePaillettesGaming
Partager cette page
Haut