Bonjour,
Une proposition qui passe par une fonction personnalisée VBA (code à coller dans un module standard de l'éditeur VBA, fichier à enregistrer au format .xlsm) :
Public Function ExtractDuree(ByVal Duree As String, Optional ByVal Composante As String = "d") As Integer
Dim i As Integer, Tablo() As String, Res As String 'Déclaration des variables
Tablo = Split(Duree, " ") 'Découpe la donnée selon les espaces
For i = LBound(Tablo) To UBound(Tablo) 'Boucle sur chaque élément découpé
If Tablo(i) Like "*" & Composante Then Res = Tablo(i): Exit For 'Si il concerne la composante cherchée (mo, w, d, etc) on enregistre le résultat et on sors de la boucle
Next i
ExtractDuree = CInt(Replace(Res, Composante, "")) 'Renvoi du résultat
End Function
La fonction s'utilise ensuite comme une fonction Excel classique (ici exemple pour B2, à étendre aux autres cellules ensuite) :
=SIERREUR(ExtractDuree($A2;B$1);"")
En l'absence de précision, la formule renvoie les jours (composante "d")