Problème avec RefreshAll

Résolu/Fermé
crouba33 Messages postés 9 Date d'inscription mardi 1 décembre 2020 Statut Membre Dernière intervention 23 décembre 2020 - 22 déc. 2020 à 17:06
ptitpanda Messages postés 65 Date d'inscription dimanche 5 août 2012 Statut Membre Dernière intervention 8 avril 2023 - 23 déc. 2020 à 19:16
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

4 réponses

ptitpanda Messages postés 65 Date d'inscription dimanche 5 août 2012 Statut Membre Dernière intervention 8 avril 2023 8
23 déc. 2020 à 19:16
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+
1
ptitpanda Messages postés 65 Date d'inscription dimanche 5 août 2012 Statut Membre Dernière intervention 8 avril 2023 8
22 déc. 2020 à 23:40
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
0
crouba33 Messages postés 9 Date d'inscription mardi 1 décembre 2020 Statut Membre Dernière intervention 23 décembre 2020
23 déc. 2020 à 15:29
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
0
crouba33 Messages postés 9 Date d'inscription mardi 1 décembre 2020 Statut Membre Dernière intervention 23 décembre 2020
23 déc. 2020 à 17:17
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
0