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 :

Transmettre un fichier texte ou une chaîne de caractère à un site web [Toutes versions]


Sujet :

Macros et VBA Excel

  1. #1
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 260
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 260
    Points : 19 423
    Points
    19 423
    Billets dans le blog
    63
    Par défaut Transmettre un fichier texte ou une chaîne de caractère à un site web
    Bonjour à tous,

    Je souhaite copier une chaîne de caractères ou le contenu d'un fichier texte dans une zone de texte sur un site web pour ensuite soumettre le formulaire.

    Mon idée est d'utiliser REST qui se base sur le protocole http, pour ainsi spécifier une méthode (par exemple Post) et un paramètre (ex.: une chaîne de caractères) à la suite de l'adresse web.

    Quelqu'un a-t-il déjà réaliser ce type d'opération en VBA sous EXcel ?

    Par avance merci,
    Cdlt,
    Denis
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  2. #2
    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,

    sans aboutissant, voir déjà l'excellent tutoriel Interaction avec Internet Explorer via VBA Excel

    En utilisant l'outil d'inspection d'un navigateur, il est facile de trouver le nom ou l'id de l'élément à alimenter.


    _____________________________________________________________________________________________________
    Je suis Charlie - Je suis Bardo
    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)

  3. #3
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 260
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 260
    Points : 19 423
    Points
    19 423
    Billets dans le blog
    63
    Par défaut
    Bonsoir,

    Je te remercie, je vais regarder le document et reviendrai si j'ai d'autres questions ou pour clore la discussion.

    Bonne soirée,
    Cdlt,
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  4. #4
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    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 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut
    Bonjour
    tout les sites n'accepte pas forcement la méthode post

    parfois c'est dans le send parfois non et c'est l'url qui doit être complété par la chaine
    le mieux pour toi et de faire l'opération en capturant les opérations avec f12 pour IE pour au moins savoir si le site que tu vise l'accepte

    cela sera un bon début

    re un exemple par la manipulation de l'object IE avec le lien que tu a donné dans ton post
    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
    Option Explicit
    Sub test()
    Dim IE As Object, UrL As String, MyTextaera As Object, resultat As String
    UrL = "http://www.ebi.ac.uk/Tools/hmmer/search/jackhmmer"
    Set IE = CreateObject("internetexplorer.application")
    With IE
    .navigate UrL
    .Visible = True
    Do: DoEvents: Loop While .readystate <> 4 Or .busy
    .document.getelementbyid("seq").Value = "montexte"
    '.document.getelementbyid("subbutton").Click
    ' je suppose qu'a partir de la tu veux récupérer la réponse
    'dans ce cas la se sera
    Do: DoEvents: Loop While .readystate <> 4 Or .busy
    'quand la page a fini de travaillé tu peux aller chercher les résultats dans les elements  avec leur id dela meme manière que montexte a été placé 
    voir la capture d'écran  j'ai annoté leur ID en rouge 
     
     
    resultat =""'a remplacer par ce que tu veux récupérer
    MsgBox resultat
     
    End With
     
    End Sub
    Nom : Capture.JPG
Affichages : 184
Taille : 50,7 Ko
    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
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 260
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 260
    Points : 19 423
    Points
    19 423
    Billets dans le blog
    63
    Par défaut ça fonctionne ;)
    Bonjour à tous,

    C'est bon ça fonctionne, j'ai pu soumettre le texte pour obtenir le résultat voulu.

    Dans un deuxième temps je verrai avec mon client s'il souhaite un upload direct du fichier texte, dans le cas ou les fichiers sont volumineux.

    En attendant, je tiens à remercier les 2 personnes qui m'ont fourni des infos importantes ainsi que l'auteur du tutoriel :

    Je poste au cas ou un extrait de 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
    Dim UrL As String, myText As String
    Dim IE As New InternetExplorer
    Dim IEDoc As HTMLDocument
    Dim InputZoneTexte As HTMLInputElement
    Dim InputBouton As HTMLInputElement
     
    UrL = "http://www.ebi.ac.uk/Tools/hmmer/search/jackhmmer"
     
    IE.navigate UrL
    IE.Visible = True
     
    WaitIE IE
     
    Set IEDoc = IE.Document
     
    Set InputZoneTexte = IEDoc.all("seq")
     
    myText = readFile(ActiveWorkbook.Path & "\mafft-win\output.txt")
     
    InputZoneTexte.Value = myText
     
    'On pointe notre bouton
    Set InputBouton = IEDoc.all("subbutton")
     
    'On simule un clic
    InputBouton.Click
     
     '.Quit
       'On libère les variables
     
    Set InputBouton = Nothing
    Set InputZoneTexte = Nothing
    Set IEDoc = Nothing
    Set IE = Nothing
    avec la fonction wait présentée dans l'article.

    Encore merci,
    Cdlt,
    Denis
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  6. #6
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    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 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    Bonjour
    en tant que développeur informatique tu dois te poser la question est ce que mon client sais ce servir de l'éditeur vbe

    en effet l'utilisateur landa sans connaissance en vba se sert des applications comme tel

    je te suggère de regarder du coté de late/early binding

    car ton code l'obligerait a devoir activer des références et si il ne sais pas ou chercher c'est choux blanc

    attention aussi a l'utilisation du ".all" de l'object document selon les version de IE installées on a des surprises

    je te suggère donc de préférer la fonction "getelementbyID" puisque de la cas de cette page web le name et le ID des éléments visés sont identiques

    je te propose ton model en late binding


    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
    Sub test()
    Dim UrL As String, myText As String
    Dim IE As Object, IEDoc As Object, InputZoneTexte As Object, InputBouton As Object
    Set IE = CreateObject("internetexplorer.application")
    UrL = "http://www.ebi.ac.uk/Tools/hmmer/search/jackhmmer"
     
    IE.navigate UrL
    IE.Visible = True
     
    'WaitIE IE
     Do: DoEvents: Loop While IE.readystate <> 4 Or IE.busy
    Set IEDoc = IE.Document
     
    Set InputZoneTexte = IEDoc.getelementbyID("seq")
     
    myText = readFile(ActiveWorkbook.Path & "\mafft-win\output.txt")
     
    InputZoneTexte.Value = myText
     
    'On pointe notre bouton
    Set InputBouton = IEDoc.getelementbyID("subbutton")
     
    'On simule un clic
    'InputBouton.Click
     
     '.Quit
       'On libère les variables
     
    Set InputBouton = Nothing
    Set InputZoneTexte = Nothing
    Set IEDoc = Nothing
    Set IE = Nothing
    End Sub
    A bon entendeur
    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

  7. #7
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 260
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 260
    Points : 19 423
    Points
    19 423
    Billets dans le blog
    63
    Par défaut
    Merci Patrick,

    ok, je prends note.

    J'ai en effet prévu les 2 cas de figures.

    Note:
    Tu avais juste oublié dans ton code de mettre le InputBouton.Click.

    Il était resté en commentaire

    Cdlt,
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Remplacer une partie du texte dans une chaîne de caractères (Slash)
    Par Medde dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 11/12/2014, 13h57
  2. [DATA] Extraction texte d'une chaîne de caractères
    Par thtghgh dans le forum SAS Base
    Réponses: 1
    Dernier message: 16/04/2014, 09h21
  3. Réponses: 4
    Dernier message: 24/05/2010, 13h06
  4. [XL-2003] sommeprod() + texte parmi une chaîne de caractère
    Par noxaRV dans le forum Excel
    Réponses: 5
    Dernier message: 22/02/2010, 14h03
  5. Réponses: 4
    Dernier message: 24/11/2006, 17h03

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