Formule dans une macro

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

S

SWEAT

Guest
Bonjour le forum,

Je cherche à fair une macro qui met à jour une formule dans une cellule.
Je m'explique, j'ai en cellule A2 la formule suivante : "=B205/CF41-1"
C'est à dire, cellule B205 divisé par cellule CF41.

Je cherche à ce que, quand je lance ma macro, il écrive, toujours en cellule A2, la formule suivante :"=B206/CF41-1", puis si je relance une nouvelle fois la macro il écrive en cellule A2, "=B207/CF41-1", ce qui veut dire qu'à chaque fois que je lance ma macro il mette à jour la formule en cellule A2 pour que la formule change avec B206, B207, B208 etc...

Merci à tous de votre aide !
 
salut sweat,

essaye ça dans ta macro

i = i + 1
Sheets("feuil1").Cells(2, 1).FormulaLocal = "=B" & Trim(204 + i) & "/CF41-1"

attention, il faut garder en memoire ton indice i entre 2 lancement macro sinon tu recomence toujours sur la meme cellule...

@+
jef
 
Salut Sweat, Jef, le forum,

Je te propose aussi ça :

Sub Macro1()
x = Mid(Range("A2").Formula, 3, 3) 'récupère la valeur de B dans la formule actuelle
Range("A2").Formula = "=B" & x + 1 & "/CF41-1" 'l'incrémente dans la nouvelle formule
End Sub

Attention la macro va planter dès que tu atteindras la cellule B1000...

À plus,

Robert
 
Re salut Sweat, Jef, le forum,

Je ne comprends pas car au boulot ou chez moi avec Windows XP et Excel 2000 ça fonctionne...
Essaie cette nouvelle version FormulaR1C1 qui couvre toutes des cellules de B100 jusqu'à B65536 :

Sub Macro1()
Dim x As Long
Select Case Len(Range("A2").Formula) 'nombre de caractères de la formule
Case 12 'jusqu'à B999
x = Mid(Range("A2").Formula, 3, 3) 'récupère la valeur de B dans la formule actuelle
Range("A2").FormulaR1C1 = "=R[" & x - 1 & "]C[1]/R[39]C[83]-1" 'l'incrémente dans la nouvelle formule
Case 13 'jusquà B9999
x = Mid(Range("A2").Formula, 3, 4) 'récupère la valeur de B dans la formule actuelle
Range("A2").FormulaR1C1 = "=R[" & x - 1 & "]C[1]/R[39]C[83]-1" 'l'incrémente dans la nouvelle formule
Case 14 'jusqu'à B65536
x = Mid(Range("A2").Formula, 3, 5) 'récupère la valeur de B dans la formule actuelle
Range("A2").FormulaR1C1 = "=R[" & x - 1 & "]C[1]/R[39]C[83]-1" 'l'incrémente dans la nouvelle formule
End Select
End Sub

À plus,

Robert
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
2
Affichages
290
Réponses
5
Affichages
222
Retour