XL 2016 macro pour éviter Si imbriqué (Résolu)

Nicolas Michel

XLDnaute Nouveau
Bonjour à tous,

j'aimerai faire un report des temps de production de chaque personne.
Comme on peut le voir dans le fichier, pour chaque client, j'ai le nombre de :
Commandes
Poids
Colis
Temps
Nom préparatrice

j'ai besoin d'avoir le total de chaque donnée par jour pour chaque préparatrice.

j'ai réussi a faire une formule SI imbriqué imbriqué imbriqué ... =+SI($C$10=AJ$3;C6;0)+SI($D$10=AJ$3;$D6;0)+SI($E$10=AJ$3;$E6;0)+SI($F$10=AJ$3;$F6;0)+SI($G$10=AJ$3;$G6;0)+SI($H$10=AJ$3;$H6;0)+SI($I$10=AJ$3;$I6;0)+SI($J$10=AJ$3;$J6;0)+SI($K$10=AJ$3;$K6;0)+SI($L$10=AJ$3;$L6;0)+SI($M$10=AJ$3;$M6;0)+SI($N$10=AJ$3;$N6;0)+SI($O$10=AJ$3;$O6;0)+SI($P$10=AJ$3;$P6;0)+SI($Q$10=AJ$3;$Q6;0)+SI($R$10=AJ$3;$R6;0)+SI($S$10=AJ$3;$S6;0)+SI($T$10=AJ$3;$T6;0)+SI($U$10=AJ$3;$U6;0)+SI($V$10=AJ$3;$V6;0)+SI($W$10=AJ$3;$W6;0)+SI($X$10=AJ$3;$X6;0)+SI($Y$10=AJ$3;$Y6;0)+SI($Z$10=AJ$3;$Z6;0)+SI($AA$10=AJ$3;$AA6;0)+SI($AB$10=AJ$3;$AB6;0)+SI($AC$10=AJ$3;$AC6;0)+SI($AD$10=AJ$3;$AD6;0)+SI($AE$10=AJ$3;$AE6;0)+SI($AF$10=AJ$3;$AF6;0)+SI($AG$10=AJ$3;$AG6;0)

Le problème c'est que je dois la modifier tous les SI pour chaque Client !!! de plus ça me donne le temps au moi et pas par jour !

Ce que j'ai besoin vraiment c'est sur la feuille Report, d'avoir par jour le temps de chaque préparatrice.

Pourriez vous m'aider?
 

Pièces jointes

  • Suivi production-test.xlsm
    34.4 KB · Affichages: 14
Dernière édition:

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Nicolas,
Pour ce que j'en ai compris, votre grande grande grande imbrication de SI se résume pour AJ6 à :
VB:
=SOMME.SI(C$10:AG$10;AJ$3;C6:AG6)
Vous avez aussi son petit frère, plus puissant :
 

Pièces jointes

  • Suivi production-test (1).xlsm
    41 KB · Affichages: 4

Nicolas Michel

XLDnaute Nouveau
C'est ce que vous obtenez dans les cellules jaunes de mon fichier. Non ?
Ou quelque chose m'échappe ?
en jaune dans vote fichier c'est le total par moi, sur le fichier en pj j'ai mis en jaune la zone concernée.

avec un Si imbriqué ca fonctionne mais j'ai plus de 30 clients, je me vois pas imbriquer tout ca pour chaque personnes :)
 

Pièces jointes

  • Suivi production-test.xlsm
    34.4 KB · Affichages: 2

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonjour @Nicolas Michel , @sylvanu , @JHA , le Forum

Une approche VBA, pour le moment je fais un total mensuel... Il faut voir pour la suite.... Sinon par formule comme proposé.

Par jour et par personne le nb de commande, poid, colis et temps , c'est faisable aussi, par VBA, mais il faudrait être sûr que le base de départ est bonne avant d'aller plus loin.


Bien à toi, à vous
@+Thierry
 

Pièces jointes

  • XLD_Nicolas_Michel_Suivi production-test_v00.xlsm
    42.1 KB · Affichages: 2

