Fonctions SOMME et SI selon la feuille précédente

Bonjour,

Encore au prémisse de l'utilisation au vue des possibilités exponentielle d'excel je viens vers vous pour m'aider dans mon travail.

J'ai un fichier de suivi de production, il fonctionne par campagne. Je dois faire le total de la campagne produite chaque jour en produit fini (PF) par équipe (chaque onglet correspond a une équipe), et ensuite faire le total de la campagne toutes équipes confondus. Ainsi, si la campagne dure pendant p^plusieurs jours ou semaine, je dois faire une somme du total de PF sur tous les autres onglets précédents de la même campagne pour avoir le total.

J'aimerai automatisé la chose en utilisant une somme cumulé sur chaque nouvelle onglet pour avoir la qté de PF à l'instant t.

C'est difficile à expliqué mais si je devais exprimer la fonction en français ce serait cela :

"Si le numéro de campagne écrit en B12 sur chaque feuille est le même que la feuille précédente alors faire la somme de D47 de la feuille précédente avec D43 de la feuille actuelle en D47, sinon D47 = D43"

Je vous joint le fichier pour une meilleur compréhension..

Merci pour votre temps,

Cordialement,

Rynou

Bonjour Rynou et bienvenue,

voici un exemple,

Function PF()
x = ActiveSheet.Previous.Name
If Range("B12") = Sheets(x).Range("B12").Value Then
    PF = Sheets(x).Range("D47") + Range("D43")
Else
    PF = Range("D43")
End If
End Function

Bonjour,

Merci beaucoup pour ta bienvenue.

Et merci pour ton aide, cependant je n'arrive pas à la faire fonctionner.. ci-joint le fichier ou j'ai mis la fonction/macros

onglet 3.

Cordialement,

Rynou

re,

en cellule D47 inscrit la formule

=PF()

Bonjour,

Merci beaucoup, ça fonctionne presque parfaitement. En effet la macro fonctionne lorsque j'inscris =pf() en D47.

cependant je dois a chaque nouvelle feuille que je copie comme la précédente réinscrir "=pf()" en d47 pour que cela fonctionne. cela n'est pas automatique directement. Par conséquent ça m'oblige quand même à passer feuille par feuille pour "mettre en route" la macro. J'espère avoir été assez clair ?

Cordialement,

Rynou

re,

pour faire la manif en une seule fois,

Sub test()
For i = 2 To Worksheets.Count
   With Sheets(i)
    x = .Previous.Name
    If .Range("B12") = Sheets(x).Range("B12").Value Then
        .Range("D47") = Sheets(x).Range("D47") + .Range("D43")
    Else
        .Range("D47") = .Range("D43")
    End If
Next
End Sub

Bonjour !

J'ai donc essayer votre solution mais un message s'affiche : " Erreur de compilation: Next sans For"

Comment se fait il ?

Cordialement,

Rynou

re,

voici la correction,

Sub test()
For i = 2 To Worksheets.Count
   With Sheets(i)
    x = .Previous.Name
    If .Range("B12") = Sheets(x).Range("B12").Value Then
        .Range("D47") = Sheets(x).Range("D47") + .Range("D43")
    Else
        .Range("D47") = .Range("D43")
    End If
   End With
Next
End Sub

Bonjour,

Désole du retard. Je voulais juste vous remercier car tout fonctionne très bien.

Rynou

Merci pour ce retour, au plaisir!

bl
Rechercher des sujets similaires à "fonctions somme feuille precedente"