Trouvez une référence pour exécuter une macro

emmanuel75

XLDnaute Junior
Bonjour à tous,

J'ai retrouvé une macro qui permet d'afficher les liens contenus sur une page Web...elle ne fonctionne pas ( "type défini non défini par l'utilisateur") en caractère gras signalé sur le script.
Peut-être n'ai je pas bien activer les références signalées dans les premières lignes du programme ?

Si un Excelnaute est calé à ce sujet, je veux bien de son aide...merci d'avance
Voici la macro:

Sub listeLiensPageWeb()
'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 IE As New InternetExplorer
Dim x As Integer
Dim Doc As HTMLDocument
IE.navigate 'http://www.MaPageWeb.fr'
Do Until IE.readyState = READYSTATE_COMPLETE
DoEvents
Loop
Set Doc = IE.document
For x = 0 To Doc.links.Length - 1
Cells(x + 1, 1) = Doc.links(x)
Next
End Sub

Emmanuel
 
Dernière édition:

Bernard_XLD

XLDnaute Barbatruc
Membre du Staff
Re : Trouvez une référence pour exécuter une macro

Bonjour

c'est écrit, il te faut activer les références dans l'éditeur VB, menu outils/références, sinon ton objet ne pourra être qualifié et sera considéré comme un type utilisateur non défini.

Cordialement
 

emmanuel75

XLDnaute Junior
Re : Trouvez une référence pour exécuter une macro

Merci bien pour la réponse, donc la référence que j'ai coché n'est pas la bonne. Dans tous les cas, je n'ai pas la référence "Microsoft Internet Controls" dans la librairie...comment puis je faire ? s'appelle-t-elle différemment ou dois je la télécharger ?
 

jeanpierre

Nous a quitté
Repose en paix
Re : Trouvez une référence pour exécuter une macro

Bonjour emmanuel75, Yeahou,

Chez-moi, sous 2000, il existe bien, beaucoup plus bas et n'est pas coché d'office.

Il faut donc le faire. Mon excel est basique (2000 Standard)...

Donc, si je l'ai, tu dois l'avoir.

Bon début de WE

Jean-Pierre
 

emmanuel75

XLDnaute Junior
Re : Trouvez une référence pour exécuter une macro

Merci jeanpierre,
en fait je ne l'avais pas dans ma librairie (j'ai pourtant Windows XP) mais je bosse avec Office 2007. J'ai retrouvé dans une ancienne discussion il y a maintenant cinq minutes...le nom du fichier qui correspond à Microsoft Internet Controls, il s'agit du fichier SYSTEM shdocvw.dll....je n'ai plus de problème....MAIS

Le débogeur m'affiche maintenant "Erreur de compilation" "Argument non facultatif"

Revoici la macro et l'erreur:

Sub listeLiensPageWeb()
'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 IE As New InternetExplorer
Dim x As Integer
Dim Doc As HTMLDocument
IE.navigate 'http://www.MaPageWeb.fr'
Do Until IE.readyState = READYSTATE_COMPLETE
DoEvents
Loop
Set Doc = IE.document
For x = 0 To Doc.links.Length - 1
Cells(x + 1, 1) = Doc.links(x)
Next
End Sub

Encore merci à tous les participants...
 

emmanuel75

XLDnaute Junior
Re : Trouvez une référence pour exécuter une macro

Merci Yeahou,
J'ai retrouvé dans un forum le nom du bon fichier et comme tu l'as dit plus haut....ce n'est pas un fichier par défaut !
Par contre j'ai un nouveau problème avec la macro à proprement parler (l'URL n'est pas saisi dans la macro, je ne sais pas comment l'insérer...) Voir 2 messages au-dessus...
 

Bernard_XLD

XLDnaute Barbatruc
Membre du Staff
Re : Trouvez une référence pour exécuter une macro

mets des guillemets et cela fonctionnera,
Code:
Sub listeLiensPageWeb()
'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 IE As New InternetExplorer
Dim x As Integer
Dim Doc As HTMLDocument
IE.Navigate "'http://www.mapage.fr'"
Do Until IE.ReadyState = READYSTATE_COMPLETE
DoEvents
Loop
Set Doc = IE.Document
For x = 0 To Doc.links.Length - 1
Cells(x + 1, 1) = Doc.links(x)
Next
End Sub
 

Discussions similaires