Autres Distance entre deux villes

golgue

XLDnaute Nouveau
Bonjour,
comment calculer une distance en C7 avec la ville de départ en B9 et la ville s'arrivée en C8 ?
Je suis complètement nul en macro.

Merci les amis
 

ShuarS

XLDnaute Occasionnel
J'ai juste récupéré le code d'un autre fichier disponible sur le forum.
VB:
Option Explicit

' ***********************************************************************
' *****                                                             *****
' *****        CODE PierreP56 : http://tatiak.canalblog.com/        *****
' *****                                                             *****
' ***********************************************************************


Public Const DIST = "http://www.distance2villes.com/recherche?source="


Sub Distance()
Dim lg As Integer, i As Integer
Dim Url As String, Txt As String

    With Sheets("Feuil1")
        lg = .Cells(Rows.Count, 1).End(xlUp).Row
        For i = 2 To lg
            Url = DIST & .Range("A" & i).Value & "&destination=" & .Range("B" & i).Value
            With CreateObject("WINHTTP.WinHTTPRequest.5.1")
                .Open "GET", Url, False
                .send
                Txt = .responseText
            End With
            .Range("C" & i).Value = Split(Split(Txt, "id=""distanciaRuta"">")(1), "</strong>")(0)
        Next i
    End With
End Sub

Malheureusement je n'arrive pas à modifier ce code pour effectuer le calcul sur les deux lignes.
Mais je suis certain que bcp de personne ici pourront le faire :)

Shu
 

golgue

XLDnaute Nouveau
Bonjour à tous,

Si j'ai bien compris le point de départ est toujours en B9 et les points d'arrivée en ligne 8 de C8 à AV8. Dans ce cas, il suffit d'indiquer ces références dans le code et de boucler de C8 à AV8 avec un p'tit contrôle si la case "destination" n'est pas vide, ça donne :
VB:
Option Explicit

' ***********************************************************************
' *****                                                             *****
' *****        CODE PierreP56 : http://tatiak.canalblog.com/        *****
' *****                                                             *****
' ***********************************************************************


Public Const DIST = "http://www.distance2villes.com/recherche?source="


Sub Distance()
Dim lg As Integer, i As Integer
Dim Url As String, Txt As String

    With Sheets("Feuil1")
        For i = 3 To 48 ' C8 à AV8
            If Not .Cells(8, i).Value = "" Then
                Url = DIST & .Range("B9").Value & "&destination=" & .Cells(8, i).Value
                With CreateObject("WINHTTP.WinHTTPRequest.5.1")
                    .Open "GET", Url, False
                    .send
                    Txt = .responseText
                End With
                .Cells(9, i).Value = Split(Split(Txt, "id=""distanciaRuta"">")(1), "</strong>")(0)
            End If
        Next i
    End With
End Sub

nb : ShuarS a de bonnes sources! ;)
Pierre
Bonjour,
c'est pas tout a fait ca:
B7 toujours point de depart
les points d'arriver en ligne 6 de C6 a AW6
et le kilometrage en ligne 5 de C5 a AW5

Petit rappel je suis nul en macro, VBA, ...

merci de me dire aussi comment je l’intègre.

Merci beaucoup
 

golgue

XLDnaute Nouveau
Ok, pas de soucis.

Si B7 est le point de départ => indiquer "B7" : DIST & .Range("B7").Value
Les arrivées en ligne 6 => indiquer 6 : "&destination=" & .Cells(6, i).Value
Et mettre les réponses en ligne 5 => indiquer 5 : .Cells(5, i).Value = Split...
Sinon pour la boucle : For i = 3 To 48 ' C à AV
si on veut aller jusqu'à AW, ce sera : For i = 3 To 49 ' C à AW
49 étant le n° de la colonne AW

VB:
If Not .Cells(8, i).Value = "" Then
    Url = DIST & .Range("B7").Value & "&destination=" & .Cells(6, i).Value
    With CreateObject("WINHTTP.WinHTTPRequest.5.1")
        .Open "GET", Url, False
        .send
        Txt = .responseText
    End With
    .Cells(5, i).Value = Split(Split(Txt, "id=""distanciaRuta"">")(1), "</strong>")(0)
End If

Pierre
Super merci, tu est efficace,
Peut tu juste me dire comment je le mets sur ma feuille , est il possible de mettre un bouton pour lancer le calcul ?
Merci
 

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 907
Membres
101 836
dernier inscrit
karmon