I try to change the value of one vertice and I found the way to do it but the polygone on the map is not update it. Here is a code sample:

n = UBound(ObjMap.Shapes.Item(k).Vertices)
12 Set ObjMap.Shapes.Item(k).Vertices(0) = ObjMap.GetLocation(35.77777, -97.77777)
For i = 0 To n
latitude = 90# - 180# * ObjMap.Distance(locNorthPole, ObjMap.Shapes.Item(k).Vertices(i)) / dblHalfEarth
d = ObjMap.Distance(ObjMap.GetLocation(latitude, 0), ObjMap.Shapes.Item(k).Vertices(i))
l = (latitude / 180) * Pi
longitude = 180 * Arccos((Cos((d * 2 * Pi) / (2 * dblHalfEarth)) - Sin(l) * Sin(l)) / (Cos(l) * Cos(l))) / Pi
If ObjMap.Distance(locSantaCruz, ObjMap.Shapes.Item(k).Vertices(i)) < dblQuarterEarth Then longitude = -longitude
Debug.Print i & ": " & longitude & " / " & latitude
Next i
RESULT
0: -97.5123170983485 / 35.4353614413066
1: -97.5299636424534 / 35.4353614413066
2: -97.529868993098 / 35.4208178610457
3: -97.5122831335439 / 35.4208358271732

On line 12 I change the value of vertice(0) and VB don't give me error, but when I check the longitude and latitude values of the vertices, I still have the original value. I would like to know if someone know to change the value of the vertices with out deleting the shape and create a new one with the new value ?