Ouverture de fichier avec message Mise Í  jour de liaison

Le
Alex
Bonjour Í  tous,
Dans une macro o͹ il y a des ouvertures automatique de fichiers, sur certains, apparait un message informant que le fichier a des liaisons.
Je souhaiterai quand le message apparait que cela fasse le choix "Ne pas mettre Í  jour"
Cela est il possible ? si oui comment mettre cela en code ?
Merci Í  tous pour votre aide.
Bonne journée
  • Partager ce contenu :
Vos réponses
Trier par : date / pertinence
MichD
Le #26579577
Le 22/10/21 Í  08:04, Alex a écrit :
Bonjour Í  tous,
Dans une macro o͹ il y a des ouvertures automatique de fichiers, sur certains, apparait un message informant que le fichier a des liaisons.
Je souhaiterai quand le message apparait que cela fasse le choix "Ne pas mettre Í  jour"
Cela est il possible ? si oui comment mettre cela en code ?
Merci Í  tous pour votre aide.
Bonne journée


Bonjour,
Sauf erreur ou oubli de ma part, voilÍ  ce qu’il est possible de réaliser.
A ) ouvre un fichier o͹ tu as au moins un lien
B ) barre des menus du ruban / données / dans la section "Connexions",
choisis la commande "Modifier les connexions"
C ) Dans la fenêtre ouvrante, dans le coin inférieur gauche, clique sur
le bouton "Invite de démarrage".
D ) Tu as 3 possibilités d'énoncer.
Si le premier ou le troisième bouton Radio est activé, il n'y a pas
moyen d'après d'intercepter la mise Í  jour au moment de l'ouverture
du classeur.
Conclusion, pour que la macro proposée fonctionne, tu dois activer
le bouton radio 2 "Ne pas afficher l'alerte et ne pas mettre Í  jour
les liaisons automatiques.
Maintenant dans le Thisworkbook du projetVBA du classeur, tu copies
cette macro. Lors de l'ouverture du classeur, un message va s'ouvrir et
l'usager pourra choisir si oui ou non il veut mettre Í  jour les liens du
classeur.
'---------------------------------------------
Private Sub Workbook_Open()
Dim Alinks As Variant
With ActiveWorkbook
Alinks = .LinkSources(xlExcelLinks)
If Not IsEmpty(Alinks) Then
If .UpdateLinks = xlUpdateLinksNever Then
If MsgBox("Voulez-vous mettre Í  jour les liens de ce
classeur?", _
vbInformation + vbYesNo, "Mettre Í  jour les liens") vbYes Then
.UpdateLinks = xlUpdateLinksAlways 'xlUpdateLinksNever
pour jamais
UpdateLink LinkSources
.UpdateLinks = xlUpdateLinksNever
End If
Else
.UpdateLinks = xlUpdateLinksNever
End If
End If
End With
End Sub
'---------------------------------------------
MichD
Alex
Le #26579654
Bonjour,
Merci pour ce retour que j'ai testé, malheureusement, je rencontre un problème au niveau des lignes "If Msgbox..." qui se mettent en rouge.
J'ai tenté de corriger les lignes, mais cela restent en rouge. Peut-être est ce liés au message frappé ?
Par ailleurs, en faisant la 1ere étape du retour, en ouvrant un des fichiers avec liaisons, je me suis aperçu, que j'avais aussi le message :
Ce classeur contient une ou plusieurs liaisons qui ne peuvent pas être mises Í  jour.
* Pour modifier la source des laisisons ou tenter de mettre Í  nouveau les valeurs Í  jour, cliquez sur Modifier les liaisons.
* Pour laisser les liaisons telles quelles, cliquez sur continuer.
Avec les boutons "Continuer" et "Modifier les liaisons..."
LÍ  aussi, j'ai tenté de réadapter la macro, mais je n'ai pas réussi, VbContinue ne semble pas exister.
Avez une solution.
Merci pour votre aide.
Bonne journée
Alex
Le #26579655
Re,
Je recomplète, en indiquant exactement le 1ere message rencontré :
Ce classeur comporte des liaisons avec un autre classeur.
*Si vous mettre les liaisons Í  jour, Excel tente de récuperer les dernières données.
* Si vous ne les mettez pas Í  jour, Excel utilise les informations précédentes.
Notez que les liaisons de données peuvent permettre d'accéder Í  des informations confidentielles et de les partager sans votre autorisation, voire d'effectuer d'autres opérations préjudiciables.
Ne mettez pas les liaisons Í  jours si vous n'avez pas confiance dans la source de ce classeur.
Avec les 3 boutons :
"Mettre Í  jour" et "Ne pas mettre Í  jour" et "Aide"
En mode "réponse manuelle", que je mette ou non Í  jour les liaisons, j'obtiens le même résultat.
Merci pour votre aide.
MichD
Le #26579659
Le 26/10/21 Í  05:51, Alex a écrit :
Re,
Je recomplète, en indiquant exactement le 1ere message rencontré :
Ce classeur comporte des liaisons avec un autre classeur.
*Si vous mettre les liaisons Í  jour, Excel tente de récuperer les dernières données.
* Si vous ne les mettez pas Í  jour, Excel utilise les informations précédentes.
Notez que les liaisons de données peuvent permettre d'accéder Í  des informations confidentielles et de les partager sans votre autorisation, voire d'effectuer d'autres opérations préjudiciables.
Ne mettez pas les liaisons Í  jours si vous n'avez pas confiance dans la source de ce classeur.
Avec les 3 boutons :
"Mettre Í  jour" et "Ne pas mettre Í  jour" et "Aide"
En mode "réponse manuelle", que je mette ou non Í  jour les liaisons, j'obtiens le même résultat.
Merci pour votre aide.


