2017-08-25 2 views
2

J'ai 5 élèves qui ont 2 heures de début (4 début à 8 heures, 1 début à 11 heures) pendant la semaine en cours.VBA Excel_Comparer et compter: Comparer les cellules de deux feuilles et faire un compte pour le retard

AIM: Comparez le champ HEURE D'ARRIVEE pour chaque élève avec les COMMENCE sur le terrain et faire un décompte du nombre de fois tardive au cours des dates sélectionnées. Le décompte apparaît dans le champ NO DE LATENESS DURING WEEK.

  • Je travaille avec 1 classeur qui a 2 feuilles: 'Master' et 'planning_and_lateness tracker'.

Master feuille master sheet

Student DATE   Arrival time 
Paul  2017-08-22 08:10:21 
Paul  2017-08-23 08:11:52 
Paul  2017-08-24 13:17:06 
Lola  2017-08-22 08:04:50 
Emilie  2017-08-22 08:27:54 
Emilie  2017-08-23 08:50:33 
Coco  2017-08-22 07:41:24 
Coco  2017-08-23 07:47:17 
Coco  2017-08-24 07:46:45 
Jack  2017-08-22 10:00:38 
Jack  2017-08-23 11:07:42 
Jack  2017-08-24 11:00:27 

enter image description here

Planning_and_lateness tracker feuille

[planification et de la feuille de suivi retard] [3] aucune référence prévue dans OP

Staff Starts at No. of lateness during the week 
Paul 08:00:00  
Lola 08:00:00  
Emilie 08:00:00  
Coco 08:00:00  
Jack 11:00:00  

Le nombre doit apparaître dans le champ No. of lateness during the week.

Je voudrais avoir le code VBA pour cela. Je suis perdu en mer avec ça.

+1

Je vote pour fermer cette question hors-sujet parce qu'il n'y avait pas de code fourni - c'est une demande "écrivez mon programme pour moi". – FreeMan

Répondre

1

Je ne vois pas pourquoi vous voulez utiliser VBA pour cela. À mon avis, Excel est assez bon. Voici ce que je suggère. Ajoutez 3 colonnes aux données de base sur la première feuille.

Temps correct || Numéro de la semaine || En retard?

Temps Correct:

=IF(B7="Jack";TIME(11;0;0);TIME(8;0;0)) 

numéro de la semaine:

=WEEKNUM(C7) 

tard?

=D7>E7 

Sur la deuxième feuille, il suffit d'avoir un tableau croisé dynamique avec ces données. Le numéro de la semaine doit être dans les colonnes, le retard doit être dans le filtre Rapport (avec Late = TRUE sélectionné dans le filtre), l'étudiant doit être dans les étiquettes de ligne et les valeurs doivent également contenir le numéro de l'étudiant. le tableau croisé dynamique pour avoir une source dynamique en utilisant la fonction de décalage si vous en avez besoin ou vous pouvez mettre à jour la source du tableau croisé dynamique chaque fois que vous voulez calculer.

How it should look

+1

Gagnant, gagnant, souper au poulet! Yup, c'est ce que les tableaux Pivot ont été inventés pour! – FreeMan

0

Merci pour la réponse. Néanmoins, la feuille principale est créée après l'exécution de 6 macros. La feuille de planification est présente par défaut, même si je mettrai à jour les valeurs des cellules STARTS AT chaque semaine, car il s'agit d'une liste.

La réponse ci-dessus fonctionnera-t-elle dans ce cas? C'est pourquoi je trouve cela compliqué.

Merci pour votre réponse.