Liaisons problématiques

Le
MEB
Bonjour,

J'ai un fichier qui contient plusieurs liaisons avec d'autres fichiers
et à l'ouverture du fichier j'ai toujours le message qui me dit que
"Ce classeur contient une ou plusieurs liaisons qui ne peuvent pas
être mises à jour" avec les choix Continuer ou Modifier les liaisons.

Pourtant, lorsque je demande à modifier les liaisons, l'état des
sources est à OK partout. Je ne suis pas en mesure de savoir où est le
problème. Si ce n'était que pour moi, je ferais avec mais le hic,
c'est que d'autres utilisateur moins expérimentés utilisent ce fichier
et c'est toujours la panique qui s'installe.

Pouvez-vous encore une fois, trouver une solution à mon problème.

Merci
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
MEB
Le #20638391
On 26 nov, 08:37, MEB
Bonjour,

J'ai un fichier qui contient plusieurs liaisons avec d'autres fichiers
et à l'ouverture du fichier j'ai toujours le message qui me dit que
"Ce classeur contient une ou plusieurs liaisons qui ne peuvent pas
être mises à jour" avec les choix Continuer ou Modifier les liaisons.

Pourtant, lorsque je demande à modifier les liaisons, l'état des
sources est à OK partout. Je ne suis pas en mesure de savoir où est l e
problème. Si ce n'était que pour moi, je ferais avec mais le hic,
c'est que d'autres utilisateur moins expérimentés utilisent ce fichie r
et c'est toujours la panique qui s'installe....

Pouvez-vous encore une fois, trouver une solution à mon problème.

Merci



J'ai trouvé mon problème, c'est que l'un des fichiers auquel est lié
mon fichier principal contient des liens avec d'autres fichiers
auquels je n'ai pas accès (nous sommes en réseau avec des accès
limités).

Cependant, ça m'amène un autre problème. À l'ouverture du fichier i l
m'apparaît une fenêtre me demandant si je désire continuer ou modifie r
les liaisons, comment je peux adapté un vbscript pour qu'il continue
sans vérifier les liaisons problématiques.

Je lui dit ceci :
set Wk = oXL.workbooks.open("O:Tableau de bordTABLEAU DE BORD.xls")
Que dois-je ajouter pour qu'il ne bug pas à cause de la fenêtre en
question.

Merci
FS
Le #20638671
Bonjour,

Le deuxième paramètre de la méthode Open (UpdateLinks) devrait te
permettre de régler ce problème.
Attention toutefois, ses valeurs sont différentes selon que tu utilises
Excel 2000/2003 et Excel 2007. (A vérifier dans l'aide de ta version).

FS
--
Frédéric SIGONNEAU
Modules et modèles pour Excel :
http://frederic.sigonneau.free.fr/

MEB a écrit :
On 26 nov, 08:37, MEB
Bonjour,

J'ai un fichier qui contient plusieurs liaisons avec d'autres fichiers
et à l'ouverture du fichier j'ai toujours le message qui me dit que
"Ce classeur contient une ou plusieurs liaisons qui ne peuvent pas
être mises à jour" avec les choix Continuer ou Modifier les liaisons.

Pourtant, lorsque je demande à modifier les liaisons, l'état des
sources est à OK partout. Je ne suis pas en mesure de savoir où est le
problème. Si ce n'était que pour moi, je ferais avec mais le hic,
c'est que d'autres utilisateur moins expérimentés utilisent ce fichier
et c'est toujours la panique qui s'installe....

Pouvez-vous encore une fois, trouver une solution à mon problème.

Merci



J'ai trouvé mon problème, c'est que l'un des fichiers auquel est lié
mon fichier principal contient des liens avec d'autres fichiers
auquels je n'ai pas accès (nous sommes en réseau avec des accès
limités).

Cependant, ça m'amène un autre problème. À l'ouverture du fichier il
m'apparaît une fenêtre me demandant si je désire continuer ou modifier
les liaisons, comment je peux adapté un vbscript pour qu'il continue
sans vérifier les liaisons problématiques.

Je lui dit ceci :
set Wk = oXL.workbooks.open("O:Tableau de bordTABLEAU DE BORD.xls")
Que dois-je ajouter pour qu'il ne bug pas à cause de la fenêtre en
question.

Merci


isabelle
Le #20638661
bonjour Meb,

il faut renseigner le deuxième argument,

expression.Open(FileName, UpdateLinks, ReadOnly, Format, Password,
WriteResPassword, IgnoreReadOnlyRecommended, Origin, Delimiter,
Editable, Notify, Converter, AddToMru, Local, CorruptLoad,
OpenConflictDocument)

