Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

erreur rencontrée sur UpdateLink

4 réponses
Avatar
Michel Angelosanto
Bonjour,

Dans une procédure, je télécharge un fichier volumineux, souvent il y a un
timeout et le fichier n'est pas chargé complètement.
Aussi après le chargement, je vérifie la taille du fichier, si il est trop
petit, je refais le chargement.
Parfois, il est de taille normale (il manque probablement une petite
partie?)
A la ligne suivante, je mets à jour les liaisons vers le fichier téléchargé
test.xls
ActiveWorkbook.UpdateLink Name:="test.xls"

Le problème est que si le fichier est incomplet (illisible), j'ai un message
d'erreur à l'écran ce qui exige qu'on soit devant l'écran pour répondre et
qu'on aille dans le code pour refaire le chargement.

Je voudrais pouvoir relancer le chargement automatiquement si il y a une
erreur lors de la mise à jour des liaisons.
La gestion des erreurs ne fonctionne pas.
Application.displayalerts=false n'empêche pas l'affichage du message.

Comment puis-je intercepter ce message d'erreur en VBA?

Merci d'avance et bon week-end.



Michel Angelosanto, Bordeaux, France

4 réponses

Avatar
Jacky
Bonjour,

Sans garantie
Quelque chose comme ceci
'----------------------
Sub lamacro()
On Error GoTo erreur
'le code actuel
Exit Sub
erreur:
Resume
End Sub
'----------------------
--
Salutations
JJ


"Michel Angelosanto" a écrit dans le message de news:
4df46957$0$4777$
Bonjour,

Dans une procédure, je télécharge un fichier volumineux, souvent il y a un timeout et le fichier n'est pas
chargé complètement.
Aussi après le chargement, je vérifie la taille du fichier, si il est trop petit, je refais le chargement.
Parfois, il est de taille normale (il manque probablement une petite partie?)
A la ligne suivante, je mets à jour les liaisons vers le fichier téléchargé test.xls
ActiveWorkbook.UpdateLink Name:="test.xls"

Le problème est que si le fichier est incomplet (illisible), j'ai un message d'erreur à l'écran ce qui exige
qu'on soit devant l'écran pour répondre et qu'on aille dans le code pour refaire le chargement.

Je voudrais pouvoir relancer le chargement automatiquement si il y a une erreur lors de la mise à jour des
liaisons.
La gestion des erreurs ne fonctionne pas.
Application.displayalertsúlse n'empêche pas l'affichage du message.

Comment puis-je intercepter ce message d'erreur en VBA?

Merci d'avance et bon week-end.



Michel Angelosanto, Bordeaux, France
Avatar
Jacky
RE..
Ou ceci
'---------------
Sub lamacro()
Chargement:
' ***Le code de chargement
On Error Resume Next
' ***le code qui provoque l'erreur
If Err <> 0 Then
GoTo Chargement
Else
On Error GoTo 0
' ***suite du code
End If
End Sub
'---------------------


--
Salutations
JJ


"Michel Angelosanto" a écrit dans le message de news:
4df46957$0$4777$
Bonjour,

Dans une procédure, je télécharge un fichier volumineux, souvent il y a un timeout et le fichier n'est pas
chargé complètement.
Aussi après le chargement, je vérifie la taille du fichier, si il est trop petit, je refais le chargement.
Parfois, il est de taille normale (il manque probablement une petite partie?)
A la ligne suivante, je mets à jour les liaisons vers le fichier téléchargé test.xls
ActiveWorkbook.UpdateLink Name:="test.xls"

Le problème est que si le fichier est incomplet (illisible), j'ai un message d'erreur à l'écran ce qui exige
qu'on soit devant l'écran pour répondre et qu'on aille dans le code pour refaire le chargement.

Je voudrais pouvoir relancer le chargement automatiquement si il y a une erreur lors de la mise à jour des
liaisons.
La gestion des erreurs ne fonctionne pas.
Application.displayalertsúlse n'empêche pas l'affichage du message.

Comment puis-je intercepter ce message d'erreur en VBA?

Merci d'avance et bon week-end.



Michel Angelosanto, Bordeaux, France
Avatar
MichD
Bonjour,

As-tu essayé d'ouvrir ton fichier en VBA en utilisant une ligne de code comme celle-ci ?

