IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Requete en fonction de choix d'une liste a choix multiple


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    assistant contrôle de gestion
    Inscrit en
    Octobre 2013
    Messages
    208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : assistant contrôle de gestion
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2013
    Messages : 208
    Par défaut Requete en fonction de choix d'une liste a choix multiple
    Bonjour à tous,

    J'aimerais pouvoir effectuer X requêtes googleMaps en fonction des choix fait sur une liste de choix multiple d'un formulaire et sauvegarder les différentes réponses puis retourner les réponses (nombre de km et durée de chaque destination sélectionnée en fonction de l'adresse de départ) dans un autres formulaire.

    je dispose d'un fichier si vous avez besoin

    J'ai préparé les formulaires mais je ne sais pas comment continuer. Voici le code utilisé:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    Sub test()
        dep = IIf([C2].Value = "", [C3].Value, [C2].Value)
        fin = IIf([C4].Value = "", [C5].Value, [C4].Value)
        If dep = "" Or fin = "" Then MsgBox "remplir correctement!!! le depart et la destination": pageblanche: Exit Sub
        pageblanche
        Dim tablo(500, 10), tablobase, donnée1 As String
        donnée1 = itineraire(dep, fin)
        '***********************************************tableau de gauche*****************************
        With Sheets(2)
            .[B16] = Split(Split(donnée1, "text"" : """)(1), Chr(34))(0)
            .[B18] = Split(Split(donnée1, "value"" :")(2), "  ")(0)
            .[B19] = Replace(Replace(Split(Split(donnée1, "text"" : """)(2), Chr(34))(0), "heures", ":"), "minutes", ":") & "00"
            .[B22] = dep
            .[B23] = fin
            .[C9] = Split(Split(donnée1, "lat"" :")(2), ",")(0)
            .[C10] = Split(Split(donnée1, "lng"" :")(2), "  ")(0)
            .[C12] = Split(Split(donnée1, "lat"" :")(1), ",")(0)
            .[C13] = Val(Split(Split(donnée1, "lng"" :")(1), "  ")(0))
     
     
        End With
        '***********************************************tableau de droite*****************************
        donnée2 = Split(donnée1, "start_address")(1)
        Debug.Print texte
        tablobase = Split(donnée2, "points")
        For i = 0 To UBound(tablobase) - 2
            tablo(i, 0) = Split(Split(tablobase(i), "html_instructions"" : """)(1), Chr(34))(0)
            tablo(i, 1) = Split(Split(tablobase(i), "text"" : """)(1), Chr(34))(0)
            tablo(i, 2) = Split(Split(tablobase(i), "text"" : """)(2), Chr(34))(0)
            tablo(i, 3) = Split(Split(tablobase(i), "lat"" :")(1), ",")(0)
            tablo(i, 4) = Val(Split(Split(tablobase(i), "lng"" :")(1), "  ")(0))
            tablo(i, 5) = Split(Split(tablobase(i), "lat"" :")(2), ",")(0)
            tablo(i, 6) = Val(Split(Split(tablobase(i), "lng"" :")(2), "  ")(0))
            tablo(i, 7) = "https://maps.google.fr/maps?q=" & tablo(i, 3) & "," & Replace(tablo(i, 4), ",", ".")
     
     
        Next
        Sheets(2).Cells(2, 4).Resize(UBound(tablo), 10) = tablo
    End Sub
    Function itineraire(dep, fin)
        Dim REQ As Object, url As String
        Set REQ = CreateObject("microsoft.xmlhttp")
        'ex:http://maps.google.fr/maps/api/directions/json?origin=toulon 83000,&destination=paris 75000
        url = "http://maps.google.fr/maps/api/directions/json?origin=" & Replace(dep, " ", "") & ",&destination=" & Replace(fin, " ", "")
        With REQ
            .Open "POST", url, False
            .SetRequestHeader "Accept", "text/html, application/xhtml+xml, */*"
            .SetRequestHeader "Accept-Language", "fr-FR"
            .SetRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko"
            .SetRequestHeader "Accept-Encoding", "gzip, deflate"
            .SetRequestHeader "Host", "maps.google.fr"
            .SetRequestHeader "Connection", "Keep - Alive"
            .SetRequestHeader "Cache-Control", "no-cache"
            .send
            itineraire = Replace(.responsetext, vbCrLf, "")
            itineraire = Replace(itineraire, "/", "")
            itineraire = Replace(itineraire, "\", "")
            itineraire = Replace(itineraire, "u003cbu003e", " ")
            itineraire = Replace(itineraire, "points", vbCrLf & "points")
            itineraire = Replace(itineraire, "u003cdiv style=", "")
        End With
    End Function

  2. #2
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    bonjour je t'ai laissé un peu dans le jus pour te faire digérer le passage de l'api a la requête et constate que tu a adopter mon code
    maintenant
    Q1: a tu besoins de toute les données pour la sheets sauvegarde( je pense que non)
    si oui
    Q2: veut tu sauvegarder le sheets itinéraire tel quel pour toutes les adresse??
    réponds a ces deux questions et on verra
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  3. #3
    Membre confirmé
    Homme Profil pro
    assistant contrôle de gestion
    Inscrit en
    Octobre 2013
    Messages
    208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : assistant contrôle de gestion
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2013
    Messages : 208
    Par défaut
    Bonjour Patrick,

    J'utilise ton code étant donné qu'il est mieux apriori meme si tu ne m'as pas encore expliqué comment il fonctionne exactement.

    pour tes question:

    Q1: Je veux sauvegarder que la distance et la durée des itineraires selectionnés.
    Q2: je ne suis pas sur d'avoir compris ta question. Par rapport au fichier, les details de l'itineraire ne m'interesse pas. Le but est de faire un truc simple, ou on rentre une adresse et on selectionne les destionations dans la liste a choix multiple et cela nous indique pour chacun des choix la distance et la durée puis selectionne le plus court dans un autre champs par exemple.

    Voici un fichier, j'ai commencé a concevoir un formulaire avec liste de choix multiple

    ITINERAIRE GOOGLE MAP VER Pat 1.02.xlsm

    Update :
    quelqu'un pour m'aider à avancer?

  4. #4
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    re
    La bonne blague !!
    je t' ai donné une macro toute prête qui te donne ces donnée et plus toute prête avec un départ et une destination
    dans une boucle lancer cette même fonction tu sais pas faire ??????

    dans ces cas la il faut réviser tes bases VBA c'est le B.A.B.A

    tu comprends bien que l'on peut pas tout faire a ta place

    je t'ai fait la fonction parce que c'est quand même un peu complexe

    maintenant le reste c'est de la nioniote pour celui qui s y met un peu
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  5. #5
    Membre confirmé
    Homme Profil pro
    assistant contrôle de gestion
    Inscrit en
    Octobre 2013
    Messages
    208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : assistant contrôle de gestion
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2013
    Messages : 208
    Par défaut
    Bonjour patrick,

    Oui et je te remercie encore pour ton aide, cependant je ne sais pas exactement comment fonctionne la requete, le format attendu pour le depart et la destination

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     url = "http://maps.google.fr/maps/api/directions/json?origin=" & Replace(dep, " ", "") & ",&destination=" & Replace(fin, " ", "")
        With REQ
            .Open "POST", url, False
            .SetRequestHeader "Accept", "text/html, application/xhtml+xml, */*"
            .SetRequestHeader "Accept-Language", "fr-FR"
            .SetRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko"
            .SetRequestHeader "Accept-Encoding", "gzip, deflate"
            .SetRequestHeader "Host", "maps.google.fr"
            .SetRequestHeader "Connection", "Keep - Alive"
            .SetRequestHeader "Cache-Control", "no-cache"
            .send
            itineraire = Replace(.responsetext, vbCrLf, "")
            itineraire = Replace(itineraire, "/", "")
            itineraire = Replace(itineraire, "\", "")
            itineraire = Replace(itineraire, "u003cbu003e", " ")
            itineraire = Replace(itineraire, "points", vbCrLf & "points")
            itineraire = Replace(itineraire, "u003cdiv style=", "")
        End With
    Notamment sur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    origin=" & Replace(dep, " ", "") & ",&destination=" & Replace(fin, " ", "")
    quel est le format, a quoi correspondent les , " " , "" ?
    A quoi correspondent tous les parametres du with?

  6. #6
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    re
    quel est le format, a quoi correspondent les , " " , "" ?
    A quoi correspondent tous les parametres du with?
    avec " ","" je remplace les espace dans les adresses
    pour le with tu n'a rien a toucher pour n'importe quelle adresse c'est toujours pareil
    je m'en occupe la semaine prochaine je suis sur un projet qui me turlupine depuis des mois
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

Discussions similaires

  1. Requête en fonction de choix d'une liste à choix multiples
    Par phoenix974 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 25/06/2016, 10h44
  2. [AC-2010] Utiliser valeur d'une liste de choix dans une liste déroulante d'un autre formulaire
    Par Sébastien1609 dans le forum Macros Access
    Réponses: 1
    Dernier message: 11/06/2015, 15h31
  3. une liste de choix dans une jtable
    Par totomimi dans le forum Composants
    Réponses: 3
    Dernier message: 26/06/2009, 14h28
  4. Réponses: 2
    Dernier message: 30/01/2009, 11h19
  5. créer une liste de choix dans une barre outils
    Par rv-80 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 21/01/2008, 20h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo