Exemple Virtual Earth - Boucle sur Feuille Classeur
#1
Débutant XLPages

Inscription: 14/10/2011

Messages: 4

Système d'exploitation:
PC
Version Excel utilisée:
2003
Posté le : 28-10-2011 09h12

Bonjour,

J'ai obtenu votre utilitaire "Exemple Vitual Earth"

Cet utilitaire est vraiement très intéressant, BRAVO pour votre réalisation. Elle laisse libre court à notre imagination pour continuer le travail du créateur.

J'aurais souhaité intégrer l'affichage de mon carnet d'adresses que j'ai saisi dans un onglet appelé 'carnet', contenant, les coordonées GPS

J'ai effectué une boucle en intégrant le code suivant :

Private Sub CommandButton1_Click()

Dim WS As Worksheet
Dim s As Long
Dim Java1 As String
      
Set WS = Worksheets("adresses")
    With WS
    s = 2
        While .Range("A" & s).Value <> ""
                Java1 = "Var Mark = new VEShape (VEShapeType.Pushpin, new VELatLong(" & Cells(s, 6).Value & "));" _
                & "Mark.SetTitle(" & Cells(s, 1).Value & ");" _
                & "Mark.SetDescription(" & Cells(s, 7).Value & ");" _
                & "map.AddShape(Mark);"
               
                EnvoiScript Java1
               
                s = s + 1
         Wend
    End With


End Sub

Lors de l'execution, j'ai un message d'erreur me renvoyant vers le browser :

 WebBrowser1.Document.parentWindow.execScript Js, "Javascript"

Auriez vous une solution a m'apporter afin de rappatrier mon carnet vers la carte ?

Par avacance, merci
--------------------------
Après avoir modifié de la facon suivante :

Private Sub CommandButton1_Click()

Dim s As Long
Dim Java1 As String

s = 2
        While Sheets("adresses").Range("A" & s).Value <> ""
                Java1 = "Var Mark = new VEShape (VEShapeType.Pushpin, new VELatLong(" & Sheets("adresses").Cells(s, 6).Value & "));" _
                & "Mark.SetTitle(" & Sheets("adresses").Cells(s, 1).Value & ");" _
                & "Mark.SetDescription(" & Sheets("adresses").Cells(s, 7).Value & ");" _
                & "map.AddShape(Mark);"
               
                EnvoiScript Java1
               
                s = s + 1
               
        Wend

End Sub

j'ai le résultat suivant : erreur sur fichier de connection :  " ; " attendu
puis :

Private Sub EnvoiScript(Js As String)
    'Exécute la fonction JavaScript passée en argument sous forme d'une chaîne de caractères.
    WebBrowser1.Document.parentWindow.execScript Js, "Javascript"
End Sub


Merci pour vos conseils avisés

Edité par vl4026 le 28/10/2011 12:00:55
Hors Ligne
Rapport   Haut 

Re: Exemple Virtual Earth - Boucle sur Feuille Classeur
#2
Webmestre

Inscription: 18/05/2006
De Saône-et-Loire (71)

Messages: 1539

Système d'exploitation:
PC
Version Excel utilisée:
97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365
Posté le : 30-10-2011 22h27
Bonsoir Vl4026, bienvenue sur XLpages.com

Tout d'abord, merci pour l'intérêt que tu portes à cette réalisation et bravo à toi pour ton investissement dans un projet qui t'es propre. Je te souhaite la meilleure avancée sur ce sujet fort intéressant.

Navré, mais comme je l'explique ICI, je n'assure plus d'échange sur cette expérience qui s'éloigne un peu trop du sujet du présent site d'apprentissage Excel.
Même si j'ai un peu continué mes recherches sur ce sujet particulier, je ne dispose pas de suffisamment de temps libre pour intégrer ce type de développement au présent site. Sans doute reprendrais-je, plus tard, des articles ou tutoriels sur ce sujet particulier...

Bien cordialement,



Didier_mDF
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 

Re: Exemple Virtual Earth - Boucle sur Feuille Classeur
#3
Débutant XLPages

Inscription: 14/10/2011

Messages: 4

Système d'exploitation:
PC
Version Excel utilisée:
2003
Posté le : 31-10-2011 10h38
Bonjour Didier,

Merci pour ton retour rapide.

Je comprends tout a fait ce que tu veux dire.

Je trouve cela bien de nous avoir fait part de tes recherches, et que tu souhaites passer " a autre chose". Je te souhaites une bonne continuation.

Si quelque un a connaissance de ce message et est en mesure de m'enveler cette épine du pied, ce serait super, car malgré mes recherches sur le net et diverses doc, je retrouve rien ... je suis bloqué.

Par avance, merci

Bien cordialement.

Hors Ligne
Rapport   Haut 

Re: Exemple Virtual Earth - Boucle sur Feuille Classeur
#4
Webmestre

Inscription: 18/05/2006
De Saône-et-Loire (71)

Messages: 1539

Système d'exploitation:
PC
Version Excel utilisée:
97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365
Posté le : 31-10-2011 18h49
Bonjour Vl4026,

Juste en passant et parce que j'apprécie ta compréhension de la situation...

A tout hasard, tu peux peut-être tenter cette piste :
Private Sub CommandButton1_Click()
Dim s As Long
Dim Java1 As String
s = 2
        While Sheets("adresses").Range("A" & s).Value <> ""
                Java1 = "Var Mark = new VEShape (VEShapeType.Pushpin, new VELatLong(" & Sheets("adresses").Cells(s, 6).Value & "));" _
                & "Mark.SetTitle('" & Sheets("adresses").Cells(s, 1).Value & "');" _
                & "Mark.SetDescription('" & Sheets("adresses").Cells(s, 7).Value & "');" _
                & "map.AddShape(Mark);"

                EnvoiScript Java1

                s = s + 1
        Wend
