Private Sub btnRemplirBdd_Click()
Dim rngJour As Range 'Cellule Date de chaque colonne
Dim rngBdd As Range 'Cellule de destination dans la feuille Bdd
Dim rngPremierJourSérie As Range 'Première cellule de la série
Dim nbJoursMois As Integer 'Nombre de jours dans le mois
nbJoursMois = Day(DateSerial(Year([c5]), Month([c5]) + 1, 1) - 1) 'Calcul nb jours dans le mois
Set rngBdd = Bdd.Cells(Rows.Count, "A").End(xlUp).Offset(1, 0) 'Position de la première cellule libre
Set rngPremierJourSérie = [b15]
For Each rngJour In [b15].Resize(1, nbJoursMois) ' Boucle sur le jour
If rngJour.Offset(2, 0).Value <> rngJour.Offset(2, 1).Value Then 'Si on est en fin de série de codes identiques
'Remplissage de la ligne de la Bdd
rngBdd.Value = rngJour.Offset(2, 0) 'Code
rngBdd.Offset(0, 1).Value = rngPremierJourSérie.Value 'Date de début
rngBdd.Offset(0, 2).Value = rngJour.Value 'Date de fin
rngBdd.Offset(0, 3).Value = rngJour.Offset(3, 0).Value 'Congé(s)
rngBdd.Offset(0, 4).Value = rngJour.Offset(4, 0) 'Accord congé
rngBdd.Offset(0, 5).Value = rngJour.Offset(5, 0) 'Réunion sécurité
rngBdd.Offset(0, 6).Value = rngJour.Offset(6, 0) 'Heures sup
Set rngBdd = rngBdd.Offset(1, 0) 'On passe à la ligne suivante de la Bdd
Set rngPremierJourSérie = rngJour.Offset(0, 1) ' On met à jour la variable
End If
Next rngJour
End Sub