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
|
Sub TestCopieEsatVersFH()
Application.Calculation = xlCalculationManual: Application.ScreenUpdating = False: ActiveSheet.DisplayPageBreaks = False: Application.DisplayAlerts = False: Application.EnableEvents = False
Dim col As Integer: Dim ligneR As Integer: Dim LigneESAT As Integer: Dim ligne As Integer: Dim numres As Integer: Dim LL As Integer
For ligne = 4 To 39 'Parcours les lignes de la feuille Fiche_Resident
numres = ligne - 3 'calcul le numéro du résident selon le numéro de ligne car la liste des résidents commence à la ligne 4 de la feuille Fiche_Resident
If Sheets("Fiche_Resident").Cells(ligne, 4) <> "" Then 'si la ligne de Fiche_Resident n'est pas vide
With Sheets("Fiche_Resident")
'Alors affectation de la var LigneR(numéro de ligne du résident
'dans la feuille Stats Repas) ET la var LigneESAT (numéro de ligne du résident dans la feuille 2021)
ligneR = .Cells(numres + 3, 4): LigneESAT = .Cells(numres + 3, 8)
End With
With Sheets("Stats repas")
' Pour parcourir le tableau feuille Stats Repas, normalement de la colonne 12 à 375 mais trop long
' donc je fais un echantillon de la colonne 230 à 245 (Du 10 au 25 Aout)
For col = 230 To 245 'Parcoues des colonnes de la feuille Stats Repas (parcours les dates de l'année)
For LL = 13 To 390 'Parcoures les colonnes de la feuille 2021 (parcours les dates de l'année)
If CDate(Sheets("2021").Cells(5, LL)) = CDate(Sheets("Stats repas").Cells(55, col)) Then 'si les 2 dates correspondent
Sheets("Stats repas").Cells(ligneR, col) = Sheets("2021").Cells(LigneESAT, LL) 'affectation de la valeur de la feuille 2021 dans lka feuille Stats Repas
If Sheets("2021").Cells(LigneESAT, LL) = 0 And (Sheets("Stats repas").Cells(ligneR + 2, col) = "x" Or Sheets("Stats repas").Cells(ligneR + 2, col) = "x>" Or Sheets("Stats repas").Cells(ligneR + 2, col) = "x<") Then
' Verifie si le resident est présent au FH
' si la cellule de 2021 = 0 et si la cellule de la ligne +2 de la feuille Stats Repas = x ou x> ou x<
Sheets("Stats repas").Cells(ligneR + 1, col) = "FH" 'si oui noté "FH" dans la ligne du dessous (LigneR+1)
ElseIf Sheets("2021").Cells(LigneESAT, LL) > 2 And (Sheets("Stats repas").Cells(ligneR + 2, col) = "x" Or Sheets("Stats repas").Cells(ligneR + 2, col) = "x>" Or Sheets("Stats repas").Cells(ligneR + 2, col) = "x<") Then
' idem si valeur > 2 (0=absent : >2=codes congés ou vacances : 1 et 2 = codes pour signaler que le resident travaille et est donc present au FOYER
Sheets("Stats repas").Cells(ligneR + 1, col) = "FH"
Else ' Sinon affectation de la valeur de la feuille 2021 dans la ligne +1 (LigneR+1) de la feuille Stats Repas
Sheets("Stats repas").Cells(ligneR + 1, col) = Sheets("2021").Cells(LigneESAT, LL)
End If
End If
Next
Next col
End With
End If
Next ligne
Application.Calculation = xlCalculationAutomatic: Application.ScreenUpdating = True: ActiveSheet.DisplayPageBreaks = True: Application.DisplayAlerts = True: Application.EnableEvents = True
End Sub |
Partager