Macro pour passer des "somme.si" à des "sommeprod"

Bonjour,

Je vous soumets la problèmatique à laquelle je suis confrontée.

Je dispose d'un fichier ecxel contenant plusieurs (>1000) formules avec, entre autres, des SOMME.SI faisant intervenir des liens vers d'autres fichiers et je voudrais les faire passer en SOMMEPROD pour pouvoir actualiser mon fichier sans ouvrir les autres.

L'idée c'est de passer par une macro qui identifie les expressions :

Somme.si(Argument a; Argument b; Argument c)

et qui les remplace par :

Sommeprod( (Argument a=Argument b) * Argument c)

Je ne sais pas par quel bout commencer!!!

Merci d'avance pour votre aide

Bonjour,

Limite la conversion des somme.si() à la sélection (qui peut-être toute la feuille) :

Sub modifFormule()
    Dim c As Range, fo As String, arg As Variant
    For Each c In Selection
        fo = c.FormulaLocal
        If Left(fo, 9) = "=SOMME.SI" Then
            arg = Split(Mid(fo, 11, Len(fo) - 11), ";")
            c.FormulaLocal = "=SOMMEPROD((" & arg(0) & "=" & arg(1) & ")*(" & arg(2) & "))"
        End If
    Next c
End Sub

Bien sûr conserver une copie de l'original quelques jours (semaines)...

eric

Merci pour cette réponse elle me sera très utile!!

Rechercher des sujets similaires à "macro passer somme sommeprod"