Bonjour,
J'ai essayé de faire clair dans le titre mais bon, je manque de vocabulaire VBA.
Alors voilà, j'utilise un code pour calculer les distance routière entre plusieurs villes et j'utilise la fonctionnalité for each x in. Mon problème est que la plage que je définis est variable situé entre la cellule L6 et la cellule contenant "Fin trajet", cela marchait jusqu'à présent mais maintenant quoiqu'il se passe ( que j'ai entré 1 ou 15 villes ) la plage se limite à 4 cellules.
Voici le code :
Sub ITIN()
Shell "RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 8"
Worksheets(3).Visible = True
Worksheets(1).Unprotect ("FB")
Worksheets(1).Activate
Range("O6😛21").ClearContents
Range("l21").End(xlUp).Offset(1, 0).Value = Range("L6").Value
Set Fin = Sheets("Simulation").Cells.Find("Fin Trajet")
For Each x In Sheets("Simulation").Range("L6:" & Fin.Offset(-1, 0).Address)
If Not IsEmpty(x) Then
Sheets("Itin").Cells.Clear
Depart = x.Value
Arrivee = x.Offset(1, 0).Value
With Sheets("Itin").QueryTables.Add(Connection:="URL;http://maps.google.fr/maps?f=d&saddr=" & Depart & "&daddr=" & Arrivee, Destination:=Sheets("Itin").Range("A1"))
.Name = "itinéraire"
.BackgroundQuery = True
.WebSelectionType = xlEntirePage
.WebFormatting = xlWebFormattingNone
.Refresh BackgroundQuery:=False
End With
Set result = Sheets("Itin").Cells.Find("1. 1.")
If result Is Nothing Then
Else
km = Split(result.Offset(3, 0), " km")
x.Offset(1, 3) = km(0)
x.Offset(1, 4) = result.Offset(1, 0)
End If
Else
End If
Next
Worksheets(1).Protect ("FB")
Worksheets(3).Visible = False
End Sub
J'ai mis en rouge les lignes concernant mon problème. VBA ne détecte aucune erreur ou bug dans le code mais il ne fonctionne pas comme je le voudrais. Pensez-vous que le problème vienne du code ou de ma feuille excel ?
J'ai essayé de faire clair dans le titre mais bon, je manque de vocabulaire VBA.
Alors voilà, j'utilise un code pour calculer les distance routière entre plusieurs villes et j'utilise la fonctionnalité for each x in. Mon problème est que la plage que je définis est variable situé entre la cellule L6 et la cellule contenant "Fin trajet", cela marchait jusqu'à présent mais maintenant quoiqu'il se passe ( que j'ai entré 1 ou 15 villes ) la plage se limite à 4 cellules.
Voici le code :
Sub ITIN()
Shell "RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 8"
Worksheets(3).Visible = True
Worksheets(1).Unprotect ("FB")
Worksheets(1).Activate
Range("O6😛21").ClearContents
Range("l21").End(xlUp).Offset(1, 0).Value = Range("L6").Value
Set Fin = Sheets("Simulation").Cells.Find("Fin Trajet")
For Each x In Sheets("Simulation").Range("L6:" & Fin.Offset(-1, 0).Address)
If Not IsEmpty(x) Then
Sheets("Itin").Cells.Clear
Depart = x.Value
Arrivee = x.Offset(1, 0).Value
With Sheets("Itin").QueryTables.Add(Connection:="URL;http://maps.google.fr/maps?f=d&saddr=" & Depart & "&daddr=" & Arrivee, Destination:=Sheets("Itin").Range("A1"))
.Name = "itinéraire"
.BackgroundQuery = True
.WebSelectionType = xlEntirePage
.WebFormatting = xlWebFormattingNone
.Refresh BackgroundQuery:=False
End With
Set result = Sheets("Itin").Cells.Find("1. 1.")
If result Is Nothing Then
Else
km = Split(result.Offset(3, 0), " km")
x.Offset(1, 3) = km(0)
x.Offset(1, 4) = result.Offset(1, 0)
End If
Else
End If
Next
Worksheets(1).Protect ("FB")
Worksheets(3).Visible = False
End Sub
J'ai mis en rouge les lignes concernant mon problème. VBA ne détecte aucune erreur ou bug dans le code mais il ne fonctionne pas comme je le voudrais. Pensez-vous que le problème vienne du code ou de ma feuille excel ?