Recherche et click lien IE
Résolu/Fermé
sormick
-
Modifié par Whismeril le 10/12/2014 à 18:03
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 23 déc. 2014 à 18:32
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 23 déc. 2014 à 18:32
A voir également:
- Recherche et click lien IE
- Lien url - Guide
- Créer un lien pour partager des photos - Guide
- Verifier un lien - Guide
- Lien copié - Forum Téléphones & tablettes Android
- Recherche automatique des chaînes ne fonctionne pas - Guide
3 réponses
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
11 déc. 2014 à 08:17
11 déc. 2014 à 08:17
Bonjour,
Sans avoir accès au code-source du site en question il va nous être très difficile de te répondre.
Néanmoins, la fonction javascript que tu lances habituellement par le clic peut être lancée par VBA.
Un exemple :
- dans le code source, le lien javascript sur lequel cliquer :
- le code VBA serait :
Comme tu peut le voir, on exécute (execScript) la fonction javascript fcDoAction en lui passant le paramètre : ('BADGER_ES')...
Sans avoir accès au code-source du site en question il va nous être très difficile de te répondre.
Néanmoins, la fonction javascript que tu lances habituellement par le clic peut être lancée par VBA.
Un exemple :
- dans le code source, le lien javascript sur lequel cliquer :
<td width="300px"><a class="boutonAction" href="javascript:fcDoAction('BADGER_ES')">Badger une entrée / sortie</a></td>
- le code VBA serait :
IEDoc.parentWindow.execScript "fcDoAction('BADGER_ES');", "javascript"
Comme tu peut le voir, on exécute (execScript) la fonction javascript fcDoAction en lui passant le paramètre : ('BADGER_ES')...
Bonjour!!
Quelque chose de nouveau pour la question ci-dessus?
cordialement,
sormick
Quelque chose de nouveau pour la question ci-dessus?
cordialement,
sormick
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
16 déc. 2014 à 19:55
16 déc. 2014 à 19:55
Bonjour,
Effectivement je t'ai oublié...
Fais moi un rappel à ce sujet demain si je n'y pense pas.
Effectivement je t'ai oublié...
Fais moi un rappel à ce sujet demain si je n'y pense pas.
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
Modifié par pijaku le 17/12/2014 à 10:42
Modifié par pijaku le 17/12/2014 à 10:42
Bonjour,
Je reprend tes questions une par une :
Le code que je t'ai donné :
à essayer :
Euh... Logiquement non. Le code source de la page, une fois ton bouton javascript cliqué est différent du code source de la page avant le clic. Il te faut celui de la page avant le clic...
As tu un message d'erreur? que se passe t'il concrètement?
Si cela ne fonctionne pas, peut être que ta page IE n'est pas chargée complètement. Pour cela, il te faut en attendre le chargement complet, grâce à une boucle.
Exemple :
Tu devrais obtenir une page IE pointant sur CCM avec ce message :
Normal puisque le membre toto n'a pas motdepassedetoto comme mot de passe...
Par contre, sans la boucle d'attente, tu te retrouves avec une erreur VBA d'automation blabla...
🎼 Cordialement,
Franck 🎶
Je reprend tes questions une par une :
Voici le code javascript que j'ai trouvé:
javascript:fcDetailC('8232719310','11/12/14','12/12/14');
je n'ai pas tous les détails du code source.
Est ce qu'avec ce code on peut exploiter quelque chose?
et ce code que vous m'avez fourni:
IEDoc.parentWindow.execScript "fcDoAction('BADGER_ES');", "javascript"
peut être que je peux le trouver mais je ne sais même pas par ou commencer.
Le code que je t'ai donné :
IEDoc.parentWindow.execScript "fcDoAction('BADGER_ES');", "javascript"est fonction du Code source de la page qui m'intéressait. Tu dois pouvoir adapter ce code avec le code source de ta page à toi.
à essayer :
IEDoc.parentWindow.execScript "fcDetailC('8232719310','11/12/14','12/12/14');", "javascript"
j'ai quand même accès au code source de la page ouverte une fois le lien clické
fonctionnerait t'il le click avec celui la?
Euh... Logiquement non. Le code source de la page, une fois ton bouton javascript cliqué est différent du code source de la page avant le clic. Il te faut celui de la page avant le clic...
et quel serait la variable vba la mieux adaptée pour IEDOC?
j'ai essayé dim IEDOC as htmldcoument mais ça ne marche pas.
Dim IEDoc As HTMLDocumentest le type le mieux adapté. Après, tu dis "ça ne marche pas", ça ne m'aide pas à savoir ce qui se passe...
As tu un message d'erreur? que se passe t'il concrètement?
Si cela ne fonctionne pas, peut être que ta page IE n'est pas chargée complètement. Pour cela, il te faut en attendre le chargement complet, grâce à une boucle.
Exemple :
Sub testAvecAttente() 'cocher les références : 'Microsoft HTML Object Library 'et 'Microsoft Internet Controls Dim maPage As New InternetExplorer Dim maPage_Doc As HTMLDocument maPage.navigate "http://www.commentcamarche.net/" maPage.Visible = True '***Boucle d'attente*** Do Until maPage.ReadyState = READYSTATE_COMPLETE: DoEvents: Loop 'A partir d'ici ta page est chargée Set maPage_Doc = maPage.document Dim Ident As HTMLInputElement Dim Pass_word As HTMLInputElement Dim Soumettre As HTMLInputElement Set Ident = maPage_Doc.all("login") Set Pass_word = maPage_Doc.all("pass") 'évite une erreur si déjà connecté On Error Resume Next Ident.Value = "toto" Pass_word.Value = "motdepassedetoto" Set Soumettre = maPage_Doc.all("log_in") Soumettre.Click On Error GoTo 0 End Sub
Tu devrais obtenir une page IE pointant sur CCM avec ce message :
Erreur
L'authentification a échoué !
Pour recevoir par courrier électronique vos données d'identification, cliquez ici!
Pour devenir membre cliquez ici!
Normal puisque le membre toto n'a pas motdepassedetoto comme mot de passe...
Par contre, sans la boucle d'attente, tu te retrouves avec une erreur VBA d'automation blabla...
Sub testSansAttente() 'cocher les références : 'Microsoft HTML Object Library 'et 'Microsoft Internet Controls Dim maPage As New InternetExplorer Dim maPage_Doc As HTMLDocument maPage.navigate "http://www.commentcamarche.net/" maPage.Visible = True 'Do Until maPage.ReadyState = READYSTATE_COMPLETE: DoEvents: Loop Set maPage_Doc = maPage.document Dim Ident As HTMLInputElement Dim Pass_word As HTMLInputElement Dim Soumettre As HTMLInputElement Set Ident = maPage_Doc.all("login") Set Pass_word = maPage_Doc.all("pass") 'évite une erreur si déjà connecté On Error Resume Next Ident.Value = "toto" Pass_word.Value = "motdepassedetoto" Set Soumettre = maPage_Doc.all("log_in") Soumettre.Click On Error GoTo 0 End Sub
🎼 Cordialement,
Franck 🎶
par contre le problème c'est que je ne veux pas aller à une adresse web précise.
je dois prendre le contrôle d'une fenêtre internet explorer déjà ouverte.
car il n'y a pas de lien direct ou j'ai accès à ces liens!
voici le code que j'ai:
voilà peut être pourquoi le dim maPage_Doc As HTMLDocument
ne fonctionne pas!
(type défini par l'utilisateur non défini)
je dois prendre le contrôle d'une fenêtre internet explorer déjà ouverte.
car il n'y a pas de lien direct ou j'ai accès à ces liens!
voici le code que j'ai:
Dim hwnd&, Style&, Title$, i& hwnd = GetWindow(GetDesktopWindow(), 5) Do While hwnd Title = GetCaption(hwnd) If Len(Title) Then ' Enum visible windows only If GetWindowLong(hwnd, -16) And &H10000000 Then If InStr(1, Title, "webrecherche", 1) Then AppActivate Title iedoc.parentWindow.execScript "fcDoAction('BADGER_ES');", "javascript" Exit Sub End If End If End If hwnd = GetWindow(hwnd, 2) Loop MsgBox "Aucune fenêtre Firefox trouvée !", 64
voilà peut être pourquoi le dim maPage_Doc As HTMLDocument
ne fonctionne pas!
(type défini par l'utilisateur non défini)
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
>
sormick
18 déc. 2014 à 07:52
18 déc. 2014 à 07:52
Bonjour,
je dois prendre le contrôle d'une fenêtre internet explorer déjà ouverte.
Cette page Internet, même s'il s'agit d'un Intranet ou d'autre chose, possède forcément une URL, une adresse. Du style http://monsite.
Du coup, l'astuce n'est pas de contrôler la fenêtre qui est déjà ouverte, mais d'en ouvrir une nouvelle dans un objet Internet Explorer.
En faisant selon ta méthode, le code ne pourra jamais fonctionner. La seule manière d'arriver à tes fins en suivant ta méthode est d'utiliser des SendKeys (simulation de touches). Mais ça n'est pas propre.
Peut être pourrais tu me passer l'adresse du site?
je dois prendre le contrôle d'une fenêtre internet explorer déjà ouverte.
Cette page Internet, même s'il s'agit d'un Intranet ou d'autre chose, possède forcément une URL, une adresse. Du style http://monsite.
Du coup, l'astuce n'est pas de contrôler la fenêtre qui est déjà ouverte, mais d'en ouvrir une nouvelle dans un objet Internet Explorer.
En faisant selon ta méthode, le code ne pourra jamais fonctionner. La seule manière d'arriver à tes fins en suivant ta méthode est d'utiliser des SendKeys (simulation de touches). Mais ça n'est pas propre.
Peut être pourrais tu me passer l'adresse du site?
sormick
>
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
19 déc. 2014 à 14:35
19 déc. 2014 à 14:35
Bonjour
malheureusement je ne peux pas vous fournir l'adresse car elle est en réseau local.
En tout cas merci beaucoup à vous tous.
j'essayerais de savoir si une autre piste est possible ou non.
malheureusement je ne peux pas vous fournir l'adresse car elle est en réseau local.
En tout cas merci beaucoup à vous tous.
j'essayerais de savoir si une autre piste est possible ou non.
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
>
sormick
19 déc. 2014 à 14:44
19 déc. 2014 à 14:44
Bonjour,
En tout cas merci beaucoup à vous tous.
Tu crois que je suis plusieurs?
En tout cas, de rien
En tout cas merci beaucoup à vous tous.
Tu crois que je suis plusieurs?
En tout cas, de rien
Modifié par sormick le 12/12/2014 à 19:04
Voici le code javascript que j'ai trouvé:
javascript:fcDetailC('8232719310','11/12/14','12/12/14');
je n'ai pas tous les détails du code source.
Est ce qu'avec ce code on peut exploiter quelque chose?
et ce code que vous m'avez fourni:
IEDoc.parentWindow.execScript "fcDoAction('BADGER_ES');", "javascript"
peut être que je peux le trouver mais je ne sais même pas par ou commencer.
j'ai quand même accès au code source de la page ouverte une fois le lien clické
fonctionnerait t'il le click avec celui la?
et quel serait la variable vba la mieux adaptée pour IEDOC?
j'ai essayé dim IEDOC as htmldcoument mais ça ne marche pas.
j'ai excel 2010
23 déc. 2014 à 17:22
je suis actuellement à la recherche d'une solution pour un VBScript qui est basé sur le code de source exactement le même que vous utilisez dans votre exemple (fcdoAction(BADGER_ES)
Je ai essayé beaucoup d'heures mais je n' arrive pas le script à exécuter le (BADGER_ES)
Il' y a toujours l'erreur "could not complete the operation due to error 80020101.
avez-vous par hasard une solution qui fonctionne?
23 déc. 2014 à 18:32
Désolé, je ne connais rien au VbScript...