Bonjour,
Je me suis bidouillé une macro qui me permet d'aller récupérer des données sur des pages web.
De temps en temps ma macro s'effectue très rapidement (2 minutes) et parfois non (+30min).
Pour faire simple ma macro fait appel à une fonction qui teste l'adresse du style :
1 2 3 4 5 6 7 8
| Public Function IsURLGood(url As String) As Boolean
Dim request As New WinHttpRequest
On Error GoTo IsURLGoodError
request.Open "HEAD", url
request.Send
[...]
End Function |
Pour accélérer le tout dans ma macro j'ajoute au début :
1 2 3 4
| Application.ScreenUpdating = False
ThisWorkbook.Windows(1).Visible = False
UserForm1.Show 0 'Avec une progress bar
Application.DisplayAlerts = False |
J'ouvre des pages web avec la commande :
Workbooks.Open ("http/mapageweb.html")
Je fais attention à n'avoir qu'un seul classeur excel ouvert, word fermé ...
Je lance la macro 10 fois ca lance la macro lentement, je referme le fichier, le ré-ouvre relance plusieurs fois et là ca se lance rapidement.
Je voulais donc avoir votre avis sur l'endroit d'où pouvait venir se problème.
Dans les 2 cas ce qui s'affiche sur l'écran c'est mon fichier excel (là ou il y a le bouton qui lance ma macro).
Quand ca marche lentement j'ai une petite fenêtre qui dit ouverture de "ma page web" ... Même en ajoutant la ligne suivante au début de la fonction ca ne change rien c'est lent mais sans affichage de la fenêtre "ouverture" de la page web (qui elle dans tout les cas ne s'affiche jamais)
Application.ScreenUpdating = False
Quand ca marche rapidement elle ne s'affiche pas...
Espérant ne pas avoir été trop flou... Merci par avance pour vos conseils !
Partager