1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
|
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, 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)
date_travail = ActiveCell '*****AJOUT
DateJour = CDate(Cells(7, cel.Column))
'Voir si travail il y a
If cel <> "R" Then '*****MODIF 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) = date_travail '******AJOUT
End If
End If
End If
Suite:
'On retourne dans la feuille pour lire les données suivantes
Sheets("MATRICE2014").Activate
Next
'Incrémentation des lignes de lecture et d'écriture
ligneEcri = ligneEcri + 3 '*****MODIF
premLigne = premLigne + 2
'Retour à la première colonne pour écrire la nouvelle ligne suivante
colEcri = 1
Loop
Application.ScreenUpdating = True
Sheets("DIMANCHE").Activate
End Sub |
Partager