Bonjour
Je me base sur la recherche des titres puis de la couleur des cellules dans le tableau sans regarder si les lignes sont vides, j'espère que je la conserve
Sub InsertRowswithSpecificValue(sheetName, col, val)
Dim rg As Range
Dim sh As Worksheet
Dim ligne, couleur, couleur_prec
Set sh = Worksheets(sheetName)
sh.Unprotect
Set rg = sh.Range("C:C")
ligne = rg.Find(What:=val, After:=rg.Cells(rg.Cells.Count), LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext).Address(RowAbsolute:=False, ColumnAbsolute:=False)
Set rg = sh.Range("C" & CLng(Mid(ligne, len(col)+1)) + 1)
couleur = rg.Interior.Color
couleur_prec = couleur
ligne = CInt(Mid(ligne, len(col)+1)) + 1
While couleur = couleur_prec
ligne = ligne + 1
Set rg = sh.Range("C" & ligne + 1)
couleur = rg.Interior.Color
Wend
Set rg = sh.Range(CStr(ligne + 1) & ":" & CStr(ligne + 1))
rg.EntireRow.Insert
sh.Protect
End Sub
Sub InsertLigneachats()
Call InsertRowswithSpecificValue("M22_surcoûts_compensations", "C", "ACHATS")
End Sub
Sub InsertLigneservices()
Call InsertRowswithSpecificValue("M22_surcoûts_compensations", "C", "SERVICES EXTERIEURS")
End Sub
Sub InsertLigneautres()
Call InsertRowswithSpecificValue("M22_surcoûts_compensations", "C", "AUTRES SERVICES EXTERIEURS")
End Sub