Valeur de UpdateLinks

0 Ne met à jour aucune référence
1 Met à jour des références externes mais pas des références distantes
2 Met à jour des références distantes mais pas des références externes
3 Met à jour des références distantes et des références externes

isabelle


MEB a écrit :
On 26 nov, 08:37, MEB
Bonjour,

J'ai un fichier qui contient plusieurs liaisons avec d'autres fichiers
et à l'ouverture du fichier j'ai toujours le message qui me dit que
"Ce classeur contient une ou plusieurs liaisons qui ne peuvent pas
être mises à jour" avec les choix Continuer ou Modifier les liaisons.

Pourtant, lorsque je demande à modifier les liaisons, l'état des
sources est à OK partout. Je ne suis pas en mesure de savoir où est le
problème. Si ce n'était que pour moi, je ferais avec mais le hic,
c'est que d'autres utilisateur moins expérimentés utilisent ce fichier
et c'est toujours la panique qui s'installe....

Pouvez-vous encore une fois, trouver une solution à mon problème.

Merci




J'ai trouvé mon problème, c'est que l'un des fichiers auquel est lié
mon fichier principal contient des liens avec d'autres fichiers
auquels je n'ai pas accès (nous sommes en réseau avec des accès
limités).

Cependant, ça m'amène un autre problème. À l'ouverture du fichier il
m'apparaît une fenêtre me demandant si je désire continuer ou modifier
les liaisons, comment je peux adapté un vbscript pour qu'il continue
sans vérifier les liaisons problématiques.

Je lui dit ceci :
set Wk = oXL.workbooks.open("O:Tableau de bordTABLEAU DE BORD.xls")
Que dois-je ajouter pour qu'il ne bug pas à cause de la fenêtre en
question.

Merci



isabelle
Le #20638761
ps,

tu devra également ajouter cette ligne :

Application.AskToUpdateLinks = False

isabelle

isabelle a écrit :
bonjour Meb,

il faut renseigner le deuxième argument,

expression.Open(FileName, UpdateLinks, ReadOnly, Format, Password,
WriteResPassword, IgnoreReadOnlyRecommended, Origin, Delimiter,
Editable, Notify, Converter, AddToMru, Local, CorruptLoad,
OpenConflictDocument)

Valeur de UpdateLinks

0 Ne met à jour aucune référence
1 Met à jour des références externes mais pas des références
distantes
2 Met à jour des références distantes mais pas des références
externes
3 Met à jour des références distantes et des références externes

isabelle


MEB a écrit :
On 26 nov, 08:37, MEB
Bonjour,

J'ai un fichier qui contient plusieurs liaisons avec d'autres fichiers
et à l'ouverture du fichier j'ai toujours le message qui me dit que
"Ce classeur contient une ou plusieurs liaisons qui ne peuvent pas
être mises à jour" avec les choix Continuer ou Modifier les liaisons.

Pourtant, lorsque je demande à modifier les liaisons, l'état des
sources est à OK partout. Je ne suis pas en mesure de savoir où est le
problème. Si ce n'était que pour moi, je ferais avec mais le hic,
c'est que d'autres utilisateur moins expérimentés utilisent ce fichier
et c'est toujours la panique qui s'installe....

Pouvez-vous encore une fois, trouver une solution à mon problème.

Merci




J'ai trouvé mon problème, c'est que l'un des fichiers auquel est lié
mon fichier principal contient des liens avec d'autres fichiers
auquels je n'ai pas accès (nous sommes en réseau avec des accès
limités).

Cependant, ça m'amène un autre problème. À l'ouverture du fichier il
m'apparaît une fenêtre me demandant si je désire continuer ou modifier
les liaisons, comment je peux adapté un vbscript pour qu'il continue
sans vérifier les liaisons problématiques.

Je lui dit ceci :
set Wk = oXL.workbooks.open("O:Tableau de bordTABLEAU DE BORD.xls")
Que dois-je ajouter pour qu'il ne bug pas à cause de la fenêtre en
question.

Merci





michdenis
Le #20638751
Bonjour MEB,

Je procéderais de cette manière, elle devrait être Ok peu importe la version d'Excel



Dim Wk as Workbook

'Cette ligne empêche les liaisons de se mettre à jour à l'ouvertur
Application.Calculation = xlCalculationManual
set Wk = oXL.workbooks.open("O:Tableau de bordTABLEAU DE BORD.xls")
Application.Calculation = xlCalculationAutomatic
'Tu appelles la procédure de mise à jour que tu as mise dans
'un module standard
Call Mise_à_Jour (Wk)