Bonjour,
A ) Dans la macro proposée, j'avais oublié un "." devant "UpDateLink"
Í  cette ligne de code :
.UpdateLink LinkSources
B ) Le message que tu as, est normal. Excel t'avertit que la source de
certains liens n'est pas disponible et par conséquent la mise Í  jour ne
peut pas s'effectuer Í  moins que tu modifies les liens impliqués.
C ) J'ai modifié la procédure afin de tenir compte de ce qui précède et
de permettre Í  Excel de mettre Í  jour, lien par lien, seulement ceux qui
sont accessibles.
D ) À toi de tester cette procédure...Attention aux coupures dans les lignes
de code Í  cause du service me messagerie.
'-------------------------------------------------------
Private Sub Workbook_Open()
Dim Alinks As Variant, Elt As Variant, A As Long
With ActiveWorkbook
Alinks = .LinkSources(xlExcelLinks)
If Not IsEmpty(Alinks) Then
If .UpdateLinks = xlUpdateLinksNever Then
If MsgBox("Voulez-vous mettre Í  jour les liens de ce
classeur?", _
vbInformation + vbYesNo, "Mettre Í  jour les liens") vbYes Then
.UpdateLinks = xlUpdateLinksAlways
For A = 1 To UBound(Alinks)
If Dir(Alinks(A)) <> "" Then
.UpdateLink Alinks(A)
End If
Next
.UpdateLinks = xlUpdateLinksNever
End If
Else
.UpdateLinks = xlUpdateLinksNever
End If
End If
End With
End Sub
'-------------------------------------------------------
MichD
Le #26579661
Le 26/10/21 Í  08:24, Alex a écrit :
Bonjour,
Merci pour ce retour et correctif :)
Après test, j'ai toujours le problème de message.
Néanmoins, j'ai ouvert en manuel (hors macro) quelques classeurs o͹ il y avait le message qui apparaissait, je ne sais pas si il y a un lien mais je constate que sur les classeurs en question apparait Í  l'ouverture un bandeau jaune en haut de la feuiller, o͹ il faut cliquer sur "Activer le contenu", après s'affiche le message "Continuer" ou "modifier les liaisons", puis enfin un dernier message "Souhaitez-vous faire de ce fichier un document approuvé", pour laquelle je réponds "oui".
Pour celles vérifiés manuellement, j'ai suivi la procédure "Invitation au démarrage". quand je reteste la macro, je n'ai pas le souci de message.
Peut etre faut il ajouter des lignes pour Activer le contenu, et approuvé le document ?
Merci par avance de votre aide.
Bonne journée


A )
La procédure "invitation au démarrage" s'applique aussi avec la nouvelle
macro. Cependant après avoir inséré la dernière procédure dans le
ThisWorkbook, le message problématique devrait s'afficher seulement la
première que le fichier est ouvert. La macro prend soin de cette
manipulation. Évidemment, il faut enregistrer le classeur afin que ce
nouvel état fasse partie intégrante du fichier.
B )
| je constate que sur les classeurs en question apparait Í  l'ouverture
un bandeau jaune en haut
**** Pour avoir les raisons de l'affichage du bandeau jaune, je te
réfère Í  ce site :
https://support.microsoft.com/fr-fr/topic/qu-est-ce-que-le-mode-prot%C3%A9g%C3%A9-d6f09ac7-e6b9-4495-8e43-2bbcdbcb6653#bm2
On peut désactiver le mode protégé (pour les raisons données sur le
site) mais ce n'est pas conseillé.
Pour ce faire, Fichier / Options / Centre de gestion de la
confidentialité / Bouton : Paramètres du centre de gestion de la
confidentialité / Section de gauche : Mode protégé / Décocher les items
sous "Mode protégé".
J'ai testé la procédure, et elle fait le travail que tu demandes.
MichD
Poster une réponse
Anonyme