Conversion texte en durée

Bonjour à tous,

Je cherche à convertir une colonne entière contenant une notion du durée au format texte du genre :

1 Jour(s) 2 Heure(s) 59 Min(s)

2 Heure(s) 27 Min(s)

27 Min(s)

14 Heure(s) 24 Min(s)

8 Jour(s) 14 Heure(s) 37 Min(s)

Je souhaiterais pouvoir convertir ces informations simplement en durée secondes ou minutes. Ce qui donnerait pour le premier exemple 97 140 secondes ou 1619 minutes.

Par avance, merci

Bonjour,

Je viens d'ajouter un exemple de fichier, les colonnes concernées sont G et J.

Merci

35requete.xlsx (50.98 Ko)

Bonjour,

Une proposition avec une fonction personnalisée (VBA). A adapter suivant les cas qui peuvent se présenter.

L'énoncé ne parlait pas de Sec(s).

ALT F11 pour ouvrir l'éditeur VBE ; voir Module1.

Cdlt.

32requete.xlsm (63.78 Ko)
Option Explicit

Public Function ConverTextToSeconds(sText As String)
Dim x
Dim i As Long
Dim y As Double
    '----------------------------------------------------------------
    ' Si utilisation dans une feuille de calcul
    Application.Volatile
    '----------------------------------------------------------------
    x = Split(Trim(sText))
    i = UBound(x)
    '----------------------------------------------------------------
    Select Case i
        Case 5
            y = x(0) * 86400 + x(2) * 3600 + x(4) * 60
        Case 3
            Select Case True
                Case x(1) = "Jour(s)" And x(3) = "Heure(s)"
                    y = x(0) * 86400 + x(2) * 3600
                Case x(1) = "Jour(s)" And x(3) = "Min(s)"
                    y = x(0) * 86400 + x(2) * 60
                Case x(1) = "Heure(s)" And x(3) = "Min(s)"
                    y = x(0) * 3600 + x(2) * 60
            End Select
        Case 1
            Select Case x(1)
                Case "Jour(s)"
                    y = x(0) * 86400
                Case "Heure(s)"
                    y = x(0) * 3600
                Case "Min(s)"
                    y = x(0) * 60
                Case Else
                    ' il n'y avait pas de secondes dan l'énoncé !!!
                    y = x(0)
            End Select
    End Select
    '----------------------------------------------------------------
    ConverTextToSeconds = y

End Function

Merci beaucoup Jean-Eric, c'est exactement le résultat que je cherchais à obtenir

Bonne journée !

Rechercher des sujets similaires à "conversion texte duree"