Averell1976
XLDnaute Junior
Bonjour à toutes et à tous,
Pour de la GRH, je cherche à récupérer les horaires de travail de salariés ayant travaillé le dimanche. J'ai donc un fichier excel avec plusieurs onglets: une matrice, 12 autres (un par mois: JANVIER, Février, MARS..... jusqu'à Décembre), un onglet "DIMANCHE" et d'autres qui ne nous intéresse pas pour le moment:
L'idée est que dans l'onglet "DIMANCHE", quand je clique sur le bouton "RELEVE HORAIRES TRAVAIL DIMANCHE", le renseigne l'userform qui s'affiche en indiquant à partir de quelle date je veux rechercher les dimanches et jusqu'à quelle date (par exemple, du 15/01 au 15/02); en validant, je récupère alors le nom des salariés ayant travaillé les dimanches compris entre ces 2 dates. Il faudrait donc chercher dans les onglets JANVIER et Février, entre le 15/01 et jusqu'au 15/02
Pour le moment, j'ai le code suivant:
Mais cela ne cherche les dimanches que dans l'onglet "MATRICE2014", pas dans les onglets "JANVIER" et "Février" si j'ai indiqué dans l'userform le 15/01 en date de début et le 15/02 en date de fin......
Merci à vous pour votre aide.
Pour de la GRH, je cherche à récupérer les horaires de travail de salariés ayant travaillé le dimanche. J'ai donc un fichier excel avec plusieurs onglets: une matrice, 12 autres (un par mois: JANVIER, Février, MARS..... jusqu'à Décembre), un onglet "DIMANCHE" et d'autres qui ne nous intéresse pas pour le moment:
L'idée est que dans l'onglet "DIMANCHE", quand je clique sur le bouton "RELEVE HORAIRES TRAVAIL DIMANCHE", le renseigne l'userform qui s'affiche en indiquant à partir de quelle date je veux rechercher les dimanches et jusqu'à quelle date (par exemple, du 15/01 au 15/02); en validant, je récupère alors le nom des salariés ayant travaillé les dimanches compris entre ces 2 dates. Il faudrait donc chercher dans les onglets JANVIER et Février, entre le 15/01 et jusqu'au 15/02
Pour le moment, j'ai le code suivant:
Code:
Sub Relevé()
Dim cel As Range, i As Integer, derLigne As Integer, premLigne As Integer
Dim ligneEcri As Integer, Salarie As String, Remplaçant As String, Horaire_travail As String, colEcri As Integer
'je nettoie le contenu de la feuille "DIMANCHE"
Sheets("DIMANCHE").Range("B5:G78").ClearContents
Sheets("MATRICE2014").Activate
'Lecture du tableau de la feuille Matrice 2014
premLigne = 11: ligneEcri = 5
derLigne = Range("B" & Rows.Count).End(xlUp).Row
colEcri = 1
'Pour empêcher le clignotement pendant le fonctionnement
Application.ScreenUpdating = False
'Boucle pour parcourir une ligne sur deux en lecture
Do Until premLigne >= derLigne
For Each cel In Range(Cells(premLigne, 2), Cells(premLigne, 33))
'Pour vérifier si on est un dimanche
If Cells(7, cel.Column) = "" Then GoTo Suite
If Weekday(Cells(7, cel.Column)) = 1 Then
'Colonne pour écrire
colEcri = colEcri + 1
'lecture des données à écrire
Salarie = Cells(cel.Row, 2)
Remplaçant = cel.Offset(1, 0)
Horaire_travail = cel.Offset(0, 0)
DateJour = CDate(Cells(7, cel.Column))
'Voir si travail il y a
If cel <> "R" And Cells(cel.Row, 2) <> "REMPLACANT" Then
'On ouvre la feuille pour écrire
Sheets("DIMANCHE").Activate
If Cells(4, colEcri) = DateJour Then
Cells(ligneEcri, colEcri) = Salarie
Cells(ligneEcri + 1, colEcri) = Remplaçant
Cells(ligneEcri + 2, colEcri) = Horaire_travail '******AJOUT
Sheets("DIMANCHE").Cells(ligneEcri, colEcri).Interior.Color = cel.Offset(0, 0).Interior.Color
End If
End If
End If
Mais cela ne cherche les dimanches que dans l'onglet "MATRICE2014", pas dans les onglets "JANVIER" et "Février" si j'ai indiqué dans l'userform le 15/01 en date de début et le 15/02 en date de fin......
Merci à vous pour votre aide.