Erreur 91 : Variable objet ou variable bloc With non définie [Résolu]

Messages postés
73
Date d'inscription
mardi 10 avril 2001
Dernière intervention
4 mars 2009
- - Dernière réponse : fred.toto
Messages postés
73
Date d'inscription
mardi 10 avril 2001
Dernière intervention
4 mars 2009
- 4 mars 2009 à 12:53
Bonjour à tous,
j'ai un problème récurrent:
j'ai l'erreur "Erreur n°: 91 - Description: Variable objet ou variable bloc With non définie"entre le             
            Debug.Print "Magic - i: " & i
et le
            Debug.Print "Magic - f_inet.Document.body.innerHTML: " & Right(f_inet.Document.body.innerHTML, 50)
du code suivant.

Perso, je ne comprends pas bien pourquoi mais bon. Quand je mets un point d'arrêt sur le second debug, tout se passe bien, mais aussitot qu'il se lance tout seul, il plante...
Au cas où vous auriez une idée, je joinds le code.
Merci d'avance.
Fred.

Sub Magic()
   
Dim i As Integer
Dim j As Integer
Dim f_inet As Object

Dim k As Integer
   
    On Error GoTo ErrorHandler
   
    Debug.Print "*************************************************************************************************************************"
   
    Set f_inet = CreateObject("InternetExplorer.Application")
   
    f_inet.Visible = False
      
    CreateDatabase
    CreateTables
   
    Debug.Print "Magic - CreateDatabase"
   
    For j = 1 To 24
   
        f_inet.Navigate ("
http://www.magiccorporation.com/mc.php?rub=cartes&file=search&search=2&bool_capacite=0&word=&titre=nom&lang_vf=1&lang_vo=1&num_couleur%5B%5D=5&bool_mana=0&mana%5B%5D=G&signe_mana=0&nb_mana=&num_rarete%5B%5D=3&force=&signe_force=0&endurance=&signe_endurance=0&aff%5Bcouleur%5D=1&aff%5Brarete%5D=1&aff%5Bid%5D=1&aff%5Bnom_vo%5D=1&aff%5Bnom_fr%5D=1&aff%5Bmana%5D=1&aff%5Btype%5D=1&aff%5Batkdef%5D=1&aff%5Bedition%5D=1&aff%5Bdate%5D=1&page=2&page
=" & j)
 
        
        Do While Not f_inet.ReadyState = 4
        Loop
       
        Debug.Print " "
        Debug.Print "Magic - Entete f_inet.Document.body.innerHTML"
       
        Entete f_inet.Document.body.innerHTML
       
        Debug.Print "Magic - Liste_Carte_HTML f_inet.Document.body.innerHTML"
       
        Liste_Carte_HTML f_inet.Document.body.innerHTML
       
        For i = 1 To gp_Index
       
            f_inet.Navigate (gp_Carte_Magic(i).Lien)
           
            Do While Not f_inet.ReadyState = 4
            Loop
       
            Debug.Print " "
            Debug.Print "Magic - i: " & i
            Debug.Print "Magic - f_inet.Document.body.innerHTML: " & Right(f_inet.Document.body.innerHTML, 50)
            
            Debug.Print "Magic - Avant Affecte_Carte_HTML"
       
            Affecte_Carte_HTML i, f_inet.Document.body.innerHTML
           
            Debug.Print "Magic - Après Affecte_Carte_HTML " & i & ", f_inet.Document.body.innerHTML"
           
            gp_Carte_Magic(i).Desc_francais = Supp_Balises(i)
           
            If ExisteDeja("extension", gp_Carte_Magic(i).Edition) Then
               f_id_extension = Lecture("extension", gp_Carte_Magic(i).Edition)
            Else
               f_id_extension = Insert_Extension(i)
            End If
          
            If ExisteDeja("type", gp_Carte_Magic(i).Type) Then
               f_id_type = Lecture("type", gp_Carte_Magic(i).Type)
            Else
               f_id_type = Insert_Type(i)
            End If
          
            If ExisteDeja("langue", "Français") Then
               f_id_langue = Lecture("langue", "Français")
            Else
               f_id_langue = Insert_Langue(i)
            End If
          
            If ExisteDeja("dessinateur", gp_Carte_Magic(i).Illustrateur) Then
               f_id_dessinateur = Lecture("dessinateur", gp_Carte_Magic(i).Illustrateur)
            Else
               f_id_dessinateur = Insert_Dessinateur(i)
            End If
          
            If Not ExisteDeja("carte", gp_Carte_Magic(i).VO, f_id_extension) Then
           
               Insert_Carte i, _
                           f_id_extension, _
                           f_id_type, _
                           f_id_langue, _
                           f_id_dessinateur
            End If
          
        Next
   
    Next
        
    Set f_inet = Nothing
   
    Exit Sub
   
ErrorHandler:   ' Routine de gestion d'erreur.



    MsgBox "Erreur n°: " & Err.Number & " - Description: " & Err.Description
    End
   
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
3
Merci
la faute à ton ReadyState = 4
faut tester d'abord la valeur 3 (interactive) :
en gros, tester qu'il est bien en train de bosser pour toi. Sans cela, tu testes en gros le complete de la page chargée auparavant


With CreateObject("InternetExplorer.Application")
.Visible = True

.Navigate "http://www.google.com/"
Do
DoEvents
Loop Until .ReadyState = 3
Do
DoEvents
Loop Until .ReadyState = 4
MsgBox .Document.getElementsByTagName("body")(0).innerHTML

.Navigate ("http://www.ebay.fr/")
Do
DoEvents
Loop Until .ReadyState = 3
Do
DoEvents
Loop Until .ReadyState = 4
MsgBox .Document.getElementsByTagName("body")(0).innerHTML
End With


pour info:
Const READYSTATE_COMPLETE = 4
Const READYSTATE_INTERACTIVE = 3
Const READYSTATE_LOADED = 2
Const READYSTATE_LOADING = 1
Const READYSTATE_UNINITIALIZED = 0

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 106 internautes ce mois-ci

Commenter la réponse de Renfield
Messages postés
73
Date d'inscription
mardi 10 avril 2001
Dernière intervention
4 mars 2009
0
Merci
Ca marche, merci beaucoup
Commenter la réponse de fred.toto

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.