OVH Cloud OVH Cloud

ouvrir page web

15 réponses
Avatar
Tendasque
Bonjour,
Sur Excelabo (bonne adresse !) j'ai trouvé cette macro que j'ai
personnalisée pour aller ouvrir un site avec login et mot de passe: (Excel
2000)

Sub PageWeb()
Dim IE As Object
Set IE = CreateObject("internetexplorer.application")
IE.Navigate ("https://xxxx.org/")
IE.Visible = True: IE.Top = 0: IE.Left = 0
IE.Width = GetSystemMetrics32(0)
IE.Height = GetSystemMetrics32(1)
Application.Wait Now + 5 / 3600 / 24
SendKeys ("xxxx")
SendKeys "{TAB}"
SendKeys ("yyy")
Application.Wait Now + 5 / 3600 / 24
Set IE = Nothing
End Sub

1er pb: l'exécution me renvoi une erreur "Sub ou fonction non définie" sur
la commande "GetSystemMetrics"
2ème: si je désactive les lignes IE.Width et IE.Height, la macro se lance,
IE aussi, le site s'ouvre mais les logins et mdp ne se placent pas...

Merci de vos lumières !

5 réponses

1 2
Avatar
Tendasque
J'ai dit précédemment:

En fait, en désactivant les lignes "SendKeys" le site s'ouvre même si IE
était fermé au lancement de la macro...


puisque c'est moi qui utilise cette macro, je peux lancer une ou l'autre
version (avec ou sans cookie) selon que je suis sur ma machine ou non, en
attendant de trouver une solution définitive.

Je reviens sur la fin du code qu'Isabelle a proposé en commentaires:

'traitement sur la page web

'IE.Application.Quit 'fermeture IE
'Set IE = Nothing 'liberation de la variable

j'ai activé les 2 dernières lignes , et évidemment Excel n'attend pas que
j'ai traité la page (en fait le téléchargement d'un fichier après
renseignement de champs et extraction d'une base) et referme IE.
serait-il possible d'enchainer les actions:
- ouverture de la page
- "traitement" par mes soins des données et téléchargement du fichier;
pendant ce temps Excel attend...
- poursuite de la macro: fermeture d'IE, ouverture du fichier (macro que
j'ai déja écrite)

Avatar
isabelle
regarde au menu:
outils/option internet, onglet contenu, clique sur saisi semi automatique et
decoche noms utilisateurs et mot de passe, et tu relancer ton ordi,

ou sinon télécharger la version 7 pour avoir accès à l'option "Supprimer les mots de passe..."

isabelle



Je suis sur IE 6.0
En fait, en désactivant les lignes "SendKeys" le site s'ouvre même si IE
était fermé au lancement de la macro...

"isabelle" a écrit dans le message de news:





Il faut donc que je supprime les cookies avant de lancer la macro: pas
pratique !
Y aurait-il un moyen de contourner ce pb ?



tu travaille sur quel version de "internetexplorer" ?

isabelle








Avatar
Tendasque
"isabelle" a écrit:
regarde au menu:
outils/option internet, onglet contenu, clique sur saisi semi automatique
et
decoche noms utilisateurs et mot de passe, et tu relancer ton ordi,
ou sinon télécharger la version 7 pour avoir accès à l'option "Supprimer
les mots de passe..."
isabelle

Grâce à Isabelle, je peux ouvrir la page web qui contient un formulaire.

Voici le code :

<TR valign='middle'><TD class="TABLEHEAD2" height% align=right><SELECT
NAME="SEL0" onchange="this.form.submit();"><OPTION value="0" >Critère
1</OPTION>
<OPTION value="1" >N° d'A.S.</OPTION>
<OPTION value="2" >N° licence</OPTION>
<OPTION value="3" >Type d'étab.</OPTION>
<OPTION value="4" >Privé/Public</OPTION>
<OPTION value="5" >Département</OPTION>
<OPTION value="6" >N° de district</OPTION>
<OPTION value="7" >Ville d'étab.</OPTION>
<OPTION value="8" >Sexe</OPTION>
<OPTION value="9" >Nom</OPTION>
<OPTION value="10" >Catégorie</OPTION>
</SELECT>

