Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

gosselien

XLDnaute Barbatruc
Je ne connais pas du tout les tableaux dictionnaire.. il n'y aurait pas d'autre alternative? Avec des boucles ou autre?
Avant tout, as-tu essayé avec les formules pour voir le temps de calcul et le poids du fichier ?
Si pas correct alors il faudra du VBA mais mon niveau est trop bas
Les tableaux et dictionnaires sont plus difficiles à appréhender
 

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
Lors d'une journée, la même personne peut cumuler différents codes absences (voire les mêmes)
Il faut commencer par faire le ménage dans ta base, on ne va pas s'en sortir.

Cas 1


Cas 2


cas 3


cas 4


klin89
 
Dernière édition:

Skyna

XLDnaute Occasionnel
Bonjour,

A oui!!! merci. Effectivement il y avait de belles coquilles.

Voici un autre exemple. Désolé pour le bug.

Cordialement.
 

Pièces jointes

  • Copie de Classeur1 exceldownlloads-1.xlsm
    1.3 MB · Affichages: 36

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
738
Réponses
1
Affichages
251
Réponses
13
Affichages
322
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…