Faire une moyenne des données de 5 à 6 feuilles différentes

Bonjour le forum,

Je souhaite faire un rapport hebdomadaire des moyennes de productions de chaque collaborateurs (sur 5 ou 6 jours suivant les semaines).

J'ai donc fait un Userform avec 6 cases ou j'y inscris le titre de mes feuilles dans lesquelles recueillir les données sur les productions de chaque collaborateur.

Quand j'appuie sur Valider dans ce Userform, il me crée une autre feuille que je nomme (qui sera mon report hebdomadaire).

Je n'arrive pas à faire plusieurs choses :

- Une boucle partant de la première feuille jusqu'à la dernière feuille inscrite dans le Userform afin de repérer tous les identifiants présents dans les 5 ou 6 feuilles et de les inscrires (s'ils ne le sont déja pas) dans les tableaux correspondants (il y'en à trois : CARISTE / RECEPTION / EXPEDITION). Si possible faire la même chose pour mettre "Total général" à la fin de tous les identifiants.

-Une boucle permettant de stocker les valeurs prods d'un collaborateur sur les 5 ou 6 feuilles (représentant chacune les jours de la semaine), afin d'inscrire la moyenne de ces prods dans la feuille créée, en face de son identifiant. (Il faudrait que la moyenne prenne en compte le nombre de feuille sur lequel est présent le collaborateur : s'il n'a était présent qu'un jour, faire sa moyenne sur 1 jour et pas 5).

J'ai déjà avancé un petit peu sur le code mais je bloque :(.

Bonjour

Une proposition avec quelques changements. pour la sélection des feuilles j'ai créé un formulaire que je trouve plus pratique. Il nécessite que les feuilles à traiter soient correctement nommées (2 chiffres au début du nom). La structures des feuilles ne doit pas être modifiée.

Bonjour,

Merci beaucoup d'avoir pris le temps c'est top.

Cependant est-ce possible de dupliquer la feuille "BILAN" pour pouvoir en créer plusieurs sur le fichier(laisser une feuille bilan fixe au debut du classeur), et également divisé les prods par le nombre de feuilles compilées ? (pour avoir la moyenne par heure sur la semaine)

J'essaye de faire ça aussi de mon coté :)

Merci encore beaucoup !

Bonjour

Cependant est-ce possible de dupliquer la feuille "BILAN" pour pouvoir en créer plusieurs sur le fichier(laisser une feuille bilan fixe au debut du classeur)

Voilà une version qui fait cela par contre pour

également divisé les prods par le nombre de feuilles compilées ? (pour avoir la moyenne par heure sur la semaine)

je ne comprends pas très bien. Que faudrait-il diviser? Chaque ligne du bilan? Dans ce cas que se passe t'il si un nom ne figure pas sur toutes les feuilles?

Il faudrait faire un sérieux ménage dans l'ensemble mais comme je ne sais pas quoi servent ou comment sont fabriquées les différentes feuilles ou tables je n'ose pas trop y toucher. Idem pour les macros.

Bonjour,

Merci de ton aide, j'ai compléter la solution de mon coté en m'aidant largement de ton code :).

Je serais curieux de voir ce que tu as fais

Pour copier les données dans une feuille "BILAN" annexe j'ai pris le code suivant :

Dim s As String
Dim iz As Integer

 s = _
InputBox("Veuillez saisir le nom de la feuille!", _
"Attribuer des noms de feuille", "Feuil1")
If s = "" Then Exit Sub
  iz = Sheets.Count
  On Error Resume Next
  Sheets(5).Copy After:=Worksheets(5)
ActiveSheet.Name = s

    With ActiveSheet.UsedRange
        .Value = .Value
    End With
        With Sheets(6)
        ActiveSheet.Shapes.Range(Array("CommandButton22")).Select
        Selection.Delete
        ActiveSheet.Shapes.Range(Array("CommandButton21")).Select
        Selection.Delete
        ActiveSheet.Shapes.Range(Array("CommandButton23")).Select
        Selection.Delete
        End With

Je te renvoi le fichier si tu veux regarder de ton coté, si tu as quelques conseils à me donner je suis preneur ( j'essaye d'apprendre mais c'est pas simple).

Comme tu l'as dit, je souhaiterais divisé la productivité par le nombre de feuille ou sont présents les identifiants pour ne pas diviser leur prod par 5 (jours) alors qu'ils n'ont été présents que 4 jours dans la semaine.

Précision : Chacun de ces tableaux représentent une partie de l'activité, cependant une personne peut faire plusieurs postes ou activités dans la journée et donc se retrouver dans plusieurs tableaux.

1prod-pepsi.xlsm (162.90 Ko)

Tout d'abord quelques observations sur les différences entre nos deux codes.
Dans le mien le nommage des feuille hebdo est automatique ça fait de la saisie en ce qui me semble un léger avantage et surtout ça évite les nommages exotiques ou les fautes de frappe. De plus le nom de la feuille correspond à la période considérée ce qui aide à s'y retrouver. L'entête de la feuille correspond aux dates de la période ce qui est plus précis que le numéro de semaine surtout si l'on considère que dans ton fichier la période est à cheval sur deux semaines (sauf erreur le 9 septembre 2022 était un vendredi).
La suppression des boutons est plus fiable avec ma méthode. Si pour une raison quelconque tu remplaces un bouton il n'aura peut-être plus le même nom.

J'ai ajouté une procédure pour le comptage des jours sur un poste mais en fait ça ne règle rien car pour être juste il faudrait prendre en compte le temps passé à chaque poste.

Merci pour ton message et pour la procédure de comptage des jours, je sais bien qu'il faudrait des temps précis (badge) à chaque poste mais nous n'avons pas encore ca en place malheureusement pour avoir une représentation réelle des prods.

J'essaye de remplacer les valeurs dans la range C5:C48 du tableau selon les échelons de primes selon cette échelle.

Exemple : Si la cellule traitée dans la boucle contient la valeur 19, je remplace cette valeur par 26 (montant de la prime).

Si la cellule traitée dans la boucle contient la valeur 25, je remplace cette valeur par 104(montant de la prime).

image
Sub Primes()

Dim CEL As Range
Dim rngg As Range

Set rngg = Sheets(6).Range("C5:C48")
For Each CEL In rngg

If CEL < 18 Then CEL = ""
If CEL > 18 And CEL < 21 Then CEL = 26
If CEL > 26 Then CEL = 130
Next CEL
End Sub

Voici le code que j'ai fait mais il ne reconnait pas les valeurs qui se situent entre 18 et 21 par exemple...

J'essaye de remplacer les valeurs dans la range C5:C48 du tableau selon les échelons de primes selon cette échelle.

De quel tableau?

Une version qui corrige un petit bug de la version 3. La ligne "Total général" se retrouvait au milieu des noms.

Rechercher des sujets similaires à "moyenne donnees feuilles differentes"