Créer une fonction somme de fonction

Bonjour à tous,

J'ai aucune notion VBA, seulement un reste de cours d’algorithmique de prépa sur Caml.

Je vais essayer d'être clair : je voudrais faire une somme de fonction, mais cela n'a pas l'air d'exister sur excel..

donc la solution qui semble s'offrir à moi c'est mettre les mains dans le cambouis et créer une fonction avec VBA.....

je joins un fichier excel exemple donc je vais reprendre les numéros de casse du fichier.

j'ai une matrice de nombres brut (B4:D16 par exemple) dont je souhaite sommer certains terme.

la fonction que je cherche à sommer ici est donc la fonction INDIRECT.

j'ai une liste de nombre présent sur une ligne : H4, I4, J4, K4... (et cette liste peut être bien plus longue, ces nombres correspondent aux numéros des lignes de ma matrice à sommer).

j'ai un autre argument qui traine en H6 (qui correspond au numéro de colonne de la matrice à sommer).

(j espère que je n'ai perdu personne pour l'instant)

je voudrais que le résultat d'une case soit

R (H6 , H4:K4) = somme de I =H4 à K4 de ( INDIRECT (H6 , I ) )

ca n'a pas l'air compliqué mais je patauge :

  • pour moi l'argument d'une somme doit être un entier et la c'est une lettre...
  • j'ai l'impression que "le plus simple" serait de créer une fonction
R (H6, H4) =

créer un nombre a = 0

si H4 <> 0 alors a = a + INDIRECT(H6,H4) + R(H6, I4)

sinon a

"le plus simple" je sais pas ; mais c'est ce qui me vient à l'esprit pour l’instant

mais même cette fonction c'est juste impossible pour moi aujourd'hui de l’écrire en VBA

- outre le vocabulaire VBA que j'ignore encore totalement (même si j'ai pu voir quelques exemple de fonction) je n'arrive pas entre autre a concevoir l'incrémentation d'une lettre : comment passer de H à I...

si on choisit de ne pas passer par une incrémentation il faut définir la plage de donner dans les arguments de la fonction...

la encore comment faire?

PS: aujourd'hui pour faire ce calcul j'écris,

R=SI($H$4=0;0;INDIRECT("Feuil1!"&H6&$H$4))+SI($I$4=0;0;INDIRECT("Feuil1!"&H6&$I$4))+SI($J$4=0;0;INDIRECT("Feuil1!"&H6&$J$4))+SI($K$4=0;0;INDIRECT("Feuil1!"&H6&$K$4))

un peu chiant surtout quand ma liste de nombre s'agrandit...

voila je suis un peu dans le flou (...nan en fait on peut dire que je suis dans le flou total), j'ai du mal à aller chercher toutes les infos nécessaires alors j'en réfère ici à une âme charitable qui voudra bien m'aiguiller un peu

merci à tous et bonne soirée

Tom

bonsoir,

une proposition de fonction

Bonsoir @ tous,

Une formule matricielle,

=SOMME(SIERREUR(SOUS.TOTAL(9;INDIRECT(H6&H4:M4));))

@ valider par Ctrl+Maj+Entree

@ + +

R@chid le champion des formules matricielles

Bravo !

Bonsoir,

Fonctionne avec Calc, à tester avec Excel :

=SOMMEPROD(DECALER(B3;H4:M4;COLONNE(INDIRECT(H6&"1"))-2))

les cellules B3:D3 doivent être vide ou égales à 0.

ou :

=SOMMEPROD(RECHERCHEV(H4:M4;B3:D16;COLONNE(INDIRECT(H6&"1"))-1;0))

en rajoutant 0 en B3

ok vous êtes juste trop fort: super reactif; et ca marche nickel ; merci à vous deux !

et bonne soirée

à bientôt

Rechercher des sujets similaires à "creer fonction somme"