'--------------------------------------------
Sub Mise_à_Jour(Wk As Workbook)
Dim Arr(), Elt As Variant

'Tu listes dans un tableau, toutes les
'liaisons que tu veux mettre à jour
'à titre d'exemple...
Arr(1) = "C:AtravailClasseur1.xls"
Arr(2) = "Chemin & " & "" & " & fichier.xls"
Arr(3) = "Chemin & " & "" & " & fichier.xls"

For Each Elt In Arr
With Wk
.UpdateLink Name:=Elt, Type:=xlExcelLinks
End With
Next
End Sub
'--------------------------------------------

Voilà !



"MEB"
Bonjour,

J'ai un fichier qui contient plusieurs liaisons avec d'autres fichiers
et à l'ouverture du fichier j'ai toujours le message qui me dit que
"Ce classeur contient une ou plusieurs liaisons qui ne peuvent pas
être mises à jour" avec les choix Continuer ou Modifier les liaisons.

Pourtant, lorsque je demande à modifier les liaisons, l'état des
sources est à OK partout. Je ne suis pas en mesure de savoir où est le
problème. Si ce n'était que pour moi, je ferais avec mais le hic,
c'est que d'autres utilisateur moins expérimentés utilisent ce fichier
et c'est toujours la panique qui s'installe....

Pouvez-vous encore une fois, trouver une solution à mon problème.

Merci
michdenis
Le #20638901
Le tableau Arr() doit avoir les bornes définies

Dim Arr(1 to 5) si tu as 5 liaisons à mettre à jour !





Dim Wk as Workbook

'Cette ligne empêche les liaisons de se mettre à jour à l'ouvertur
Application.Calculation = xlCalculationManual
set Wk = oXL.workbooks.open("O:Tableau de bordTABLEAU DE BORD.xls")
Application.Calculation = xlCalculationAutomatic
'Tu appelles la procédure de mise à jour que tu as mise dans
'un module standard
Call Mise_à_Jour (Wk)

'--------------------------------------------
Sub Mise_à_Jour(Wk As Workbook)
Dim Arr(), Elt As Variant

'Tu listes dans un tableau, toutes les
'liaisons que tu veux mettre à jour
'à titre d'exemple...
Arr(1) = "C:AtravailClasseur1.xls"
Arr(2) = "Chemin & " & "" & " & fichier.xls"
Arr(3) = "Chemin & " & "" & " & fichier.xls"

For Each Elt In Arr
With Wk
.UpdateLink Name:=Elt, Type:=xlExcelLinks
End With
Next
End Sub
'--------------------------------------------

Voilà !



"MEB"
Bonjour,

J'ai un fichier qui contient plusieurs liaisons avec d'autres fichiers
et à l'ouverture du fichier j'ai toujours le message qui me dit que
"Ce classeur contient une ou plusieurs liaisons qui ne peuvent pas
être mises à jour" avec les choix Continuer ou Modifier les liaisons.

Pourtant, lorsque je demande à modifier les liaisons, l'état des
sources est à OK partout. Je ne suis pas en mesure de savoir où est le
problème. Si ce n'était que pour moi, je ferais avec mais le hic,
c'est que d'autres utilisateur moins expérimentés utilisent ce fichier
et c'est toujours la panique qui s'installe....

Pouvez-vous encore une fois, trouver une solution à mon problème.

Merci
MEB
Le #20640301
On 26 nov, 12:06, "michdenis"
Le tableau Arr() doit avoir les bornes définies

Dim Arr(1 to 5)   si tu as 5 liaisons à mettre à jour !

Dim Wk as Workbook

'Cette ligne empêche les liaisons de se mettre à jour à l'ouvertur
Application.Calculation = xlCalculationManual
set Wk = oXL.workbooks.open("O:Tableau de bordTABLEAU DE BORD.xls")
Application.Calculation = xlCalculationAutomatic
'Tu appelles la procédure de mise à jour que tu as mise dans
'un module standard
Call Mise_à_Jour (Wk)

'--------------------------------------------
Sub Mise_à_Jour(Wk As Workbook)
Dim Arr(), Elt As Variant

'Tu listes dans un tableau, toutes les
'liaisons que tu veux mettre à jour
'à titre d'exemple...
Arr(1) = "C:AtravailClasseur1.xls"
Arr(2) = "Chemin & " & "" & " & fichier.xls"
Arr(3) = "Chemin & " & "" & " & fichier.xls"

