XL 2016 Lister l'absences des salaries sur plusieurs jours

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

  • Eric 20.xlsm
    76.6 KB · Affichages: 16

eduraiss

XLDnaute Accro
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

  • Eric 20 V1.xlsm
    77.9 KB · Affichages: 3

eduraiss

XLDnaute Accro
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
 

eduraiss

XLDnaute Accro
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)
 

eduraiss

XLDnaute Accro
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
 

eduraiss

XLDnaute Accro
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é
 

Discussions similaires

Réponses
5
Affichages
327

Statistiques des forums

Discussions
312 177
Messages
2 085 972
Membres
103 073
dernier inscrit
MSCHOE16