Macro incomplète?
accro.a.lordi
Messages postés
17
Statut
Membre
-
eriiic Messages postés 25847 Date d'inscription Statut Contributeur Dernière intervention -
eriiic Messages postés 25847 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
J'ai essayé la macro PageWeb voir http://www.excelabo.net/trucs/login-et-pass
sub PageWeb()
Dim IE As Object
Set IE = CreateObject("internetexplorer.application")
IE.Navigate ("https://www.brandbucket.com/names/zaza?source=ext")
IE.Visible = True: IE.Top = 0: IE.Left = 0
IE.Width = GetSystemMetrics32(0)
IE.Height = GetSystemMetrics32(1)
Application.Wait Now + 5 / 3600 / 24
SendKeys ("loginZaza")
SendKeys "{TAB}"
SendKeys ("passwordzaza~")
Application.Wait Now + 5 / 3600 / 24
Set IE = Nothing
end sub
Mais quand je l'exécute, le système surligne GetSystemMetrics32 et donne ce message d'erreur:
Erreur de compilation:
Sub ou Function non définie
Donc, ma question est: est-ce la macro PageWeb est complète?
MERCI
J'ai essayé la macro PageWeb voir http://www.excelabo.net/trucs/login-et-pass
sub PageWeb()
Dim IE As Object
Set IE = CreateObject("internetexplorer.application")
IE.Navigate ("https://www.brandbucket.com/names/zaza?source=ext")
IE.Visible = True: IE.Top = 0: IE.Left = 0
IE.Width = GetSystemMetrics32(0)
IE.Height = GetSystemMetrics32(1)
Application.Wait Now + 5 / 3600 / 24
SendKeys ("loginZaza")
SendKeys "{TAB}"
SendKeys ("passwordzaza~")
Application.Wait Now + 5 / 3600 / 24
Set IE = Nothing
end sub
Mais quand je l'exécute, le système surligne GetSystemMetrics32 et donne ce message d'erreur:
Erreur de compilation:
Sub ou Function non définie
Donc, ma question est: est-ce la macro PageWeb est complète?
MERCI
A voir également:
- Macro incomplète?
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Télécharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Jitbit macro recorder - Télécharger - Confidentialité
- Macro maker - Télécharger - Divers Utilitaires
- Convertir chiffre en lettre excel sans macro ✓ - Forum Excel
4 réponses
Bonjour eriiic,
J'ai essayé la macro du deuxième exemple:
Declare Function GetSystemMetrics32 Lib "user32" _
Alias "GetSystemMetrics" (ByVal nIndex As Long) As Long
Sub Site_avec_Login_et_Password()
Dim ie As Object
Set ie = CreateObject("internetexplorer.application")
With ie
.Navigate ("https://www.brandbucket.com/names/zaza?source=ext")
.Visible = True
.Top = 0
.Left = 0
'Obtention en nombre de points de la largeur d'écran
'les deux commandes suivantes nécessitent la déclaration de la
'function GetSystemMetrics32 dans le haut du module
.Width = GetSystemMetrics32(SM_CXSCREEN)
.Height = GetSystemMetrics32(SM_CYSCREEN)
'attendre la fin du chargement, c'est à dire lorsqu'il sera indiqué
'le mot Terminé à gauche au bas de la page Internet
Do Until .ReadyState = 4
DoEvents
Loop
'Pour l'utilisation de la propriété getElementsByName,
'vous devez connaître le nom du control ActiveX,
'vous trouverez ce nom dans la Source de la page Internet
'login
Set DOCelement = .getElementsByName("login").Item
DOCelement.Value = "zaza
'password
Set DOCelement = .getElementsByName("pass").Item
DOCelement.Value = "xxZAZAxx"
End With
End Sub
Le site s'ouvre, mais après j'ai ce problème:
Erreur d'éxécution '438':
Propriété ou méthode non gérée par cet object
Puis quand je clique sur Débogage, il surligne
Set DOCelement = .getElementsByName("login").Item
J'ai bien sûr essayé en changeant le nom du site… mais j'ai toujours la même erreur.
Je débute dans l'apprentissage des macros (je lis actuellement le livre "VBA pour Office POUR LES NULS 4ème édition"). Cette macro m'intéresse énormément, car cela fait un mois que je cherche comment réaliser ceci:
"Sous Excel 2003, j'utilise l'importation de données Web pour mettre à jour régulièrement et automatiquement des bases de données avec la fonction suivante: Menu données, données externes, nouvelle requête sur le Web.
Cette méthode fonctionne parfaitement tant qu'il n'y a pas de nom d'utilisateur et de mot de passe à utiliser sur le site en question. Cependant, quand il y a un nom d'utilisateur et un mot de passe à utiliser quand j'effectue l'actualisation automatique, le système prend les données de la page d'accueil du site et non des pages voulues.
Même en ayant régler dans Internet Explorer pour qu'il retienne le mot de passe, cela ne fonctionne pas.
Quelqu'un a-t-il une solution pour arriver à réaliser ce projet? Toute proposition sera la bienvenue même si c'est avec un autre logiciel (OpenOffice.org Calc...) ou avec de la programmation (VBA…).
Je vous remercie pour vos conseils."
Et apparemment cette macro répondait à ma demande.
As-tu une solution?
MERCI
J'ai essayé la macro du deuxième exemple:
Declare Function GetSystemMetrics32 Lib "user32" _
Alias "GetSystemMetrics" (ByVal nIndex As Long) As Long
Sub Site_avec_Login_et_Password()
Dim ie As Object
Set ie = CreateObject("internetexplorer.application")
With ie
.Navigate ("https://www.brandbucket.com/names/zaza?source=ext")
.Visible = True
.Top = 0
.Left = 0
'Obtention en nombre de points de la largeur d'écran
'les deux commandes suivantes nécessitent la déclaration de la
'function GetSystemMetrics32 dans le haut du module
.Width = GetSystemMetrics32(SM_CXSCREEN)
.Height = GetSystemMetrics32(SM_CYSCREEN)
'attendre la fin du chargement, c'est à dire lorsqu'il sera indiqué
'le mot Terminé à gauche au bas de la page Internet
Do Until .ReadyState = 4
DoEvents
Loop
'Pour l'utilisation de la propriété getElementsByName,
'vous devez connaître le nom du control ActiveX,
'vous trouverez ce nom dans la Source de la page Internet
'login
Set DOCelement = .getElementsByName("login").Item
DOCelement.Value = "zaza
'password
Set DOCelement = .getElementsByName("pass").Item
DOCelement.Value = "xxZAZAxx"
End With
End Sub
Le site s'ouvre, mais après j'ai ce problème:
Erreur d'éxécution '438':
Propriété ou méthode non gérée par cet object
Puis quand je clique sur Débogage, il surligne
Set DOCelement = .getElementsByName("login").Item
J'ai bien sûr essayé en changeant le nom du site… mais j'ai toujours la même erreur.
Je débute dans l'apprentissage des macros (je lis actuellement le livre "VBA pour Office POUR LES NULS 4ème édition"). Cette macro m'intéresse énormément, car cela fait un mois que je cherche comment réaliser ceci:
"Sous Excel 2003, j'utilise l'importation de données Web pour mettre à jour régulièrement et automatiquement des bases de données avec la fonction suivante: Menu données, données externes, nouvelle requête sur le Web.
Cette méthode fonctionne parfaitement tant qu'il n'y a pas de nom d'utilisateur et de mot de passe à utiliser sur le site en question. Cependant, quand il y a un nom d'utilisateur et un mot de passe à utiliser quand j'effectue l'actualisation automatique, le système prend les données de la page d'accueil du site et non des pages voulues.
Même en ayant régler dans Internet Explorer pour qu'il retienne le mot de passe, cela ne fonctionne pas.
Quelqu'un a-t-il une solution pour arriver à réaliser ce projet? Toute proposition sera la bienvenue même si c'est avec un autre logiciel (OpenOffice.org Calc...) ou avec de la programmation (VBA…).
Je vous remercie pour vos conseils."
Et apparemment cette macro répondait à ma demande.
As-tu une solution?
MERCI
Bonsoir,
J'ai testé ta dernière macro sur un site et 2-3 trucs ne marchaient pas non plus.
- le Do Until .ReadyState = 4
que j'ai mis en commentaire et remplacé par une tempo de 5s.
- les Set DOCelement ...
Que j'ai mis en commentaire et remplacé par une émulation clavier.
Il suffit de reproduire toutes les actions faites au clavier (souris interdite) pour te connecter.
Ici : 17 fois fleche bas, TAB, ident, TAB, pw, enter
Peut-être pas orthodoxe mais si ça peut te dépanner...
eric
J'ai testé ta dernière macro sur un site et 2-3 trucs ne marchaient pas non plus.
- le Do Until .ReadyState = 4
que j'ai mis en commentaire et remplacé par une tempo de 5s.
- les Set DOCelement ...
Que j'ai mis en commentaire et remplacé par une émulation clavier.
Il suffit de reproduire toutes les actions faites au clavier (souris interdite) pour te connecter.
Ici : 17 fois fleche bas, TAB, ident, TAB, pw, enter
Sub Site_avec_Login_et_Password()
Dim ie As Object
Set ie = CreateObject("internetexplorer.application")
With ie
.Navigate ("https://lobby.ogame.gameforge.com/fr_FR/")
.Visible = True
.Top = 0
.Left = 0
'Obtention en nombre de points de la largeur d'écran
'les deux commandes suivantes nécessitent la déclaration de la
'function GetSystemMetrics32 dans le haut du module
.Width = GetSystemMetrics32(SM_CXSCREEN)
.Height = GetSystemMetrics32(SM_CYSCREEN)
'attendre la fin du chargement, c'est à dire lorsqu'il sera indiqué
'le mot Terminé à gauche au bas de la page Internet
' Do Until .ReadyState = 4
' DoEvents
' Loop
Application.Wait (Now + TimeValue("0:00:05"))
'Pour l'utilisation de la propriété getElementsByName,
'vous devez connaître le nom du control ActiveX,
'vous trouverez ce nom dans la Source de la page Internet
For i = 1 To 17
SendKeys "{DOWN}", True
Next i
SendKeys "{TAB}", True
SendKeys "login", True
SendKeys "{TAB}", True
SendKeys "pass", True
SendKeys "{ENTER}"
' 'login
' Set DOCelement = .getElementsByName("login").Item
' DOCelement.Value = "bla"
'
' 'password
' Set DOCelement = .getElementsByName("pass").Item
' DOCelement.Value = "blabla02"
'
'
End With
End Sub
Peut-être pas orthodoxe mais si ça peut te dépanner...
eric