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 :

Excel et Google Alert via du VBA


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Project Manager
    Inscrit en
    Avril 2020
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Canada

    Informations professionnelles :
    Activité : Project Manager

    Informations forums :
    Inscription : Avril 2020
    Messages : 8
    Par défaut Excel et Google Alert via du VBA
    Bonjour tout le monde,

    Je possède une base de données personnelle sous Excel qui m’aide à faire une surveillance sur un certain nombre de produit.

    Pour vous donner un exemple parlant, j’ai un nom, MR X, associe à un véhicule, un numéro de série et a une immatriculation.
    Présentement j’ai un bouton qui me lance automatiquement Chrome et m’amène sur la bonne page de recherche google, là je vois si de nouveau résultat sont là. Ce qui donnerait dans mon exemple: https://www.google.com/search?q=Rena...S/N+%229578%22

    Avec presque 200 lignes maintenant, cela devient ingérable. Je pensais donc créer des alertes Google pour surveiller tout ça passivement. Sauf que rentrer 200 recherches à la fois et toutes celles que je vais ajouter dans le futur, ça ne va pas être marrant.
    J’ai donc essayé de créer une macro sous vba qui ajouterait automatiquement ma nouvelle ligne a mes recherches Google, j’ai lu que passer par IE serait plus facile car il comprend le vba.

    En me basant sur ce tuto (https://qwazerty.developpez.com/tuto...-et-vba-excel/) , j'ai commence a écrire le début du code base sur un autre:

    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
    Sub GoogleAlert()
    'This will load a webpage in IE
        Dim i As Long
        Dim URL As String
        Dim IE As Object
        Dim objElement As Object
        Dim objCollection As Object
     
        'Create InternetExplorer Object
        Set IE = CreateObject("InternetExplorer.Application")
     
        'Set IE.Visible = True to make IE visible, or False for IE to run in the background
        IE.Visible = True
     
        'Define URL
        URL = "https://www.google.ca/alerts"
     
        'Navigate to URL
        IE.Navigate URL
     
        ' Statusbar let's user know website is loading
        Application.StatusBar = URL & " is loading. Please wait..."
     
        ' Wait while IE loading...
        'IE ReadyState = 4 signifies the webpage has loaded (the first loop is set to avoid inadvertently skipping over the second loop)
        Do While IE.ReadyState = 4: DoEvents: Loop   'Do While
        Do Until IE.ReadyState = 4: DoEvents: Loop   'Do Until
     
        'Webpage Loaded
        Application.StatusBar = URL & " Loaded"
     
        'Unload IE
        Set IE = Nothing
        Set objElement = Nothing
        Set objCollection = Nothing
     
    End Sub
    Puis me basant sur le tuto j'ai voulut continuer mais je n'ai pas réussit a identifier les éléments de la page que je vais devoir remplir, j’étais partit pour utiliser ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        'On pointe notre Zone de texte
        Set InputGoogleZoneTexte = IEDoc.all(???)
     
        'On définit le texte que l'on souhaite placer à l'intérieur
        InputGoogleZoneTexte.Value = var

    Merci d'avance,

  2. #2
    Membre Expert Avatar de mfoxy
    Homme Profil pro
    Automation VBA
    Inscrit en
    Février 2018
    Messages
    752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Automation VBA
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2018
    Messages : 752
    Par défaut Peut-être plus simple
    Bonjour tintin,

    Avec Google tu peu te passer de l'interaction de recherche pour la passer directement tes variable dans l'url.

    Si tu regarde ton URL Google après ta recherche Renault laguna

    https://www.google.com/search?q=Rena...S/N+%229578%22

    Tu remarqueras que ton critère est bien présent après q=

    Tu pourrais donc modifier directement cette URL pour le . Navigate de ta macro en affectant la valeur de ta cellule directement après le q=

    Exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Marecherche = Mercedes+C220
    IE. Navigate "https://www.google.com/search?q=" & Marecherche
    Ça t'évitera de manipuler les boutons de recherche Google et une boucle d'attente puisque directement ouvert sur la recherche

  3. #3
    Membre du Club
    Homme Profil pro
    Project Manager
    Inscrit en
    Avril 2020
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Canada

    Informations professionnelles :
    Activité : Project Manager

    Informations forums :
    Inscription : Avril 2020
    Messages : 8
    Par défaut
    Bonjour mfoxy,

    Déjà merci pour ta réponse.
    C'est ce que j'ai fait pour ma première marco, elle battit en fait une url de recherche.

    Le problème c'est que ça ne marche pas avec google alert, l'url ne peut pas se bâtir car elle se présente sous cette forme: https://www.google.ca/alerts#1 puis s’incrémente d'une manière que je ne peux pas controler.

    T.

  4. #4
    Membre Expert Avatar de mfoxy
    Homme Profil pro
    Automation VBA
    Inscrit en
    Février 2018
    Messages
    752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Automation VBA
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2018
    Messages : 752
    Par défaut
    Re Tintin,

    Je n'ai jms utilisé Google alert.

    Je jette un œil demain, dès que je saurais car bcp de boulot avec toute cette histoire de c-19, et reviendrai vers toi dès que possible.

  5. #5
    Membre du Club
    Homme Profil pro
    Project Manager
    Inscrit en
    Avril 2020
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Canada

    Informations professionnelles :
    Activité : Project Manager

    Informations forums :
    Inscription : Avril 2020
    Messages : 8
    Par défaut
    Aucun soucis, je comprends parfaitement!

    Je vais continuer a travailler dessus de mon cote mais j'ai bien peur que mes compétences soient beaucoup trop limite en VBA pour comprendre ce que je fais (après ya la chance )

    T.

  6. #6
    Membre du Club
    Homme Profil pro
    Project Manager
    Inscrit en
    Avril 2020
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Canada

    Informations professionnelles :
    Activité : Project Manager

    Informations forums :
    Inscription : Avril 2020
    Messages : 8
    Par défaut
    J'ai réussit a mixer 2 morceaux de code pour que ça fasse ce que je veux:

    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 GoogleAlert()
    'This will load a webpage in IE
        Dim URL As String
        Dim IE As Object
        var = ActiveCell
     
         'initiating a new instance of Internet Explorer and asigning it to objIE
        Set IE = New InternetExplorer
     
        'Create InternetExplorer Object
        Set IE = CreateObject("InternetExplorer.Application")
     
        'Set IE.Visible = True to make IE visible, or False for IE to run in the background
        IE.Visible = True
     
        'Define URL
        URL = "https://www.google.ca/alerts"
     
        'Navigate to URL
        IE.navigate URL
     
        ' Statusbar let's user know website is loading
        Application.StatusBar = URL & " is loading. Please wait..."
     
        ' Wait while IE loading...
        'IE ReadyState = 4 signifies the webpage has loaded (the first loop is set to avoid inadvertently skipping over the second loop)
        Do While IE.readyState = 4: DoEvents: Loop   'Do While
        Do Until IE.readyState = 4: DoEvents: Loop   'Do Until
     
        IE.document.getElementById("search_box").getElementsByTagName("input")(0).Value = var
        IE.document.all("create_alert").Click
     
    End Sub

    La prochaine étape maintenant est que je modifie les options, je souhaite modifier la fréquence et la langue qui sont par défaut.

Discussions similaires

  1. [XL-2010] Insérer une formule excel dans un tableau via macro (VBA)
    Par mfall76 dans le forum Excel
    Réponses: 5
    Dernier message: 19/06/2018, 16h27
  2. Ouvrir un fichier excel en lecture seule via VBA
    Par mbellemax dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 01/12/2017, 13h35
  3. Réponses: 0
    Dernier message: 13/11/2008, 23h47
  4. Réponses: 8
    Dernier message: 09/10/2008, 16h28
  5. Accés au donnés sur Excel via Code vba Access
    Par sakia dans le forum VBA Access
    Réponses: 1
    Dernier message: 24/11/2007, 16h46

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