Convertir formules en VBA

350dr

XLDnaute Junior
Bonjour le forum.

Je fais encore appel à vous pour m’aider à convertir des formules en VBA.
Je m’explique :
Je souhaiterais grâce au bouton « calculer » effectuer les opérations des cellules I.
Dans l’exemple je les calcule sur les cellules F2 à F30 mais le nombre de résultats n’est jamais le même car juste avant j’exécute un filtre en VBA (merci à PHLaurent et Job75) de plus je supprime une dizaine de colonnes inutiles (toujours en VBA) donc je dois obligatoirement les recalculer via une macro (sinon ma macro de suppression de colonnes les supprime).


Merci de votre aide.
 

Pièces jointes

  • conversion formule.xls
    39 KB · Affichages: 57

job75

XLDnaute Barbatruc
Re : Convertir formules en VBA

Bonjour 350dr,

Code:
Sub Formules()
[I4] = "=COUNT(F:F)"
[I6] = "=IF(ISERR(AVERAGE(F:F)),"""",AVERAGE(F:F))"
[I8] = "=IF(ISERR(STDEV(F:F)),"""",STDEV(F:F))"
[I10] = "=IF(ISERR(I8*100/I6),"""",I8*100/I6)"
[I12] = "=MIN(F:F)"
[I13] = "=MAX(F:F)"
[I15] = "=IF(ISERR(I6-2*I8),"""",I6-2*I8)"
[I16] = "=IF(ISERR(I6+2*I8),"""",I6+2*I8)"
End Sub
Il n'y a pas besoin de limiter la plage en colonne F.

A+
 

youky(BJ)

XLDnaute Barbatruc
Re : Convertir formules en VBA

Bonsoir 350dr,
Voici une macro qui mets le résultat en dur.
J'ai mis qu'une ligne pour effacer si besoin les....#DIV/0 ou autres(exemple facile à reprendre)
Bruno
Code:
Sub My_formula()
'[I4] = Application.Subtotal(3, [F:F]) - 1' si filtre
[I4] = Application.CountA([F:F]) - 1
[I6] = Application.Average([F:F])
If Not IsNumeric([I6]) Then [I6] = ""
[I8] = Application.StDev([F:F])
[I10] = [I8] * 100 / [I6]
[I12] = Application.Min([F:F])
[I13] = Application.Max([F:F])
[I15] = [I6] - 2 * [J8]
[I16] = [I6] + 2 * [J8]
End Sub
 

Statistiques des forums

Discussions
312 428
Messages
2 088 324
Membres
103 813
dernier inscrit
Lolo280277