Bonjour à tous
Pour résoudre une
demande sur ce forum, j'ai besoin de transformer des tableaux comme décrit ci-dessous, en simplifiant :
Tableau initial sur une feuille
On regroupe toutes les données correspondant à une personne dans une colonne, et on remplace les X par des 0, et les vides par des 1. On obtient le tableau ci-dessous, sans avoir à l'afficher.
TableauUn (Sans la 1ère colonne ci-dessous,juste là pour comprendre la suite...).
On somme les uns consécutifs. On obtient le TableauUnfinal, sans avoir à l'afficher.
On doit aussi faire presque le même travail, mais en ne prenant en compte que les W.E (Pour l'exemple de samedi 0 h à lundi matin 5h inclus). A partir de tableauUn (et non à partir de tableauUnfinal), on obtient TableauWE, toujours sans avoir à l'afficher.
Comme précédemment, on somme les uns contigus, mais cette fois-ci, on ne garde que le dernier de chaque série. On obtient TableauWEfinal, sans avoir à l'afficher.
Dans tous les tableaux ci-dessus, on peut inverser les colonnes et les lignes. Peu importe...
Après, on fait des calculs assez simples sur les deux tableaux finaux.
J'ai fait quelques essais avec des formules, puis avec une macro avec des boucles et des tableaux VBA (à une ou deux dimensions). Cela semble fonctionner, mais cela rame trop.
De plus dans la réalité, il y a :
* non pas deux noms, mais au moins 130
* non pas 3 journées, mais au moins 365
* non pas 10 colonnes avec des vides ou avec des X, mais 24.
(* et les W.E. vont du samedi 6 h incluse au mardi 6 h excluse)
Conclusion : Je pense qu'il faut procéder autrement, peut-être avec un dictionnaire, en utilisant les noms comme clés...
Si vous avez une idée, merci de mettre un exemple, à partir du tableau initial ci-dessus. Je ferai les transformations nécessaires en conséquence, en fonction du fichier réel. De mon coté, je cherche, mais bon, vu mon niveau en VBA...
@ plus
P.S : Je viens de voir qu'il manque une ligne en bas des 4 derniers tableaux, celle correspondant au 03/01/05 10 h. Peu importe, c'est compréhensible sans cette ligne...