Extraction de données à partir d'une cellule

  • Initiateur de la discussion Initiateur de la discussion Spiroul
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Spiroul

XLDnaute Nouveau
Bonjour, (désolé pour le retard à l'allumage)

Voilà mon problème, dans le cadre de la création d'un petit programme de recensement de sites de production et de lieux d'utilisation j'ai une macro me récupérant à partir de google maps les trajets.

Mais je récupère les infos distance et temps de trajets dans une même collone sous le format distance - temps,

J'aimerais extraire directement ces facteurs pour avoir dans une cellule la distance et dans une autre le temps.
Seul hic j'ai plusieurs type de formats :

X m – environ X minute
X m – environ X minutes
X km – environ X minutes
X km – environ X heure X minute
X km – environ X heure X minutes
X km – environ X heures X minute
X km – environ X heures X minutes

Pour la distance ça va à peu près en gardant la partie numérique avant km ou m, mais pour la durée je vois pas trop comment créer une macro qui extrairait le nombre d'heures, le multiplierai par 60 puis extrairait le nombre de minutes et le rajouterai à la valeur trouvée pour les heures.

Des idées ou pistes ?
Merci​
 
Dernière édition:
Re : Extraction de données à partir d'une cellule

Bonjour, Aussi à toi....

Merci, aussi...

Après ces quelques échanges amicaux, prouvant par là-même que nous ne sommes pas des robots, peux-tu joindre un fichier, avec quelques données contenant les distances et temps de parcours?

@ te relire
 
Re : Extraction de données à partir d'une cellule

Bonjour bhbh, Bonjour Spiroul,

pour les distances, en E2 :

Code:
=SI(ESTNUM(CHERCHE("km";GAUCHE(D2;CHERCHE("–";D2)-2)));GAUCHE(GAUCHE(D2;CHERCHE("–";D2)-2);CHERCHE(" ";GAUCHE(D2;CHERCHE("–";D2)-2))-1)*1;GAUCHE(GAUCHE(D2;CHERCHE("–";D2)-2);CHERCHE(" ";GAUCHE(D2;CHERCHE("–";D2)-2))-1)/1000)

Attention, les tirets dans la formule sont des tirets "longs" (demi-cadratin ?)
 
Re : Extraction de données à partir d'une cellule

Re,

regarde le fichier

le code :

Code:
Sub google()
Dim Cel As Range
Dim DerLig As Long
Dim X As Long
DerLig = [D65000].End(xlUp).Row
With Application
    .DisplayAlerts = False
    .ScreenUpdating = False
End With
Range("D2:D" & DerLig).TextToColumns Destination:=Range("E2"), DataType:=xlDelimited, _
    OtherChar:="–"
For Each Cel In Range("E2:E" & DerLig)
    X = InStr(1, Cel, "km")
    If X > 0 Then
        Cel = CDbl(Left(Cel, X - 2))
    Else
        X = InStr(1, Cel, "m")
        Cel = Format(CDbl(Left(Cel, X - 2)) / 1000, "0.000")
    End If
Next Cel
For Each Cel In Range("F2:F" & DerLig)
    If InStr(1, Cel, "heure") > 0 Then
        X = InStr(1, Cel, "heures")
        If X > 0 Then
            Cel = CDate(Val(Mid(Cel, X - 3, 2)) & ":" & Val(Mid(Cel, X + 7, 2)))
        Else
            X = InStr(1, Cel, "heure")
            If X > 0 Then
                Cel = CDate(Val(Mid(Cel, X - 2, 1)) & ":" & Val(Mid(Cel, X + 6, 2)))
            End If
        End If
    Else
        X = InStr(1, Cel, "minute")
        If X > 0 Then
            Cel = CDate("00:" & Val(Mid(Cel, X - 3, 2)))
        End If
    End If
Next Cel
Range("F2:F" & DerLig).NumberFormat = "[$-F400]h:mm:ss AM/PM"
End Sub

Fichier
 

Pièces jointes

Re : Extraction de données à partir d'une cellule

Merci bhbh, ça marche.
Il manquait juste un
Code:
Range("D2:D" & DerLig).TextToColumns Destination:=Range("F2"), DataType:=xlDelimited, _
    OtherChar:="–"
Avant le test sur la collonne F.

Sinon c'est parfait, merci de m'avoir consacré un peu de temps
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
9
Affichages
510
Réponses
8
Affichages
641
Réponses
250
Affichages
16 K
Retour