Averell1976
XLDnaute Junior
Bonjour à toutes et à tous,
Toujours un souci de RH; j'avais posté un sujet sur ce thème, mais je retente ma chance aujourd'hui. J'espérai trouver la solution tout seul en cherchant sur le net, mais mes recherches se sont avérées infructueuses.
La problématique: j'ai un fichier excel avec un onglet MATRICE2014, des onglets mensuels (un par mois qui se crée automatiquement à partir de MATRICE2014) et un onglet DIMANCHE; c'est celui- là qui m'intéresse: en effet, quand je cliques sur le bouton de commande de cet ONGLET, je voudrai, en renseignant l'userform qui s'affiche, récupérer le nom des salariés/ remplaçant éventuel et horaires qui ont travaillé le dimanche sur la période indiquée: si j'indique en date de début de période 01/01/2015 et en date de fin de période 29/04/2015, il faudrait donc que mon code me permette de parcourir les onglets JANVIER, FEVRIER, MARS et AVRIL, me récupère toutes les dates correspondant à un dimanche et donc le nom de salariés qui ont travaillés sur ces dates...
Là ça ne marche que pour l'onglet MATRICE2014.... Comment faire pour parcourir plusieurs onglets?
Je vous met le code que j'ai actuellement ainsi que le fichier en PJ. Merci à vous pour votre aide...
Toujours un souci de RH; j'avais posté un sujet sur ce thème, mais je retente ma chance aujourd'hui. J'espérai trouver la solution tout seul en cherchant sur le net, mais mes recherches se sont avérées infructueuses.
La problématique: j'ai un fichier excel avec un onglet MATRICE2014, des onglets mensuels (un par mois qui se crée automatiquement à partir de MATRICE2014) et un onglet DIMANCHE; c'est celui- là qui m'intéresse: en effet, quand je cliques sur le bouton de commande de cet ONGLET, je voudrai, en renseignant l'userform qui s'affiche, récupérer le nom des salariés/ remplaçant éventuel et horaires qui ont travaillé le dimanche sur la période indiquée: si j'indique en date de début de période 01/01/2015 et en date de fin de période 29/04/2015, il faudrait donc que mon code me permette de parcourir les onglets JANVIER, FEVRIER, MARS et AVRIL, me récupère toutes les dates correspondant à un dimanche et donc le nom de salariés qui ont travaillés sur ces dates...
Là ça ne marche que pour l'onglet MATRICE2014.... Comment faire pour parcourir plusieurs onglets?
Je vous met le code que j'ai actuellement ainsi que le fichier en PJ. Merci à vous pour votre aide...
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