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

Excel Discussion :

Comment charger des données dans un formulaire HTML en ligne pour en récupérer les valeurs ?


Sujet :

Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Août 2014
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Comment charger des données dans un formulaire HTML en ligne pour en récupérer les valeurs ?
    Bonjour à tous,

    Voilà, je sais comment récupérer le texte de pages web simple mais dans le cas présent, je souhaiterai ajouter des données à des zones de texte (Code postale) et sélectionner deux listes déroulantes (commune et domaine_travaux) pour en récupérer les valeurs...
    Comment se positionner sur les items des listes déroulantes html à partir de vba ?

    Dans l'onglet Feuil1 se trouvent les données à charger dans le formulaire (Code postale, Nom commune et domaine_travaux), la Feuil2 permet de collecter les données du site pour en extraire les noms des entreprises qui correspondent aux résultats (combinaison des Code postale, Nom commune et domaine_travaux).
    La ligne qui plante est :
    ' InputRGENomCommune.Value = commune
    sans doute car c'est une "form-select required" et non un "Input" mais je n'y connais rien en Html et encore moins en Php.

    Voici mon code :

    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
    Sub test4()
    Dim IE As New InternetExplorer
    Dim IEDoc As HTMLDocument
    Dim InputRGECP As HTMLInputElement
    Dim InputRGENomCommune As HTMLInputElement
    Dim InputRGEDomaine As HTMLInputElement
    Dim InputRGEBouton As HTMLFormElement
    
    Set IE = CreateObject("InternetExplorer.Application")
    IE.Navigate "http://www.monURL"
    
     Do While IE.Busy
           Application.Wait DateAdd("s", 10, Now)
        Loop
    
    Set IEDoc = IE.document
    Set InputRGECP = IEDoc.all("all[code_postal]")
    Set InputRGENomCommune = IEDoc.all("all[commune]")
    Set InputRGEDomaine = IEDoc.all("all[domaine_travaux]")
    
    For Each X In Sheets("Feuil1").Range("A2:" & Sheets("Feuil1").Range("A65536").End(xlUp).Address)
        Sheets("Feuil2").Cells.Clear
        CP = X.Value
        commune = X.Offset(0, 1).Value
        rayon = X.Offset(0, 2).Value
        domaine = X.Offset(0, 3).Value
        With Sheets("Feuil2").QueryTables.Add(Connection:="URL;http://www.monURL", Destination:=Sheets("Feuil2").Range("A1"))
            InputRGECP.Value = CP
            IEDoc.updateSettings
    '        InputRGENomCommune.Value = commune
            InputRGEDomaine.Value = domaine
            
            'Bouton ci-dessous = valisation des données du formulaire pour afficher les résultats, libellé front office : "Localiser des entreprises"
            .Name = "op"
            .BackgroundQuery = True
            .WebSelectionType = xlEntirePage
            .WebFormatting = xlWebFormattingNone
            .Refresh BackgroundQuery:=False
        End With
        
    Next
    End Sub
    Difficile d'expliquer clairement mon problème par mail...
    Merci d'avance pour votre aide très précieuse.

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    bonsoir,
    vu qu'on as pas accès à ton site :

    il faut que tu te débrouille seul en commençant par lire :




  3. #3
    Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Août 2014
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Ok merci, je vais regarder le lien attentivement.
    L'URL en question est : http://www.renovation-info-service.g...-professionnel

  4. #4
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut

    Bonjour, bonjour !

    Rien y connaitre n'empêche pas de commencer par utiliser l'outil d'inspection intégré au navigateur (F12) !
    En sélectionnant le champ, l'élément est localisé dans le code source.

    Une liste déroulante est un élément <select> et ses choix sont des éléments <option>.
    Chaque choix à un code particulier (Value) associée à son texte.
    Pour modifier la liste déroulante, alimenter la propriété Value de l'élément <select> par un code de choix …

    Évidemment en pilotant Internet Explorer il est inutile d'utiliser un objet QueryTable
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  5. #5
    Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Août 2014
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Merci pour votre réponse.
    J'ai bien vu les options et la valeur de chacune. Par exemple :
    en entrant 22, le choix de la liste déroulante est "Isolation des murs et planchers bas" :
    <option value="22">
    Isolation des murs et planchers bas
    </option>
    J'essaie d'attribuer cette valeur en faisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set InputRGEDomaine = IEDoc.all("all[domaine_travaux]")
                    InputRGEDomaine.Value = domaine
    où domaine prend les valeurs de la liste déroulante : 22, 23, 24, etc. mais cela ne fonctionne pas.

    Voir le site http://www.renovation-info-service.g...-professionnel.

    Merci Marc-L et Bbil pour votre aide.

  6. #6
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut

    Par la lecture du tutoriel et en vérifiant via l'utilisation de l'outil d'inspection intégré au navigateur :
    l'id d'un élément supplante sa propriété name avec all

    Pour la propriété name, utiliser getElementsByName renvoyant une collection.


    __________________________________________________________________________________________

    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion …


    _________________________________________________________________________________________________
    Il n'y a pas que les aigles qui atteignent les sommets, les escargots aussi mais ils en bavent !
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

Discussions similaires

  1. Réponses: 2
    Dernier message: 04/10/2012, 10h54
  2. comment insérer des données dans la table via le formulaire
    Par justintak dans le forum Visual Studio
    Réponses: 1
    Dernier message: 16/10/2009, 16h40
  3. Réponses: 5
    Dernier message: 09/10/2008, 20h14
  4. Réponses: 1
    Dernier message: 15/12/2006, 15h04

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