Calcul suite de nombre

Bonjour ,

Je cherche a calculer la somme du produit de plusieurs suite de 2/3/4/5/6.....nombre d'une série de 31 nombre

- Sachant que lorsque le chiffre 0 apparaît la suite en cours est annulé et on reprend une nouvelle suite sur le nombre suivant.

- Sachant que lorsque la série se termine avec au moins un nombre en moins que la série demandé , celle ci est validé avec la série en cours

- Sachant que dés qu il y a une cellule vide on continu la suite au prochain nombre

Exemple:

série de 2 nombres:

C1*C2+C2*C3+(C4*C5=0 car C4=0)+C5*C6+......C29*C30+C31

Série de 3 nombres

C1*C2*C3+(C4*C5*C6=0 car C4=0)+C5*C6*C7+........C28*C29*C30+C31

Merci pour votre aide

10classeur1.xlsx (10.83 Ko)

Salut,

Ta demande est absolument incompréhensible : tu dis que tu veux effectuer le calcul C1*C2+C2*C3, etc., mais C1 comporte un titre et C2 et C3 sont vides !

Et puis tu as des informations dans ton fichier en colonne H qu'on ne sait pas trop à qui elles s'adressent ! Si c'est à nous, membres du Forum, reste sur ton fil pour nous les donner, autrement on les confond avec des instructions à l'attention de l'utilisateur futur de ton fichier.

Alors, que souhaites-tu exactement ?

Bonjour Sniperrm, le forum,

Voyez si la solution proposée dans le fichier joint peut vous aider

Salut,

En effet, mon fichier n est pas cohérent avec ce que j ai écrit.

Ne pas tenir compte de celui ci.

En fait je cherche une formule qui me permettra faire ce calcul comme ceci avec une serie de 2 multiplications.

C1×C2+C3×C4+C5×C6 OR (si c5=0 la suite de multiplication recommence sur la cellule d 'après) +c6×c7....c31.

J aimerais faire ça sur une serie de 3 et 4 multiplication.

sachant que cellule vide n annule pas la multiplication mais la fais continuer jusqu'au prochain nombre.

je pense qu il doit y avoir une règle qui doit dire stop il y a un 0 donc tu reprend après.

Est ce plus clair?

Bonjour,

série de 2 nombres:

C1*C2+C2*C3+(C4*C5=0 car C4=0)+C5*C6+......C29*C30+C31

Là tu reprends le dernier terme pour le multiplier par le suivant

Série de 3 nombres

C1*C2*C3+(C4*C5*C6=0 car C4=0)+C5*C6*C7+........C28*C29*C30+C31

Là non, sauf pour C5, C6 qui sont repris ?!?

Manque de sérieux et de rigueur dans la demande...
Je rejoins Yvouille pour dire que c'est n'importe quoi
eric

bonsoir,

une proposition, sur base de ce que j'ai compris de tes explications. solution via fonction personnalisée (vba).

8prodsomme.xlsm (17.58 Ko)

Bonjour NJUB,h2so4,

- La solution de NJUB serait a peaufiné car 2-3 condition semble manquer sur les formules.

- La solution de h2so4 me semble correct

h2so4, peut tu m expliquer comment tu a fait car si je copie la formule vers un autre fichier cela ne fonctionne pas.

MERCI

Rebonjour,J'ai réussi a importer les données de mon autre fichier Excel vers le fichier que h2so4 m'a modifier et c'est parfait.

Désoler pour l'explication qui n'était pas très clair pour tous le monde.

Merci a NJUB d'avoir pris le temps sur le fichier et merci a h2so4 d'avoir trouver la solution qui correspondait parfaitement a mes attentes

bonjour,

h2so4, peut tu m expliquer comment tu a fait car si je copie la formule vers un autre fichier cela ne fonctionne pas.

si tu veux utiliser cette fonction dans un autre classeur, il faut copier le code de la fonction dans cet autre classeur.

voici le code à copier dans un nouveau module.

Function prodsomme(r, n)
    ' fait la somme de produits de n termes consécutifs de la plage de nombres r
    ' si terme est vide, on prend le terme suivant
    ' si terme est nul, on annule le calcul de produit sur la série en cours eton commence une nouvelle série au terme suivant
    ' le dernier produit est ajouté même s'il n' a pas n termes dans son calcul
    '
    i = 1 'pointeur d'élément dans la plage
    ctr = 0 'compteur de termes
    somme = 0 ' somme résultante
    Do While i <= r.Count ' on parcourt la plage
        If r(i) <> "" Then 'si différent de vide
            If r(i) <> 0 Then 'si différent de 0
                ctr = ctr + 1 'ajout d'un terme à la série en cours
                If ctr = 1 Then
                    produit = r(i) 'si premier terme
                Else
                    produit = produit * r(i) ' si terme suivant
                End If
                If ctr = n Then
                    ctr = 0 'on réinitialise le compteur de termes
                    somme = somme + produit 'on ajoute le produit quand le nombre de terme est atteint
                End If
            Else  'si terme est 0
                ctr = 0 'on réinitialise le compteur
            End If
        End If
        i = i + 1 'on prend l'élément suivant de la plage
    Loop
    If ctr <> 0 Then somme = somme + produit ' si série finale incomplète, on ajoute le produit calculé à la somme
    prodsomme = somme 'renvoi du résultat  de la fonction.
End Function

pour insérer le code :

  • sélectionner le code sur le forum, le copier
  • aller en excel
  • faire alt-f11, pour ouvrir l'éditeur vba
  • faire insérer >module
  • coller le code
  • la fonction est disponible.
  • sauver le fichier avec macro.

Ok merci.

Et si je veux calculer le nombre de produit utiliser pour cette formule, je doit sûrement garder cette base et que doit je modifier? Du genre.

C1×c2×c3+c4×c5×c6+.....+c30

1......................2................ . ..x

bonjour,

désolé pour cette réponse tardive, je n'avais pas mis ce sujet en sujet suivi et je n'ai donc pas vu immédiatement qu'il y avait une réaction.

j'ai adapté la fonction personnalisée pour qu'elle renvoie au choix soit la somme des produits, soit leur nombre, voir exemple

3prodsomme.xlsm (17.79 Ko)

dans le fichier.

Super tu gère merci beaucoup

Rechercher des sujets similaires à "calcul suite nombre"