Souci pour passer formule en code VBA

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

rudymagny

XLDnaute Occasionnel
Bonjour à tous XLDnautes,
Voilà je reviens à vous pour un petit souci de formule en VBA dans une boucle WITH.

Voilà, dans le cadre de mon boulot, je calcul des indicateurs (mensuel et cumul annuel)

J'ai mis un fichier exemple en pièce jointe.

Dans ma feuille j'ai les 12 mois de l'année et les indicateurs mensuels en formule et en VBA mais pour le cumul annuel, je n'ai que la formule et je n'arrive pas à la transcrire en VBA .

Vous pourrez vois les formules et j'ai un module contenant le code VBA que j'ai fait avec l'aide de _Thierry il y a un petit moment déjà.

Merci d'avance
 

Pièces jointes

Re : Souci pour passer formule en code VBA

Rebonjour,
J'ai essayé de faire quelque chose comme ça mais je pense que 'j' ne plais pas à la formule en VBA:

Sub Indicateur_TVAL225()
'Aide de _Thierry sur XLD
Dim i As Byte
Dim j As Byte

With Sheets("Feuil1")
.Range("C20:N21").ClearContents
i = 2
j = 1
i = i + 1
j = j + 1
'Calcul des pourcentages autres Niv. U ttes modifs confondues
.Cells(20, i).Formula = "=IF(ISERROR(R[-1]C/R[-2]C),""SO"",R[-1]C/R[-2]C)"

.Cells(21, i).Formula = "=IF(ISERROR(SUM(R[-2]C[-j]:R[-2]C)/SUM(R[-3]C[-j]:R[-3]C)),""SO"",SUM(R[-2]C[-j]:R[-2]C)/SUM(R[-3]C[-j]:R[-3]C))"

End With
End Sub

que dois je faire d'après vous?

Merci d'avance
 
Re : Souci pour passer formule en code VBA

Salut RudyMagny,

Je serais toi, j'utiliserais en VBA un FormulaLocal plutôt qu'un Formula tout court.

Cela permet de rentrer les formules saisies dans ta cellule, directement dans ton code.
Code:
Sub Indicateur_TVAL225()
  With Sheets("Feuil1")
    .Range("C20:N21").ClearContents
    '
    .Range("C20").FormulaLocal = "=SI(ESTERREUR(C19/C18);""SO"";C19/C18)"
    .Range("C20:N20").FillRight
    '
    .Range("C21").FormulaLocal = "=SI(ESTERREUR(C19/C18);""SO"";C19/C18)"
    .Range("D21").FormulaLocal = "=SI(ESTERREUR(SOMME(C19:D19)/SOMME(C18:D18));""SO"";SOMME(C19:D19)/SOMME(C18:D18))"
    .Range("D21:N21").FillRight
  End With
End Sub

Tu fais ensuite un recopier vers la droite et le tour est joué, du moins je pense 😉

Voilà le fichier avec la macro modifiée.
 

Pièces jointes

Re : Souci pour passer formule en code VBA

Bonsoir BrunoM45, je répond un peu tard, désolé.

Dans un premier temps je dormirais moins C.. ce soir , je ne connaissais pas le FormulaLocal, j'utilisais l'enregistreur de macro comme tu le connais bien!!

ça va bien m'aider déjà!

Mon problème n'est qu'en partie résolu, car ce code ne fait que copier la même formule à chaque cellule, et moi, la formule est différente car à partir de la 2ème cellule, je récupére le résultat de la précédente:

ça donnerais ça si je n'utilisais pas de boucle:
=SI(ESTERREUR(SOMME(C19😀19)/SOMME(C18😀18));"SO";SOMME(C19😀19)/SOMME(C18😀18))
=SI(ESTERREUR(SOMME(C19:E19)/SOMME(C18:E18));"SO";SOMME(C19:E19)/SOMME(C18:E18))
=SI(ESTERREUR(SOMME(C19:F19)/SOMME(C18:F18));"SO";SOMME(C19:F19)/SOMME(C18:F18))

comme ça jusqu'à N.
Je vais essayé de trouver mais j'aurais , je pense, d'un coup de main quand même.

Merci beaucoup
 
Re : Souci pour passer formule en code VBA

Re,

Il transforme une coordonnée relative en absolue. Ainsi, si tu fais un copier glisser, la coordonnée placée juste derriére le $ ne changera jamais.

@+ sur le forum

Ninb

Et c'est en sciant que Léonard devint scie... pardon, excusez moi
 
Dernière édition:
Re : Souci pour passer formule en code VBA

Ah OK!

Je tiens à vous remercier ninbihan et BrunoM45 pour votre aide ce soir.

Et aussi encore merci à _Thierry pour l'aide qu'il m'a donner il y a déjà un moment pour mes calculs d'indicateur!

ça m'a vraiment fait gagner du temps.

Merci beaucoup et bonne soirée!
 
- 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

Discussions similaires

Réponses
18
Affichages
514
Retour