Sub Macro1()
Dim O As Worksheet 'déclare la variable O (Onglet)
Dim DL As Integer 'déclare la variable DL (Dernière Ligne)
Dim I As Integer 'déclare la variable I (Incrément)
Dim P As Integer 'déclare la variable P (Position)
Set O = Worksheets("Feuil1") 'définit l'onget O
DL = O.Cells(Application.Rows.Count, "A").End(xlUp).Row 'définit la dernière ligne éditée DL de la colonne A de l'onglet O
For I = 3 To DL 'boucle sur toutes les lignes I de 3 à DL
If O.Cells(I, "A").Interior.ColorIndex = xlNone Then 'condition : si l'intérieur de la cellule n'est pas coloré
Select Case UBound(Split(O.Cells(I, "A").Value, "/")) 'agit en fonction du nombre de slashes "/" contenu dans la cellule
Case Is > 1 'plus d'un
'renvoie dans la colonne B le texte entre les deux premiers slashes
O.Cells(I, "B").Value = Split(O.Cells(I, "A"), "/")(1)
Case Is = 1 'un seul
P = InStr(1, O.Cells(I, "A"), "?", vbTextCompare) 'définit la position P du caractère "?"
If P = 0 Then 'condition : si le caractère "?" n'existe pas
'renvoie dans la colonne B le texte après le premier slash
O.Cells(I, "B").Value = Mid(O.Cells(I, "A").Value, 2)
Else 'sinon (si la caractère "?" existe)
'renvoie dans la colonne B le texte après le premer slash et avant "?"
O.Cells(I, "B").Value = Mid(O.Cells(I, "A"), 2, P - 2)
End If 'fin de la condition
End Select 'fin de l'action en fontion du nombre de slashes
End If 'fin de la condition
Next I 'prochaine ligne de la boucle
End Sub