Sub TestCat()
MaFeuille = "mise a jour planning" 'Seuls choses à changer (Feuille du planning)
MaPlage = "C20:I30" 'Seuls choses à changer (Plage du planning)
'----------------------------
With Sheets(MaFeuille)
Set MaZone = .Range(MaPlage)
Onglet = "ABS " & Format(MaZone.Resize(1, 1).Offset(-1, 0), "yyyy")
MesCrit = Array("21h15/6h15", "tn", "REPOS", "rp", "CONGES", "cp")
'----------------------------
For Each X In MaZone
MaDate = .Cells(MaZone.Offset(-1, 0).Resize(1).Row, X.Column).Value
With Sheets(Onglet)
Lig1 = Application.Match(DateSerial(Year(MaDate), Month(MaDate), 1) * 1, .Range("A1:A400"), 0) + 1 'Ligne où se trouve la date (mois) recherchée
Col1 = Application.Match(MaDate * 1, .Cells(Lig1, 1).Resize(1, 32), 0) 'Colonne où se trouve la date (jour) recherché
End With
LeNom = .Cells(X.Row, MaZone.Column + MaZone.Columns.Count).Value 'Nom de la ligne en cours (X)
With Sheets(Onglet)
Lig2 = Application.Match(LeNom, Sheets(Onglet).Cells(Lig1 + 1, 1).Resize(14, 1), 0) 'offset du nom dans le mois recherché
toto = X.Value
MonCrit = Application.Match(X.Value, MesCrit, 0)
If Not IsError(Lig2) Then
If Not IsError(MonCrit) Then
.Cells(Lig1 + Lig2, Col1).Value = MesCrit(MonCrit)
Else
.Cells(Lig1 + Lig2, Col1).Value = "tj"
End If
End If
End With
Next
End With
End Sub