Bonjour à tous,
J'ai une procédure en VBA qui me permet de récupérer le contenu d'une page Web (I.E) dans un fichier Excel.
Voici la procédure:
	
	
	
	
	
		
Cette procédure est appelée 50 fois environ dans un programme, car je récupère 50 données d'une page qui varie selon un paramètre. Sauf qu'au bout d'un moment, j'ai un message d'erreur sur la ligne "Set inet = CreateObject("InternetExplorer.Application")" en me disant "mémoire insuffisante". Je ne vois pas trop pourquoi alors que le programme a pu charger correctement les premières pages, il s'arrête à un moment. Est-ce qu'il manque un code à la fin pour fermer la page IE qu'on a ouverte? .. je sais pas trop
Merci de votre aide!
	
		
			
		
		
	
				
			J'ai une procédure en VBA qui me permet de récupérer le contenu d'une page Web (I.E) dans un fichier Excel.
Voici la procédure:
		VB:
	
	
	Public Sub lecture_page(lien_adresse As String)
    'fonction prenant en paramètre un lien internet
   
    Const genericFIC = "temp.xls" 'Nom du fichier Excel temporaire
   
    Dim fso, fil, inet
    Dim IE As InternetExplorer
    Dim boucle_lignes_fichier_temp As Integer
    Dim valtxt As String
   
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set inet = CreateObject("InternetExplorer.Application")
   
    inet.Visible = False
   
        valtxt = lien_adresse 'On récupère l'adresse du lien dans une variable
       
        'efface le fichier temporaire
        Kill "c:\temp\temp.xls"
           
        'lire page web
        inet.navigate (valtxt)
                 
        'temporisation pour lire la page : 10 secondes environ le temps de récupérer les données
        Application.Wait Now + TimeValue("00:00:10")
           
        'delai 'procedure delai
        Application.StatusBar = False
        Do While Not inet.readyState = 4
            ' Ne rien faire
        Loop
           
        'On écrit le contenu de la page Web dans notre fichier temporaire
        Set fil = fso.CreateTextFile("c:\temp\" & genericFIC)
        fil.Write (inet.document.body.innerHTML)
        fil.Close 'On ferme ce fichier temporaire
           
        'lecture du fichier xls
        'ouverture du fichier temp
        NOMFICH = "c:\temp\temp.xls" 'Chemin + nom du fichier temporaire
        Workbooks.Open Filename:=NOMFICH
         
        '--- A Partir d'ici on travaille sur le fichier . xls ----
        Dim valeur, dep
         
        Set ws2 = Worksheets(1)
        With ws2 'On travaille sur la feuille 1 de temp.xls
         
            For boucle_lignes_fichier_temp = 148 To 155 'Parcours les lignes du fichier "temp.xls" (sur la 1ère colonne)
                'On récupère la valeur dans le fichier temp.xls inscrite à la ligne qu'on boucle et à la colonne 1
                valeur = ws2.Cells(boucle_lignes_fichier_temp, 1)
                'On récupère le nb
                If valeur = "Nombre" Then
                    dep = boucle_lignes_fichier_temp
                    nb = ws2.Cells(dep, 2)
                    Exit For
                End If
            Next boucle_lignes_fichier_temp
                         
            'On ferme sans enregistrer le fichier .XLS
            ActiveWindow.Close SaveChanges:=False
         
        End With 'On a fini de travailler sur le fichier Excel temp.xls
           
End Sub
	Cette procédure est appelée 50 fois environ dans un programme, car je récupère 50 données d'une page qui varie selon un paramètre. Sauf qu'au bout d'un moment, j'ai un message d'erreur sur la ligne "Set inet = CreateObject("InternetExplorer.Application")" en me disant "mémoire insuffisante". Je ne vois pas trop pourquoi alors que le programme a pu charger correctement les premières pages, il s'arrête à un moment. Est-ce qu'il manque un code à la fin pour fermer la page IE qu'on a ouverte? .. je sais pas trop
Merci de votre aide!