Problème avec RefreshAll [Résolu]

Signaler
Messages postés
9
Date d'inscription
mardi 1 décembre 2020
Statut
Membre
Dernière intervention
23 décembre 2020
-
Messages postés
54
Date d'inscription
dimanche 5 août 2012
Statut
Membre
Dernière intervention
4 janvier 2021
-
Bonsoir
Je vous soumets le problème suivant pour lequel je n'ai pas trouvé de solution malgré mes recherches sur différents sites y afférant.
A l'ouverture de mon fichier je lance une Sub qui doit mettre à jour une liaison avec une Google Sheet publiée sur le web, ouvrir le formulaire principal de mon application et lancer une procédure de mise à jour de mes données.

Private Sub Workbook_open() 'ouvre le Menu au démarrage
UsF_Menu.Show
Me.RefreshAll
End Sub

Tout fonctionne si le fichier Google Sheet est bien publié. Par contre si la publication n'est pas active (pour des raisons de données sensibles), je reçois une boîte de dialogue qui m'informe ne pas avoir trouvé les données correspondantes.

Je voudrais pouvoir supprimer cette boîte de dialogue et laisser le programme se poursuivre par l'appel d'une procédure qui met à jour ma base de données principale à partir des données recueillies. Selon la rapidité des connections internet cette importation prend plus ou moins de temps. Il me faut donc retarder l'exécution de la procédure. J'ai tenté des ontime, des wait sans succès. Il est vrai que je n'ai pas forcément bien compris l'utilisation de ces propriétés.

Là encore je suis preneur de solutions.

Merci d'avance
Claude
A voir également:

4 réponses

Messages postés
54
Date d'inscription
dimanche 5 août 2012
Statut
Membre
Dernière intervention
4 janvier 2021
6
Bonsoir,

Bha de rien car finalement rien ne t'a servi mais le principal c'est que tu sois arrivé à résoudre le pb :)
Bonnes fêtes.
A+
Messages postés
54
Date d'inscription
dimanche 5 août 2012
Statut
Membre
Dernière intervention
4 janvier 2021
6
Bonsoir,

Je ne sais pas si j'ai tout compris mais quand tu dis:
 si la publication n'est pas active (pour des raisons de données sensibles), je reçois une boîte de dialogue qui m'informe ne pas avoir trouvé les données correspondantes. 

C'est un message d'erreur?

si c'est le cas, utilises une gestion d'erreur ("ON ERROR GOTO gest_err") comme ça déjà tu n'aura plus la boite de dialogue et en bas de ta procédure, sous "gest_err:" tu peux, par exemple:
- afficher un userform non modal qui demande de patienter ou qui explique la lenteur
- et ensuite un petit "Resume next" qui te fait reprendre là tu en étais dans la procédure.

Puis - Mettre l'instruction "DoEvents" plutôt que WAIT ...juste derrière la commande de mise à jour qui aura pour effet d'attendre la fin de la mise à jour avant de continuer la macro

Suffit d'adapter un peu cela à ton besoin.

Bonne nuit
A bientôt
Messages postés
9
Date d'inscription
mardi 1 décembre 2020
Statut
Membre
Dernière intervention
23 décembre 2020

Bonjour et merci ptipanda pour cette réponse

Je te passe toute les explications qui prendraient trop de lignes. En gros j'ai cette procédure

Sub WorkBook_Open()
me.refreshAll
UsF_Menu.Show
End Sub

qui se lance à l'ouverture de mon fichier.

et cette boîte de dialogue après un temps plus ou moins variable selon l'état de ma connexion internet.



qui s'ouvre si je n'ai pas préalablement "publier sur le web" (ouvert le lien entre ma Google Sheet et le reste du monde).
Je voudrai que cette boîte n'apparaisse pas afin de ne pas être obligé de valider par OK et que la procédure puisse se terminer.

J'ai essayé de positionner des On Error et des DoEvents de multiple façons sans résultat. Cette fenêtre apparaît systématiquement. Est ce d'ailleurs une vraie erreur ? Il me semble que oui d'après les essais effectués avec la gestion d'erreur.
As tu une idée du code qui pourrait fonctionner ?

Merci en tout cas de ta première piste.

A te lire j'espère.
Claude
Messages postés
9
Date d'inscription
mardi 1 décembre 2020
Statut
Membre
Dernière intervention
23 décembre 2020

Ouch!!!!
J'ai trouvé. En fait l'erreur est lancée par la query qui établit le lien entre les deux fichiers.
Lors d'essais de débogage, j'avais généré une colonne supplémentaire à mon tableau local excel, colonne que je ne voyais pas sur mon écran. La query cherchait cette colonne dans le fichier en ligne qui bien sur n'y était pas. d'où le message erreur "Nous n'avons pas trouvé la colonne "Column1"....
J'ai supprimé la fautive et maintenant tout roule sans ON ERROR GOTO ni DOEVENTS.
Comme quoi s'obstiner n'est pas toujours inutile.
Merci encore pour l'aide