For Each Elt In Arr
    With Wk
        .UpdateLink Name:=Elt, Type:=xlExcelLinks
    End With
Next
End Sub
'--------------------------------------------

Voilà !

"MEB"
Bonjour,

J'ai un fichier qui contient plusieurs liaisons avec d'autres fichiers
et à l'ouverture du fichier j'ai toujours le message qui me dit que
"Ce classeur contient une ou plusieurs liaisons qui ne peuvent pas
être mises à jour" avec les choix Continuer ou Modifier les liaisons.

Pourtant, lorsque je demande à modifier les liaisons, l'état des
sources est à OK partout. Je ne suis pas en mesure de savoir où est l e
problème. Si ce n'était que pour moi, je ferais avec mais le hic,
c'est que d'autres utilisateur moins expérimentés utilisent ce fichie r
et c'est toujours la panique qui s'installe....

Pouvez-vous encore une fois, trouver une solution à mon problème.

Merci





J'ai encore besoin de vos lumières, ça fait quelques heures que je
tourne en rond avec toutes les informations que vous m'avez fourni.
D'ailleurs, je vous remercie toutes et tous. Je travaille beaucoup
d'instinct et habituellement ça marche mais aujourd'hui ce n'est pas
une bonne journée.

J'ai fait un vbscript qui a pour but d'ouvrir un fichier excel, de ne
pas tenir compte des liaisons problématiques, mais je veux que les
liaisons qui fonctionnent se mettre à jour, une fois ouvert une macro
s'exécute, le fichier s'enregistre et se ferme, ni vu, ni connu !!!

Sauf que là ça ne fonctionne pas et je n'ai pas assez de connaissances
pour m'en sortir seule. Je trouve ça ben trippant par contre!!!!!!!!

