Modifier un champ onChange javascript en VBA

Signaler
Messages postés
3
Date d'inscription
samedi 16 décembre 2000
Statut
Membre
Dernière intervention
20 avril 2009
-
Messages postés
1
Date d'inscription
samedi 17 janvier 2009
Statut
Membre
Dernière intervention
7 septembre 2011
-
Bien le bonjour !

Alors voila, mon pitit problème est le suivant : je dois créer pour une société tierce une application en VBA leur permettant de rentrer automatiquement des données dans une base placée sur un site net dont je ne peut pas modifier le code. Jusqu'ici, rien de bien méchant, mais c'est là que ça devient marrant. En effet, l'une des infos à rentrer est une date de rendue, et ce champ n'est modifiable que via un calendrier pop-up en Javascript.

Je voudrais donc savoir s'il existe un moyen de modifier ce champ en contournant (ou en utilisant) le calendrier js, et ce de manière totalement automatique (du style récupérer le code réponse du calendar js ou envoyer un message similaire à la case nommée plus haut...)

Voila en gros mon problème. J'espere de tout coeur reçevoir une réponse (même mauvaise, m'en fous >.<) aussi vite que possible, mes employeur sont pas chiants, mais j'aimerai pas les déçevoir pour mon premier saut dans le monde du travail...

4 réponses

Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
68
a tenter: utilises la méthode FireEvent de ton objet, pour déclencher manuellement le onChange
Messages postés
3
Date d'inscription
samedi 16 décembre 2000
Statut
Membre
Dernière intervention
20 avril 2009

Pourquoi pas, le temps de comprendre un peu le fonctionnement de FireEvent et je test. Résultat aussi vite que possible !^^
Messages postés
3
Date d'inscription
samedi 16 décembre 2000
Statut
Membre
Dernière intervention
20 avril 2009

Bon, bah en fait c'était encore plus simple que ça...
Il suffisait d'accéder au champ et de le modifier... aucune sécurité...

Pitit bout de code :

    Dim maPageHtml As HTMLDocument
    Set maPageHtml = Browser1.document
    Dim Obj As HTMLFormElement

    Set Obj = maPageHtml.getElementById("ID_AU_PIF")
    Obj.innerText = "Date_voulue"

Après, y'a plus qu'à, comme dirait l'autre...
Messages postés
1
Date d'inscription
samedi 17 janvier 2009
Statut
Membre
Dernière intervention
7 septembre 2011

Bonjour,

J'ai actuellement un problème similaire.
Je dois rentrer sur la page web suivante : http://www.location-ski-moins-cher.com/ le jour, le mois et l'année. Or je dois mettre pour l'année "2012" si je veux pouvoir accéder à tous mes mois. Seulement il faut que je déclenche l'évènement Javascript "Click" pour que les mois se dégrisent.

J'ai essayé :
Public Sub NaviguerPageWeb()
'nécéssite d'activer la référence Microsoft HTML Objects Library
'nécéssite d'activer la référence Microsoft Internet Controls
Dim i As Integer
Dim IE As InternetExplorer
Dim maPageHtml As HTMLDocument
Dim Helem As IHTMLElementCollection
Dim Valider As IHTMLElementCollection

Set IE = CreateObject("internetExplorer.Application")
IE.Visible = True
IE.navigate "http://www.location-ski-moins-cher.com"
Do Until IE.readyState = READYSTATE_COMPLETE
DoEvents
Loop

Set maPageHtml = IE.document
Set Helem = maPageHtml.getElementsByTagName("select")
Set Valider = maPageHtml.getElementsByTagName("input")



For i = 0 To Helem.Length - 1
If Helem(i).getAttribute("name") = "catalog-date-y" Then 'catalog-date-y est le nom de la case pour entrer le mot ou la phrase à rechercher
Helem(i).selectedIndex = "1"
End If
Next i

maPageHtml.parentWindow.execScript "document.getElementById('catalog-date-m').fireEvent ('onChange')"

Mais sans succès!

Help