Code VBA pour extraire données dans tableau

Skyna

XLDnaute Occasionnel
Bonjour à tous,

J'ai besoin d'un petit coup de main svp pour un code vba..

L'onglet 1 regroupe les données de base et l'onglet 2 est la feuille ou je souhaite obtenir les données.
L'objectif est d'arriver à retranscrire les 3 premiers caractères des codes absences pour chaque personnes si les jours ne tombent pas des samedis ou dimanche et afficher le nombre de jours maximum d'absence continu (sans tenir compte des week-end et jours fériés).
Je ne parviens pas à obtenir les codes absences, je n'ai pu qu'obtenir un nombre de jours d'absence (en lieu et place des codes à 3 chiffre souhaités) en utilisant la fonction countifs pour chaque colonne ou il y a une date mais c'est très long et très lourd quand il y a plus de 1500 personnes (le nombre de personnes varie).
Je vous joins un petit classeur pour visualiser ce que je souhaiterais atteindre.
Je vous remercie par avance pour votre aide.
Cordialement.
 

Pièces jointes

  • Classeur1.xlsm
    15.8 KB · Affichages: 40

fred2406

XLDnaute Nouveau
Bonsoir
j'ai été contacté par gosselien sur un autre forum pour voir ce que je pouvais faire pour ton problème
ci joint un début de réponse, il reste a priori cette histoire de comptage du nombre max de jour d'absence consécutifs...
mais j'aurais besoin de plus d'informations...
dans le fichier test joint nom1 est absent que des demies journées, donc du 01/01 au 14/01 on doit compter 10 jours OK ??
quand est-il pour nom2 qui est absent le 03/08 matin et soir ?? on doit compter seulement 1 ou 2 ??
quand une personne est absente, sur une journée, il y aura forcement deux lignes pour la journée (1 matin et l'autre l'après midi, serait-il possible d'avoir un fichier test pour cette partie peut être un peu plus réaliste de ce qu'il se passe dans la realité ???
merci

Fred
 

Pièces jointes

  • Classeur1 exceldownlloads.xlsm
    27.9 KB · Affichages: 43

Skyna

XLDnaute Occasionnel
Bonjour,

Merci bcp pour ce travail.

Pour répondre aux interrogations :

- 1 agent absent 1/2 journée sera compté comme présent, il faut être absent 1 journée complète pour que le décompte commence (dans l'idéal les jours fériés serait de neutraliser les jours fériés comme le sont les samedis et les dimanches) => on peut même ne pas afficher le code absence si pas d'absence sur la journée complète si plus facile
- quelqu'un absent le 03 matin et le 03 soir sera compté comme absent 1 journée, le code absence à récupérer serait celui de l'après midi s'il y a 2 codes différents sur une même journée
-le comptage du nombre maximum d'absences est égal au nombre d'absences journalières complètes consécutives hors jours fériés, et week-end

Je joins un classeur agrémenté de données absences plus réalistes.

Merci pour votre aide.
 

Pièces jointes

  • Copie de Classeur1 exceldownlloads-1.xlsm
    1.1 MB · Affichages: 29

klin89

XLDnaute Accro
Bonjour Skyna :)

Il faudrait quand même que tu nous apporte un éclairage supplémentaire.
Que signifie tous ces doublons o_O
Lors d'une journée, la même personne peut cumuler différents codes absences (voire les mêmes) :rolleyes:
Il faut commencer par faire le ménage dans ta base, on ne va pas s'en sortir.

Cas 1
absence_1.PNG


Cas 2
absence_2.PNG


cas 3
absence_3.PNG


cas 4
absence_4.PNG


klin89
 
Dernière édition:

fred2406

XLDnaute Nouveau
Bonsoir Skyna
Bonsoir Klin... je vois que tu as fais comme moi, utiliser le même identifiant sur les deux sites....
je te laisse répondre en modifiant ton code avec dictionnaires pour cette partie là je n'ais pas trouvé le temps de m'y remettre depuis dimanche...et pas sur que je puisse le faire avant quelques jours
Fred
 

Discussions similaires

Réponses
45
Affichages
1 K
Réponses
93
Affichages
2 K
Réponses
14
Affichages
718
Réponses
1
Affichages
235
Réponses
13
Affichages
311

Statistiques des forums

Discussions
312 145
Messages
2 085 761
Membres
102 965
dernier inscrit
Mael44