_Thierry

XLDnaute Barbatruc
Repose en paix
Re Bonjour,

Une version pour les temps par journée, ce n'est rien à ajouter...
Par contre, le tableau risque de ne pas être joli-joli, si je continue avec les 4 rubriques ...

@+Thierry
 

Pièces jointes

  • XLD_Nicolas_Michel_Suivi production-test_v01.xlsm
    41.4 KB · Affichages: 2

Nicolas Michel

XLDnaute Nouveau
la base est bonne.
la pilote fait son report avec ce tableau et ca lui convient. cependant pour avoir mon report c est compliqué car je ne connais pas le VBA, j'arrive a modifier certaines choses ou a le faire en suivant un tuto mais pour l'instant ca s arrete la :)

@_Thierry voici ton fichier avec les infos qu il faudrait, ton vba pourrait le faire?

encore merci pour l'aide.
 

Pièces jointes

  • XLD_Nicolas_Michel_Suivi production-test_v01.xlsm
    46.6 KB · Affichages: 2

_Thierry

XLDnaute Barbatruc
Repose en paix
Re Bonsoir @Nicolas Michel , le Fil, le Forum

Désolé pour "ta pilote", mais si on veut eviter de monter une usine à gaz, et d'essayer de rester clair et 'simple' dans le code, le Tableau Cible doit respecter une certaines structure, déjà que le Tableau Source nécessite déjà pas mal d'acrobaties !

Donc je ne respecte pas le dernier format que tu présentes en post #10. Je lui préfère un tableau linéaire bien plus ergonomique à gérer par VBA, d'autant plus que toi-même aura du mal à suivre si pour écrire on doit aller aussi dans tous les sens...

Je pense que "la pilote" comprendra, qu'on ne peut pas privilégier le design au détriment du code et du fonctionnement...
Et puis ce n'est pas si moche ;)
1591807826231.png


Restera à définir la taille du Tableau Source, car là il est limité à l'exemple fourni pour l'instant.

Bonne découverte
@+Thierry
 

Pièces jointes

  • XLD_Nicolas_Michel_Suivi production-test_v02.xlsm
    45.1 KB · Affichages: 4

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonjour Nicolas

Pour le Report VBA, c'est un bug "normal" , en fait tu as une valeur saisie NON-Numérique. J'ai créé une gestion pour ce genre d'erreur. (Je te laisse découvrir)

J'ai aussi noté que par contre si on oublie d'indiquer des intiales dans le Tableau Source (il y a un cas) , là par contre mon algo l'ignore pûrement et simplement !
Ce n'est plus au stade de ce genre d'algo que je peux vérifier si des cas ont des valeurs mais pas d'intiales, ce devrait être fait en amont...

Pour la partie :
sur la page production juin, le bouton report ne marche plus
Je n'en sais rien, ce n'est pas de moi ce truc là... Je ne sais même pas ce que c'est sensé faire ;)

Et enfin pour
je vais voir comment modifier pour rajouter des lignes, car la il n'y avait pas tous les clients :)
Tu t'es bien débrouillé, tu as élargi ce qu'il fallait et comme il fallait.

Bonne journée et découverte
@+Thierry
 

Pièces jointes

  • XLD_Nicolas_Michel_Suivi production-test_v03.xlsm
    71.7 KB · Affichages: 5

Nicolas Michel

XLDnaute Nouveau
j'ai réussi :)
en reprenant celui que vous m'avez envoyé et qui fonctionnait, j'ai regardé au fur et a mesure les modifications que j'apportais et à priori c'est bon :)
la macro de la premier page permet de rentrer les données de tout les clients de la journée et en cliquant sur report ca rempli le tableau. ;)

par contre si je veux ajouter des opérateurs je n'ai pas réussi à trouver ce que je dois modifier.
1591879358695.png
je pensais qu'en modifiant le nombre 32 je pourrai ajouter des opérateurs mais ça me donne une erreur sur la ligne du dessous après!

encore merci pour vos conseils, franchement ça m'a beaucoup aidé.