Modifier formule en VBA pour lignes différentes

Emini2017

XLDnaute Nouveau
Bonjour à tous!
Ça fait plusieurs jours que j'essaie de résoudre mon problème et je ne trouve aucune solution dans aucun forum... alors j'ai décidé de demander aux experts ;)

Voila, c'est que j'ai pour au dessus de 100 000 lignes de formules à changer en ajoutant une partie de code au début et à la fin et chacune de ces lignes sont différentes.. alors je ne peux donc pas imbriquer mon code pour qu'il se met automatiquement sur chaque ligne.

Voici à quoi ressemble mes lignes:
=MOYENNE(SI(S2014645A!$MO$5:$MO$8490=1;SI(S2014645A!$E$5:$E$8490="m";SI(S2014645A!$G$5:$G$8490>=40;SI(S2014645A!$G$5:$G$8490<50;S2014645A!$S$5:$S$8490;"");"");"");""))

Les parties en rouges changent pour chaque ligne (m=masculin et f=féminin et 40 et 50 sont des intervalles d'âges) et la partie en bleu change à chaque 50 lignes environs (ce sont des catégorie).

Je veux changer ces lignes pour rajouter ceci:
=MOYENNE(SI(S2014645A!$MO$5:$MO$8490=1;SI(S2014645A!$H$5:$H$8490=1;SI(S2014645A!$E$5:$E$8490="m";SI(S2014645A!$G$5:$G$8490>=40;SI(S2014645A!$G$5:$G$8490<50;S2014645A!$S$5:$S$8490;"");"");"");"");"")).

Voici le code que j'ai essayé de faire mais j'ai toujours un message d'erreur 1004 à cause du ";".. (D’où la raison pour laquelle j'ai décidé de mettre la nouvelle section dans une variable maVal... et je ne suis même pas rendu à mettre le " ;"") " encore car le premier ajout ne fonctionne pas...

Sub Macro2()

Dim i As Single
Dim sht As Worksheet
Dim maVal As String
maVal = ";SI(S2014645A!$H$5:$H$8490=1"


Set sht = ThisWorkbook.Worksheets("MÉD RMB")

With sht
For i = 1 To 49 (*J'essaie pour l'instant que les 50 premières lignes pour être sur que ça fonctionne)
' .Cells(i, 5).Formula = .Cells(i, 4).Formula

.Range("E49").FormulaLocal = Replace(.Range("E49").FormulaLocal, "(SI(S2014645A!$MO$5:$MO$8490=1", "(SI(S2014645A!$MO$5:$MO$8490=1" & maVal) (Ici je n'essaie qu'avec une cellule pour voir mais je devrais mettre .Cell(i,5).FormulaLocal ... sauf si vous me dite que ça ne fonctionne pas)
' .Range("E49").FormulaArray = .Range("E49").FormulaLocal
Next i
End With
End Sub

HELP. Mercii :)
 

Emini2017

XLDnaute Nouveau
J'avais cru comprendre qu'en utilisant .FormulaLocal, je pouvais garder ";" et aussi garder mes SI(...). .. non?
 

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas