Sub Macro1()
Dim O As Worksheet 'déclare la variable O (Onglet)
Dim TV As Variant 'déclare la variable TV (Tableau des Valeurs)
Dim I As Integer 'déclare la variable I (Incrément)
Dim J As Byte 'déclare la variable J (incrément)
Dim K As Integer 'déclare la variable K (incrément)
Dim T1() As Variant 'déclare la variable T1 (Tableau 1)
Dim N As String 'déclare la variable N (Nombre)
Dim T2() As String 'déclare la variable T2 (Tableau 2)
Application.ScreenUpdating = False 'masque les raffraîchisements d'écran
Set O = Sheets("DEPART") 'définit l'onglet O
O.Columns(1).Insert 'insère une colonne vide (en premier)
O.Columns(1).NumberFormat = "00" 'définit le format de la colonne 1 (=A)
TV = O.Range("A1:I" & O.Cells(Application.Rows.Count, 2).End(xlUp).Row) 'définit le tableau des valeurs TV
ReDim T1(UBound(TV, 1)) 'redimiensionne le tableau T1 (autant de lignes que TV)
For I = 1 To UBound(TV, 1) 'boucle sur toutes les lignes I du tableau des valeurs TV
If TV(I, 3) = "" Then N = Left(TV(I, 2), 2) 'si la donnée ligne I, colonne 3 est vide, définit le nombre N
T1(I) = N 'attribut la valeur N à la variable indexée T1(I)
Next I 'prochaine ligne de la boucle
O.Range("A1").Resize(UBound(T1), 1).Value = Application.Transpose(T1) 'renvoie dans A1 redimensionnée le tableau T1 transposé
O.Rows("1:4").Delete 'supprime les 4 première lignes
TV = O.Range("A1").CurrentRegion 'redéfinit le tableau des valeurs TV
For I = 1 To UBound(TV, 1) 'boucle sur toutes les lignes I du tableau des valeurs TV
For J = 1 To UBound(TV, 2) 'boucle sur toutes les colonnes J du tableau des valeurs TV
If TV(I, J) = "" Then 'condition : si la données ligne I, colonne J du tableau des valeurs TV est vide
ReDim Preserve T2(K) 'redimensionne le tableau T2
T2(K) = I 'récupère le numéro de ligne I dans la variable indéxée T2(K)
K = K + 1 'incrémente K
Exit For 'sort de la boucle 2
End If 'fin de la condition
Next J 'prochaine colonne de la boucle 2
Next I 'prochaine ligne de la boucle 1
For I = UBound(T2, 1) To 0 Step -1 'boucle inversée sur toutes les lignes du tableau T2 (de la dernière à la première)
O.Rows(T2(I)).Delete 'supprime la ligne
Next I 'prochaine ligne de la boucle
Application.ScreenUpdating = True 'affiche les raffraîchisements d'écran
End Sub