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

XL 2016 Lister l'absences des salaries sur plusieurs jours

  • Initiateur de la discussion Initiateur de la discussion eduraiss
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

eduraiss

XLDnaute Accro
Bonjour le forum

Suite a une demande de lister les salaries présent sur une feuille
pierre jean m'avait développer un code qui fonctionne parfaitement
il lister les salaries dans une colonne par rapport à un jour choisi
mon besoin se complique dans le sens ou j'aurais besoin du même système mais sur toues les feuilles du fichier étant des jours de semaine

Je joins un fichier

Merci a vous
 

Pièces jointes

Re

Bonjour pierrejean
merci pour ce retour rapide, mais je ne pense avoir était assez clair
lors du déclenchement de la macro, ça affiche bien pour le lundi mais pas pour le mardi est les autres jours
J'ai fais un exemple avec le mardi (en copie coller) et cela sur tout les jours (fichier joint)

Un truc aussi le fichier est copié toute les semaine pour la semaine suivante
le code ne doit tenir compte que du jours pas de la date (prend en compte que mardi et non mardi 28 )
autre chose dans mon exemple la feuille vendredi 01 ne sera pas créer
J’espère avoir été plus clair

Merci encore
 

Pièces jointes

Re
merci à nouveau
Mais il y a je pense un problème car j'ai des données qui ne sont pas bonne
je m'explique, j'ai adapté a mon fichier source
En utilisant le code du fichier de base post 1 les données sont exactes
avec ce code je pense que
Il compare bien la colonne A de la feuille "PRESENCE SALARIE"
dans la feuille du lundi par exemple et il va chercher les valeurs identiques qui se trouve en colonne I et J là c'est bon
Mais il m'identifie aussi les salariés de la colonne A qui ne sont pas dans la feuille sélectionnée
je travaille avec trois classeurs différents (différents ateliers de production)
les salaries de la colonne A sont surement dans un autre fichier le même jour
voila
merci
 
Avec ce code cela ne marche pas
'employes = Range("A3:A" & Range("A" & Rows.Count).End(xlUp).Row)
'Set appeler = CreateObject("Scripting.dictionary")
'For Each sh In Sheets
'If sh.Name <> ActiveSheet.Name Then
'tablo = sh.Range("B1:J" & sh.Range("B" & Rows.Count).End(xlUp).Row)
'Ligne = 3
'For n = LBound(tablo, 1) To UBound(tablo, 1)
' If tablo(n, 8) <> "" Then
' For m = LBound(employes, 1) To UBound(employes, 1)
' If tablo(n, 8) = employes(m, 1) Then
' If tablo(n, 2) <> tablo(n, 8) And tablo(n, 4) <> tablo(n, 8) And tablo(n, 5) <> tablo(n, 8) Then
' X = tablo(n, 8)
' appeler(X) = X
' End If
' End If
' Next
' End If
' If tablo(n, 9) <> "" Then
' For m = LBound(employes, 1) To UBound(employes, 1)
' If tablo(n, 2) <> tablo(n, 9) And tablo(n, 4) <> tablo(n, 9) And tablo(n, 5) <> tablo(n, 9) Then
' If tablo(n, 9) = employes(m, 1) Then
' X = tablo(n, 9)
' appeler(X) = X
' End If
' End If
' Next
' End If
'Next
'End If
'Set c = ActiveSheet.Rows(1).Find(Split(sh.Name)(0), LookIn:=xlValues, lookat:=xlWhole)
'If Not c Is Nothing Then
' Cells(3, c.Column).Resize(appeler.Count) = Application.Transpose(appeler.keys)
' a = appeler.RemoveAll
'End If
'Next

Avec celui-ci cela fonctionne mais sur une colonne

tablo = Sheets(Range("F1").Text).Range("B1:J" & Sheets(Range("F1").Text).Range("B" & Rows.Count).End(xlUp).Row)
employes = Range("A3:A" & Range("A" & Rows.Count).End(xlUp).Row)
Ligne = 3
Set appeler = CreateObject("Scripting.dictionary")
For n = LBound(tablo, 1) To UBound(tablo, 1)
If tablo(n, 8) <> "" Then
For m = LBound(employes, 1) To UBound(employes, 1)
If tablo(n, 8) = employes(m, 1) Then
If tablo(n, 2) <> tablo(n, 8) And tablo(n, 4) <> tablo(n, 8) And tablo(n, 5) <> tablo(n, 8) Then
X = tablo(n, 8)
appeler(X) = X
End If
End If
Next
End If
If tablo(n, 9) <> "" Then
For m = LBound(employes, 1) To UBound(employes, 1)
If tablo(n, 2) <> tablo(n, 9) And tablo(n, 4) <> tablo(n, 9) And tablo(n, 5) <> tablo(n, 9) Then
If tablo(n, 9) = employes(m, 1) Then
X = tablo(n, 9)
appeler(X) = X
End If
End If
Next
End If
Next
Range("F3").Resize(appeler.Count) = Application.Transpose(appeler.keys)
 
Re
alors je prends l'exemple
en colonne A EN A39 A40 A41 A42
il y a POMME A
Je retrouve POMME A en F8

D'apres ce que je vois il y aurais des anomalies en colonne F (lundi)
POMME A n'est pas présente sur la feuille du lundi en I et J
il y a d'autres anomalie vu la longueur de la liste
le reste des autres jours cela a l'air bon
 
Re
Pour cette colonne je n'avais trouvé qu'un espace excédentaire a la fin de Lundi
J'ai testé avec POMME A et pas de retour dans la colonne F
NB: Le code est exactement le même pour toutes les feuilles
 
Re
c'est dingue je vois bien que l'exemple est nickel, il marche 'ai mis des lettres A B C D E F G etc c'est parfait
Sur mon fichier
j'ai essayé en gardant la colonne A
J'ai copié la feuille du lundi à l'identique
renommé les feuilles mardi mercredi jeudi et vendredi
déclancher la macro
la colonne F a 14 noms en plus des autres colonnes
les colonnes G H I K sont identiques même noms et nombre de personne
Désolé
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
0
Affichages
230
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…