J'ai donc ajouté à ma macro la ligne:
IE.Document.all("SEL0").Value = "5" pour avoir le champ rempli avec
"Département"; çà marche, mais la page reste bloquée là, alors que dans la
réalité, la sélection de "Département" dans ce champ ouvre automatiquement
une nouvelle boite déroulante pour un 2ème choix (ce doit être le
"onchange="this.form.submit();" ?. Même en validant, la valeur "Département"
n'est pas prise en compte...
Qu'est-ce qui cloche ?
Merci de votre aide

Avatar
isabelle
comme les événements de chaque boite déroulante ne sont pas déclenchés,
il faut refaire chaque commande,
tu doit connaitre le nom de cette deuxième boite déroulante
et ajouter les commandes :

IE.Document.all("xxx").Visible = True
IE.Document.all("xxx").Value = "x"

ainsi de suite,

isabelle

"isabelle" a écrit:

regarde au menu:
outils/option internet, onglet contenu, clique sur saisi semi automatique
et
decoche noms utilisateurs et mot de passe, et tu relancer ton ordi,
ou sinon télécharger la version 7 pour avoir accès à l'option "Supprimer
les mots de passe..."
isabelle



Grâce à Isabelle, je peux ouvrir la page web qui contient un formulaire.
Voici le code :

<TR valign='middle'><TD class="TABLEHEAD2" height% align=right><SELECT
NAME="SEL0" onchange="this.form.submit();"><OPTION value="0" >Critère
1</OPTION>
<OPTION value="1" >N° d'A.S.</OPTION>
<OPTION value="2" >N° licence</OPTION>
<OPTION value="3" >Type d'étab.</OPTION>
<OPTION value="4" >Privé/Public</OPTION>
<OPTION value="5" >Département</OPTION>
<OPTION value="6" >N° de district</OPTION>
<OPTION value="7" >Ville d'étab.</OPTION>
<OPTION value="8" >Sexe</OPTION>
<OPTION value="9" >Nom</OPTION>
<OPTION value="10" >Catégorie</OPTION>
</SELECT>

J'ai donc ajouté à ma macro la ligne:
IE.Document.all("SEL0").Value = "5" pour avoir le champ rempli avec
"Département"; çà marche, mais la page reste bloquée là, alors que dans la
réalité, la sélection de "Département" dans ce champ ouvre automatiquement
une nouvelle boite déroulante pour un 2ème choix (ce doit être le
"onchange="this.form.submit();" ?. Même en validant, la valeur "Département"
n'est pas prise en compte...
Qu'est-ce qui cloche ?
Merci de votre aide





Avatar
Tendasque
"isabelle" a écrit...
comme les événements de chaque boite déroulante ne sont pas déclenchés,
il faut refaire chaque commande,
tu doit connaitre le nom de cette deuxième boite déroulante
et ajouter les commandes :

IE.Document.all("xxx").Visible = True
IE.Document.all("xxx").Value = "x"

ainsi de suite,



J'ai donc mis:

IE.Document.all("SEL0").Value = "5"
IE.Document.all("PS0").Visible = True
IE.Document.all("PS0").Value = "034"

"Département" s'affiche bien, puis tout s'arrête; la macro a une erreur sur
la ligne:
IE.Document.all("PS0").Visible = True

J'ai l'impression que "Département" n'est pas validé
(onchange="this.form.submit();" le fait automatiquement dans la version
"normale", non ? et la page se recharge pour afficher le 2ème choix ?)


Grâce à Isabelle, je peux ouvrir la page web qui contient un formulaire.
Voici le code :

<TR valign='middle'><TD class="TABLEHEAD2" height% align=right><SELECT
NAME="SEL0" onchange="this.form.submit();"><OPTION value="0" >Critère
1</OPTION>
<OPTION value="1" >N° d'A.S.</OPTION>
<OPTION value="2" >N° licence</OPTION>
<OPTION value="3" >Type d'étab.</OPTION>
<OPTION value="4" >Privé/Public</OPTION>
<OPTION value="5" >Département</OPTION>
<OPTION value="6" >N° de district</OPTION>
<OPTION value="7" >Ville d'étab.</OPTION>
<OPTION value="8" >Sexe</OPTION>
<OPTION value="9" >Nom</OPTION>
<OPTION value="10" >Catégorie</OPTION>
</SELECT>

J'ai donc ajouté à ma macro la ligne:
IE.Document.all("SEL0").Value = "5" pour avoir le champ rempli avec
"Département"; çà marche, mais la page reste bloquée là, alors que dans
la réalité, la sélection de "Département" dans ce champ ouvre
automatiquement une nouvelle boite déroulante pour un 2ème choix (ce doit
être le "onchange="this.form.submit();" ?. Même en validant, la valeur
"Département" n'est pas prise en compte...
Qu'est-ce qui cloche ?
Merci de votre aide




1 2