Workbooks.Open Filename:="c:Le_Chemintoto.xls", UpdateLinks:=3

Il n'y a pas de raison que le classeur ne s'ouvre pas normalement SAUF si un des fichiers
sources d'une liaison est introuvable par Excel suite à sa suppression ou à son déplacement.

Ce qui suit provient de l'aide VBA sur la méthode "Opens"

Le paramètre "UpdateLinks" peut prendre 3 valeurs :
1 -> L'utilisateur spécifie comment les liens seront mis à jour.
2 -> Les liens ne sont jamais mis à jour dans ce classeur au moment de l'ouverture.
3 -> Les liens sont toujours mis à jour dans ce classeur au moment de l'ouverture.
'-------------------------------
Spécifie la façon dont les liens du fichier sont mis à jour. Si cet argument est omis, l'utilisateur est invité à
indiquer comment les liens doivent être mis à jour. Pour plus d'informations sur les valeurs utilisées par ce paramètre,
voir la section Notes. Si Microsoft Excel ouvre un fichier au format WKS, WK1 ou WK3 et si l'argument MettreÀJourLiens a
la valeur 2, Microsoft Excel crée des graphiques à partir des diagrammes associés au fichier. Si cet argument a la
valeur 0, aucun graphique n'est créé.
'-------------------------------


MichD
--------------------------------------------
"Michel Angelosanto" a écrit dans le message de groupe de discussion : 4df46957$0$4777$

Bonjour,

Dans une procédure, je télécharge un fichier volumineux, souvent il y a un
timeout et le fichier n'est pas chargé complètement.
Aussi après le chargement, je vérifie la taille du fichier, si il est trop
petit, je refais le chargement.
Parfois, il est de taille normale (il manque probablement une petite
partie?)
A la ligne suivante, je mets à jour les liaisons vers le fichier téléchargé
test.xls
ActiveWorkbook.UpdateLink Name:="test.xls"

Le problème est que si le fichier est incomplet (illisible), j'ai un message
d'erreur à l'écran ce qui exige qu'on soit devant l'écran pour répondre et
qu'on aille dans le code pour refaire le chargement.

Je voudrais pouvoir relancer le chargement automatiquement si il y a une
erreur lors de la mise à jour des liaisons.
La gestion des erreurs ne fonctionne pas.
Application.displayalertsúlse n'empêche pas l'affichage du message.

Comment puis-je intercepter ce message d'erreur en VBA?

Merci d'avance et bon week-end.



Michel Angelosanto, Bordeaux, France
Avatar
Michel Angelosanto
Effectivement, le on error goto ou on error resume capte bien l'erreur sous
excel 2007 mais pas sous excel 97 ou malgré le on error resume next, j'ai un
message impossible d'établir les liaisons.

"Jacky" a écrit dans le message de
news:it24f1$n6d$
RE..
Ou ceci
'---------------
Sub lamacro()
Chargement:
' ***Le code de chargement
On Error Resume Next
' ***le code qui provoque l'erreur
If Err <> 0 Then
GoTo Chargement
Else
On Error GoTo 0
' ***suite du code
End If
End Sub
'---------------------


--
Salutations
JJ


"Michel Angelosanto" a écrit dans le message de news:
4df46957$0$4777$
Bonjour,

Dans une procédure, je télécharge un fichier volumineux, souvent il y a
un timeout et le fichier n'est pas chargé complètement.
Aussi après le chargement, je vérifie la taille du fichier, si il est
trop petit, je refais le chargement.
Parfois, il est de taille normale (il manque probablement une petite
partie?)
A la ligne suivante, je mets à jour les liaisons vers le fichier
téléchargé test.xls
ActiveWorkbook.UpdateLink Name:="test.xls"

Le problème est que si le fichier est incomplet (illisible), j'ai un
message d'erreur à l'écran ce qui exige qu'on soit devant l'écran pour
répondre et qu'on aille dans le code pour refaire le chargement.

Je voudrais pouvoir relancer le chargement automatiquement si il y a une
erreur lors de la mise à jour des liaisons.
La gestion des erreurs ne fonctionne pas.
Application.displayalertsúlse n'empêche pas l'affichage du message.

Comment puis-je intercepter ce message d'erreur en VBA?

Merci d'avance et bon week-end.



Michel Angelosanto, Bordeaux, France






Michel Angelosanto, Bordeaux, France