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

fred.toto 73 Messages postés mardi 10 avril 2001Date d'inscription 4 mars 2009 Dernière intervention - 26 févr. 2009 à 08:32 - Dernière réponse : fred.toto 73 Messages postés mardi 10 avril 2001Date d'inscription 4 mars 2009 Dernière intervention
- 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

Renfield 17307 Messages postés mercredi 2 janvier 2002Date d'inscription 18 janvier 2017 Dernière intervention - 26 févr. 2009 à 09:06
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Renfield
fred.toto 73 Messages postés mardi 10 avril 2001Date d'inscription 4 mars 2009 Dernière intervention - 4 mars 2009 à 12:53
0
Utile
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.