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

Récupérer les horaires de travail le dimanche - multionglets

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:
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.
 

thebenoit59

XLDnaute Accro
Re : Récupérer les horaires de travail le dimanche - multionglets

Bonjour Averell.

Je ne vois aucune donnée provenant d'un Userform dans la procédure.
Aurais-tu la possibilité de transmettre un fichier exemple ?
 

Averell1976

XLDnaute Junior
Re : Récupérer les horaires de travail le dimanche - multionglets

Bonjour thebenoit59,

Merci pour ta réponse!!!
Je te met le fichier en PJ; j'ai supprimé quelques onglets inutiles car fichier trop lourd sinon.
Il y a donc l'onglet MATRICE2014, JANVIER, FéVRIER, MARS, AVRIL et DIMANCHE
Un bouton dans l'onglet DIMANCHE qui ouvre un userform; en renseignant n'importe quelle date de début et date de fin et en cliquant sur VALIDER, je souhaite récupérer tous les dimanches entre ces 2 dates, le nom des salariés ayant travaillé, horaires et remplaçant, comme cela fonctionne actuellement, à part que ça cherche les dimanches juste dans l'onglet MATRICE2014.......

Averell
 

Pièces jointes

  • MATRICE PG.xlsm
    273 KB · Affichages: 27

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…