End Sub
Il faut être hyper-vigilant pour retranscrire les commandes Javascript depuis des lignes VBA et ne surtout pas oublier les apostrophes (remplaçant les guillemets habituellement utilisés pour nous)... Apostrophes que j'ai ajoutées en rouge dans le code VBA ci-dessus.

Par ailleurs, si tes expressions chaines de caractères issues des cellules de ta feuille contiennent elles-même des apostrophes, il te faudra aussi agir :
Et pour rappel, dans le Tutoriel Exemple Virtual Earth, je précisais :

'Attention, ici l'apostrophe remplace les guillemets dans les instructions JavaScript.
        'Aussi, si l'adresse saisie contient une apostrophe, il convient de faire précéder cette
'dernière par un caractère \ pour éviter un plantage du script.

Voilà, je pense que c'est une des pistes à suivre pour ton problème...

Bonne continuation à toi.

Cordialement,


Nb : pour insérer du code VBA dans les posts, merci de consulter cette FAQ.


Didier_mDF
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 

Re: Exemple Virtual Earth - Boucle sur Feuille Classeur
#5
Débutant XLPages

Inscription: 14/10/2011

Messages: 4

Système d'exploitation:
PC
Version Excel utilisée:
2003
Posté le : 01-11-2011 14h52
Bonjour Didier,

Merci de m'avoir consacré un peu de temps.

Désolé pour la mise en forme de mon post, il est vrai que je n'ai pas trop l'habitude de solliciter de l'aide sur les forums ; j'ai plus l'habitude de trouver des solutions par moi même ; mais là, c'est la "colle".

J'avais en effet testé les apostrophes avant les guillemets, mais le résultat restait inchangé :

Private Sub EnvoiScript(Js As String)
    'Exécute la fonction JavaScript passée en argument sous forme d'une chaîne de caractères.
    WebBrowser1.Document.parentWindow.execScript Js, "Javascript"
End Sub


J'ai également pensé à une erreur sur ma boucle et en ai refaite une :

Private Sub TEST2_Click()

Dim a As Integer
Dim Javater As String

Private Sub TEST2_Click()

Dim a As Integer
Dim Javater As String

For a = 2 To Sheets("contacts").Range("A65536").End(xlUp).Row

Javater = "Var Mark = new VEShape (VEShapeType.Pushpin, new VELatLong('" & Sheets("contacts").Cells(a, 6).Value & "'))';" _
& "Mark.SetTitle('" & Sheets("contacts").Cells(a, 1).Value & "');" _
& "Mark.SetDescription('" & Sheets("contacts").Cells(a, 7).Value & "');" _
& "map.AddShape(Mark);"
                
EnvoiScript Javater

Next a

End Sub

Le résultat reste le même

A toute fin utile, je vous adresse mon fichier Excel.

Cordialement.




Pièce jointe:
zip contact.zip   [ Taille: 30.29 Ko - Téléchargements: 579 ]
Hors Ligne
Rapport   Haut 

Re: Exemple Virtual Earth - Boucle sur Feuille Classeur
#6
Webmestre

Inscription: 18/05/2006
De Saône-et-Loire (71)

Messages: 1539

Système d'exploitation:
PC
Version Excel utilisée:
97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365
Posté le : 01-11-2011 22h07
Bonsoir Vl4026,

Arf, je n'avais pas fait attention... (et toi non plus ! )

Comme je le précisais, Javascript est un langage très susceptible, aussi ce n'est pas...
Java1 = "Var Mark = new VEShape (VEShapeType.Pushpin, new VELatLong(...
... qu'il convient d'écrire, mais :
Java1 = "var Mark = new VEShape (VEShapeType.Pushpin, new VELatLong(...
Test réalisé sur ton classeur et ça fonctionne.
Attention donc à la casse (dans tous les sens du terme )

Et je confirme bien la présence in-dis-pen-sa-ble des Apostrophes comme je l'indique plus haut.

Cela dit, attention : si tu regardes bien ce que j'ai indiqué dans mon précédent post, il y a apostrophes pour SetTitle et pour SetDescription (car chaines de caractères attendues), mais pas pour new VELatLong (comme tu l'as fait) !

Voilà, tu l'auras compris, juste une petite info mais pas de cours Javascript ici (j'en serais bien incapable ).
Et je te souhaite donc une bonne continuation pour ton projet.

(si la réponse te convient, merci d'appliquer ce qui est indiqué au bas de ma signature)

Bien cordialement,

Didier_mDF
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 

Re: Exemple Virtual Earth - Boucle sur Feuille Classeur
#7
Débutant XLPages

Inscription: 14/10/2011

Messages: 4

Système d'exploitation:
PC
Version Excel utilisée:
2003
Posté le : 02-11-2011 10h48
Didier,

Tu es un magicien

Tes précieux conseils m'ont permis de comprendre que le JS est très "sensible" (une apostrophe, une majuscule ...)

J'apprecise énormément le temps qu tu m'a consacré.

Si dans l'avenir, je peux te rendre la pareille, cela sera avec plaisir (malgré mes faibles compétences en JS, tu as pu t'en rendre compte)

PS : je me suis aperçu également d'un autre petit dysfonctionnement, il ne faut pas d'apostrophe dans les données (sauf en utilisant "substitute")

Encore Mille mercis

Très cordialement.

Hors Ligne
Rapport   Haut 


Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Qui consulte actuellement ce sujet ?   1 Utilisateur(s) anonymes