VBA Excel : attendre le chargement d'une feuille de calcul
Résolu
mikel831
Messages postés
188
Date d'inscription
mardi 23 octobre 2012
Statut
Membre
Dernière intervention
16 novembre 2024
-
21 avril 2024 à 12:35
mikel831 Messages postés 188 Date d'inscription mardi 23 octobre 2012 Statut Membre Dernière intervention 16 novembre 2024 - 23 avril 2024 à 08:35
mikel831 Messages postés 188 Date d'inscription mardi 23 octobre 2012 Statut Membre Dernière intervention 16 novembre 2024 - 23 avril 2024 à 08:35
A voir également:
- VBA Excel : attendre le chargement d'une feuille de calcul
- Liste déroulante excel - Guide
- Si et excel - Guide
- Aller à la ligne excel - Guide
- Word et excel gratuit - Guide
- Excel compter cellule couleur sans vba - Guide
1 réponse
yg_be
Messages postés
23327
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
15 novembre 2024
Ambassadeur
1 551
22 avril 2024 à 08:19
22 avril 2024 à 08:19
bonjour,
Je ne pense pas qu'il soit utile de faire deux refresh().
Tu as programmé le second refresh(), me semble-t-il, de façon à ce que le code continue pendant que le refresh() s'exécute.
https://learn.microsoft.com/fr-fr/office/vba/api/excel.querytable.backgroundquery
Modifié le 22 avril 2024 à 13:23
Bonjour!
Merci pour ta réponse!
J'ai ajouté le second Refrech pour éviter d'avoir janv-14 dans Feuill2 lorsque la page web contenait 1-14 ... et ça a fonctionné.
Je viens d'enlever le 1er Refrech : je retrouve 1-14 comme souhaité, mais la partie CodeSuite bugue toujours car Feuil2 n'est pas complète ....
22 avril 2024 à 14:48
montre alors ton code modifié.
Modifié le 22 avril 2024 à 16:23
Voici:
' configurer la QueryTable...
With QT
.WebSelectionType = xlEntirePage '... pour sélectionner toute la page
.PreserveFormatting = True
.WebDisableDateRecognition = True
.RefreshPeriod = 0
.Refresh
End With
' libérer l'objet QueryTable
Set QT = Nothing
'Stop
' Rechercher les agences dans "Feuil2"
Sheets("Feuil2").Select
Set MaPlage = Range("A1:C350")
MaPlage.Select
Set Debut = Selection.Find("N°")
If Debut Is Nothing Then
'Exit Sub
MsgBox "N° nontrouvé"
Stop
End If
Stop
La cellule de Feuil2 contenant "N°" n'est pas trouvée (Début Is Nothing) tant que la feuille n'est pas complétement chargée (sablier à l'écran qui clignote) et le code s'arrête sur Stop . Dès qu'il n'y a plus le sablier, si je relance le code à Set Debut, tout le reste se déroule normalement comme souhaité .
Il faudrait donc que j'ai une technique qui "gèle" le code tant que Feuil2 n'est pas complète (plus de sablier à l'écran) cad environ une dizaine de secondes ...
22 avril 2024 à 16:25
Ton refresh() est programmé, me semble-t-il, de façon à ce que le code continue pendant que le refresh() s'exécute.
https://learn.microsoft.com/fr-fr/office/vba/api/excel.querytable.backgroundquery
23 avril 2024 à 08:35
Bonjour!
Je ne sais pas pourquoi ma réponse d'hier n'est pas passée?
C'était pour t'informer qu'après avoir repositionné le .Refresh BackgroundQuery:=False .. ainsi:
' configurer la QueryTable...
With QT
.WebSelectionType = xlEntirePage '... pour sélectionner toute la page
.PreserveFormatting = True
.WebDisableDateRecognition = True
.RefreshPeriod = 0
.Refresh BackgroundQuery:=False '..
End With
tout est rentré dans l'ordre : le code suivant s'exécute correctement, ouf!
Merci de ton aide