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

Signaler
Messages postés
73
Date d'inscription
mardi 10 avril 2001
Statut
Membre
Dernière intervention
4 mars 2009
-
Messages postés
73
Date d'inscription
mardi 10 avril 2001
Statut
Membre
Dernière intervention
4 mars 2009
-
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
   
A voir également:

2 réponses

Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
67
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
Messages postés
73
Date d'inscription
mardi 10 avril 2001
Statut
Membre
Dernière intervention
4 mars 2009

Ca marche, merci beaucoup