Voici ce que j'ai mis dans mon notepad
-----------------------------------
Dim oXL
Set oXL = WScript.CreateObject("EXCEL.application")
oXL.Visible = True
Application.Calculation = xlCalculationManual
set Wk = oXL.workbooks.open("O:PAN-2009-08 - Tableau de bordTABLEAU
DE BORD.xls")
Application.Calculation = xlCalculationAutomatic
Call "Mise_à_Jour" (Wk)
oxl.run "Cumulatif"
Wk.save
wk.close
oxl.quit
Set oXL = Nothing
---------------------------------

SOS
Merci encore
Bonne journée
michdenis
Le #20640611
Je ne peux pas tester...faut quand même que tu t'amuses !

Il te sera plus facile si tu procèdes de cette façon :

Code à mettre dans NotePad pour créer ton VBScript.vbs

Ce script appelle un fichier situé sur le lecteur C dont le nom
du fichier est Test.xlsm . Ce fichier va servir essentiellement
à mettre une macro que j'ai appelé "Grosse_Macro" dans un
module standard

'---------------------------------------
Dim oXL
Set oXL = WScript.CreateObject("EXCEL.application")
oXL.Visible = True 'Lorsque tout fonctionne, tu peux mettre à false
'Ouverture du classeur
set Wk = oXL.workbooks.open("C:Test.xlsm")
oxl.run "Grosse_Macro"
Wk.save
wk.close
oxl.quit
'---------------------------------------

Le code de la macro "Grosse_Macro" du fichier "Test.xlsm"
Lors de la recopie dans le module, si tu as des coupures le ligne
tu dois replacer le code sur la même ligne, le cas échéant.
'------------------------------------------
Sub Grosse_Macro()
Dim LaMacro As String, LaMacro2 As String

'passe en calcul manuel
Application.Calculation = xlCalculationManual

'Ouverture du classeur
Set Wk = Workbooks.Open("O:PandémiePAN-2009-08 - Tableau de bordTABLEAU DE BORD -
PANDÉMIE.xls")

'Revient en calcul automatique
Application.Calculation = xlCalculationAutomatic

'Met à jour les liens
LaMacro1 = "'" & Wk.Name & "'!" & "Mise_à_Jour"
Application.Run LaMacro1, Wk

'Lancement de la macro Cumulatif
LaMacro2 = "'" & Wk.Name & "'!Cumulatif"
Application.Run LaMacro2

'Sauvegarde des modification du fichier Tableau de bord
Wk.Save

'Fermeture du fichier tableau de bord
Wk.Close False
End Sub
'------------------------------------------


Et dans ton fichier "TABLEAU DE BORD - PANDÉMIE.xls"
Il doit y avoir les macros "Mise_à_Jour" et "Cumulatif" dans
un module standard.

'--------------------------------------------
Sub Mise_à_Jour(Wk As Workbook)

Le chiffre 3 dépend du nombre de liaisons à mettre à jour
Dim Arr(1 to 3), Elt As Variant

'Tu listes dans un tableau, toutes les liaisons des classeurs
'que tu veux mettre à jour 'à titre d'exemple...
'Ces liaisons sont listées dans le menu Édition / Liaisons/
'Oublie celles qui sont problématiques

Arr(1) = "C:AtravailClasseur1.xls"
Arr(2) = "Chemin & " & "" & " & fichier1.xls"
Arr(3) = "Chemin & " & "" & " & fichier2.xls"

For Each Elt In Arr
With Wk
.UpdateLink Name:=Elt, Type:=xlExcelLinks
End With
Next
End Sub
'-----------------------------------------

Sub Cumulatif()

'LeCode

End sub
'-----------------------------------------





"MEB"
On 26 nov, 12:06, "michdenis"
Le tableau Arr() doit avoir les bornes définies

Dim Arr(1 to 5) si tu as 5 liaisons à mettre à jour !

Dim Wk as Workbook

'Cette ligne empêche les liaisons de se mettre à jour à l'ouvertur
Application.Calculation = xlCalculationManual
set Wk = oXL.workbooks.open("O:Tableau de bordTABLEAU DE BORD.xls")
Application.Calculation = xlCalculationAutomatic
'Tu appelles la procédure de mise à jour que tu as mise dans
'un module standard
Call Mise_à_Jour (Wk)

'--------------------------------------------
Sub Mise_à_Jour(Wk As Workbook)
Dim Arr(), Elt As Variant

'Tu listes dans un tableau, toutes les
'liaisons que tu veux mettre à jour
'à titre d'exemple...
Arr(1) = "C:AtravailClasseur1.xls"
Arr(2) = "Chemin & " & "" & " & fichier.xls"
Arr(3) = "Chemin & " & "" & " & fichier.xls"

For Each Elt In Arr
With Wk
.UpdateLink Name:=Elt, Type:=xlExcelLinks
End With
Next
End Sub
'--------------------------------------------

Voilà !

"MEB"
Bonjour,

J'ai un fichier qui contient plusieurs liaisons avec d'autres fichiers
et à l'ouverture du fichier j'ai toujours le message qui me dit que
"Ce classeur contient une ou plusieurs liaisons qui ne peuvent pas
être mises à jour" avec les choix Continuer ou Modifier les liaisons.

Pourtant, lorsque je demande à modifier les liaisons, l'état des
sources est à OK partout. Je ne suis pas en mesure de savoir où est le
problème. Si ce n'était que pour moi, je ferais avec mais le hic,
c'est que d'autres utilisateur moins expérimentés utilisent ce fichier
et c'est toujours la panique qui s'installe....

Pouvez-vous encore une fois, trouver une solution à mon problème.

Merci





J'ai encore besoin de vos lumières, ça fait quelques heures que je
tourne en rond avec toutes les informations que vous m'avez fourni.
D'ailleurs, je vous remercie toutes et tous. Je travaille beaucoup
d'instinct et habituellement ça marche mais aujourd'hui ce n'est pas
une bonne journée.

J'ai fait un vbscript qui a pour but d'ouvrir un fichier excel, de ne
pas tenir compte des liaisons problématiques, mais je veux que les
liaisons qui fonctionnent se mettre à jour, une fois ouvert une macro
s'exécute, le fichier s'enregistre et se ferme, ni vu, ni connu !!!

Sauf que là ça ne fonctionne pas et je n'ai pas assez de connaissances
pour m'en sortir seule. Je trouve ça ben trippant par contre!!!!!!!!

Voici ce que j'ai mis dans mon notepad
-----------------------------------
Dim oXL
Set oXL = WScript.CreateObject("EXCEL.application")
oXL.Visible = True
Application.Calculation = xlCalculationManual
set Wk = oXL.workbooks.open("O:PAN-2009-08 - Tableau de bordTABLEAU
DE BORD.xls")
Application.Calculation = xlCalculationAutomatic
Call "Mise_à_Jour" (Wk)
oxl.run "Cumulatif"
Wk.save
wk.close
oxl.quit
Set oXL = Nothing
---------------------------------

SOS
Merci encore
Bonne journée
Publicité
Poster une réponse
Anonyme