I have a code that looks at Column K, checks if there is a 0 and if there is, it deletes the corresponding rows from C to K.
Sub del()
Application.ScreenUpdati
Here is another approach:
Option Explicit
Sub del()
Application.ScreenUpdating = False 'Prevent screen flickering
Application.Calculation = xlCalculationManual 'Preventing calculation
'you should also reference the workbook
Dim sh As Worksheet
Set sh = ThisWorkbook.Sheets("Formations_Tracker")
'ThisWorkbook refers to the workbook which contains the code
Dim lngStartRow As Long
lngStartRow = 2 'Starting data row number.
Dim lr As Long
lr = sh.Cells(Rows.Count, "C").End(xlUp).Row
'When looping through cells is always better to use the For Each
Dim C As Range
'It would be wise to delete everything at once using a range to delete
Dim DelRange As Range
For Each C In sh.Range("K" & lngStartRow & ":K" & lr)
If C = 0 Then
If DelRange Is Nothing Then
Set DelRange = C
Else
Set DelRange = Union(DelRange, C)
End If
End If
Next C
'Delete all your rows at once if there is a match
If Not DelRange Is Nothing Then DelRange.EntireRow.Delete
Set sh = Nothing
Set DelRange = Nothing
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
End Sub