liaison classeur/msge d'avertissemt

lio

XLDnaute Occasionnel
Bonjour le forum,

Etant novice en VBA, je fais appel à vous. Voici mon (mes) problème(s).
Je gère une base de donnée de personnes (par ordre alphabétique) par usf dans un fichier appelé 'ME'. Dans un autre classeur appelé 'Planning', je gère les congés (par ligne horizontale et par couleur). Bien entendu, une liaison est faite entre les 2 classeurs.

Les questions:

1- Lorsque j'ajoute un nom dans le classeur 'ME', j'ai bien une mise à jour dans le classeur'Planning' mais ce 'nom' me prend la place d'une personne. Aussi, est-il possible que lorsque un nouveau nom est affecté d'avoir une nouvelle ligne qui se crée.

2- Suite à un ancien post, j'ai découvert une méthode pour ne plus avoir le message d'avertissement ' Voulez vous mettre à jour les liaisons'.

Ci joint la méthode proposée par Thierry:

Comme c'est amusant, aujourd'hui, j'avais un truc à faire un peu similaire... (En fait totalement l'inverse.... Je dois être sûr que le user réponde OUI à la question 'Voulez-vous mettre à Jour les liens'...) Mais j'ai trouvé une solution.. qui peut être applicable pour toi... Je m'explique...

Donc, en fait, j'utilise un fichier 'Bidon'.Xls qui ne contient rien du tout à part une macro this WorkBook_Open comme cici :
Private Sub Workbook_Open()
Workbooks.Open 'G:\\Users\\Bank\\Share\\Bank2003.xls', 3
End Sub
C'est ce fichier (Bidon.xls) qui va donc ouvrir le fichier cible (Bank 2003) ayant les formules le référant à des fichiers sources en liens.

Et donc je refile l'adresse à ouvrir (par Shortcut sur le DeskTop, ou barre Office) Sur 'G:\\Users\\Bank\\Share\\Bidon.xls'

Donc le User ouvre ce fichier qui ouvre l'autre en mettant les liens à jour, sans que le User se rende compte de quoi que ce soit...
Bien sur dans le fichier 'Bank2003'.xls en macro WorkBook-BeforeClose
je met :
Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
Workbooks('Bank.xls').Close 0
End Sub

(Je fais aussi une gestion d'erreur si on ouvre le fichier 'Bank2003.xls' sans passer par le fichier Bidon.xls)

Je ne comprend pas à quoi sert le code en rouge ?

3- Depuis mon classeur ' ME', je n'arrive pas à ouvrir le fichier 'bidon'. Je suis sur un Usf et j'ai placé un bouton de Cmd. Je lui ai affecté ce code:
Private Sub Cmd_Click()
Workbooks.open' C:\\Bidon.xls'
Mais ça ne fonctionne pas, en fait rien ne se passe et je reste sur mon Usf du classeur 'Me'.

Merci pour ce qui auront lu ce romant jusqu'à la fin et pour ce qui pourront m'apporter de l'aide.

Bonne journée.
 

lio

XLDnaute Occasionnel
Re,

J'ai trouvé une solution pour la question n°2:

Pour eviter le message 'mise à jour des liens':

Outil=>Option=>Modification=>décocher ensuite 'Confirmation de la mise à jour automatique'.

Et le tour et joué !

Mais alors pourquoi ce post de Thierry qui n'est pourtant pas novice!!! ( une version antérieure peut être)

Merci pour ce qui pourront m'apporter de l'aide pour la question n°1.

Bonne fin de WE
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonsoir Lio, le Forum

Je passe par là comme promis...

Non ce n'est pas une version antérieure d'Excel...

C'est un souci de décocher la case dans 'Outil=>Option=>Modification=>Confirmation de la mise à jour automatique'...

Ou encore par programmation :
Application.AskToUpdateLinks = False

Car ce souci sera que tu auras TOUS tes classeurs avec des liens qui se mettrons à jour sans poser de question à l'ouverture... (Ce qui peut être très génant)

Hors le but de la question initiale posée par Celeda dans le Fil que tu avais trouvé n'était pas du tout celui là...

Bonne Soirée
[ol]@+Thierry[/ol]
 

lio

XLDnaute Occasionnel
Bonjour Thierry,

Tout d'abord merci pur ta réponse. Mais je t'avoue que je comprends pas tout là !
(Ok, pour la MAJ des liens qui peut être génante)

Avec ta solution, on est en présence de 3 fichiers.

Un fichier source, un fichier bidon, un fichier qui comporte des liens du fichier source appelé 'Bank'.

Sur mon fichier source, j'ai placé une CmdBouton avec ce code:
Private Sub CommandButton1_Click()
Dim Chemin As String
Chemin = 'C:\\Bidon.xls'
Workbooks.Open Chemin
Unload Me ' ( je suis sur une Usf)
End Sub

Sur mon fichier 'Bidon' celui là :Private Sub Workbook_Open()
Workbooks.Open 'G:Bank.xls', 3
End Sub

Jusque là pas de problème.

Dans le fichier 'Bank', il y a ce code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
Workbooks('Bank.xls').Close 0
End Sub

Et là commence les 'problèmes' pour moi. Que signifie ce 0. La touche F1 ne m'aide pas !

D'autre part, quand je ferme le fichier 'Bank', je retombe sur le fichier 'Bidon'. Quel code faut -il placer pour retomber sur mon fichier source ?

Merci pour l'aide que tu pourrais m'apporter.

Cordialement. Lio
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonsoir Lio, le Fil, le Forum

Ah pardon, j'ai d'énormes difficultés pour me connecter sur XLD entre mon Admin Network qui me fait des règles pour rediriger l'IP d'XLD vers Microsoft.com (pffff !) et à la maison où je n'avais plus le net !

Bon enfin je viens de voir ta dernière question :

Workbooks('Bank.xls').Close 0

équivaut à

Workbooks('Bank.xls').Close False

Ce qui signifie qu'on ferme le classeur Sans le Sauver (et sans message d'averstissement)


Dans ton cas de figure ce devrait être plutôt Bidon.xls qu'il faudrait fermer...


Dans le fichier 'Bank', il y a ce code:Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
Workbooks('Bidon.xls').Close 0
End Sub

En espérant t'avoir éclairé...

Bonne nuit
[ol]@+Thierry[/ol]
 

Discussions similaires

Réponses
19
Affichages
554

Statistiques des forums

Discussions
312 215
Messages
2 086 324
Membres
103 178
dernier inscrit
BERSEB50