les liaisons du Chef

Le
Mabouille
Bonjour,
Il y a 4 collaborateurs et 4 classeurs individuels "Un", "Deux", "Trois",
"Quatre", protégés par les mot de passe "mot1", "mot2", "mot3", "mot4".
Chaque collaborateur a son classeur, et connaît donc le mot de passe pour
l'ouvrir, mais pas les autres.
Chaque classeur ne comporte qu'une feuille "Feuil1". Les feuilles ne sont
pas protégées.

Le Chef dispose d'un classeur "Cinq" sur le modèle des autres (ouverture par
mot de passe "mot5", 1 seule feuille, non protégée).
Les classeurs Un à Quatre contiennent des données, le classeur Cinq contient
des formules utilisant ces données. Forcément, c'est le Chef!

Mais quand le Chef ouvre Cinq pour lire les résutats figurant sur sa
feuille, la mise à jour des liaisons nécessite de taper successivement les
mots de passe des 4 classeurs sources. Le Chef connaît tous les mots de passe
mais ça le fatigue: pas bon!

Comment mettre dans son classeur Cinq une macro qui permette,
automatiquement à son ouverture, la mise à jour de Cinq sans avoir à taper
les mots de passe des classeurs sources Un à Quatre ?

Je précise bien: il ne s'agit pas de protéger-déprotéger les feuilles, qui
n'en ont pas besoin, mais bien d'ouvrir les liaisons avec les classeurs, et
si possible sans ouvrir les classeurs eux-mêmes.
Un seul ordinateur pour tous, PC, Windows XP, Excel 2002. Tous les classeurs
sont dans le même répertoire "Vision".

Merci de votre aide, que bénira le Chef, (et moi !)
Mabouille
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
MichDenis
Le #5226351
Je t'ai déjà répondu à cette question le 5/3/2008 à 11.07 Heure du Québec.

Dans les fichiers (de 1 à 4) source de tes liaisons, utilise
ceci pour protéger la feuille de chacun des classeurs. Évidemment
pour chacun des classeurs tu devras adapter le mot de passe!

Dans le ThisWorkbook de chaque classeur source, copie cette procédure.
Si ta feuille est protégée, déprotège là... la procédure qui suit s'en chargera.
À chaque ouverture du classeur source, la protection de la feuille
s'appliquera mais cela n'empêchera pas d'ouvrir le fichier du chef ayant
une relation avec les fichiers sources, de mettre à jour les données
sans demander le mot de passe des feuilles.

'-----------------------------------
Private Sub Workbook_Open()

Dim Sh As Worksheet
For Each Sh In Worksheets
Sh.Protect "toto", True , True , True , True
Next
End Sub
'-----------------------------------




"Mabouille"
Bonjour,
Il y a 4 collaborateurs et 4 classeurs individuels "Un", "Deux", "Trois",
"Quatre", protégés par les mot de passe "mot1", "mot2", "mot3", "mot4".
Chaque collaborateur a son classeur, et connaît donc le mot de passe pour
l'ouvrir, mais pas les autres.
Chaque classeur ne comporte qu'une feuille "Feuil1". Les feuilles ne sont
pas protégées.

Le Chef dispose d'un classeur "Cinq" sur le modèle des autres (ouverture par
mot de passe "mot5", 1 seule feuille, non protégée).
Les classeurs Un à Quatre contiennent des données, le classeur Cinq contient
des formules utilisant ces données. Forcément, c'est le Chef!

Mais quand le Chef ouvre Cinq pour lire les résutats figurant sur sa
feuille, la mise à jour des liaisons nécessite de taper successivement les
mots de passe des 4 classeurs sources. Le Chef connaît tous les mots de passe
mais ça le fatigue: pas bon!

Comment mettre dans son classeur Cinq une macro qui permette,
automatiquement à son ouverture, la mise à jour de Cinq sans avoir à taper
les mots de passe des classeurs sources Un à Quatre ?

Je précise bien: il ne s'agit pas de protéger-déprotéger les feuilles, qui
n'en ont pas besoin, mais bien d'ouvrir les liaisons avec les classeurs, et
si possible sans ouvrir les classeurs eux-mêmes.
Un seul ordinateur pour tous, PC, Windows XP, Excel 2002. Tous les classeurs
sont dans le même répertoire "Vision".

Merci de votre aide, que bénira le Chef, (et moi !)
Mabouille
Mabouille
Le #5191241
Bonjour,
Merci pour cette réponse, et pour la précèdente. C'est vraiment sympa à vous
de prendre le temps de répondre, et certainement rageant d'avoir
l'impression qu'on ne vous lit pas. Ce n'est pas le cas : j'ai lu, et je
vous remercie trés sincèrement.
Cependant je suis désolé de devoir dire qu'aucune des deux réponses ne me
semble correspondre à la question posée car il n'y a pas de mot de passe
pour les feuilles dans les fichiers dont il s'agit. Or dans le code que vous
proposez et l'explication qui l'accompagne vous parlez de la protection des
feuilles, et jamais de celle des classeurs.
Quand on ouvre le fichier du chef (Cinq), Windows indique que ce fichier
comporte des liaisons avec d'autres, et demande si on veut les mettre à
jour.
Si on répond "oui" windows demande alors un par un les mots de passe qui
donnent accès aux fichiers source Un à Quatre.
C'est cette cascade de demandes que je veux contourner par une macro qui
serait dans Cinq.
Avons nous un problème de sémantique ? Quand je dis "feuille" c'est pour
les Worksheets, et là aucun mot de passe n'intervient ici, quand je dis
"fichier" ou "classeur" c'est pour les Workbooks, concernés eux par des mots
de passe.
S'il vous plaît ne vous fâchez pas contre moi si j'ai mal compris, mais
dites moi où, et comment faire ?
Cordialement
Mabouille



"MichDenis" %
Je t'ai déjà répondu à cette question le 5/3/2008 à 11.07 Heure du Québec.

Dans les fichiers (de 1 à 4) source de tes liaisons, utilise
ceci pour protéger la feuille de chacun des classeurs. Évidemment
pour chacun des classeurs tu devras adapter le mot de passe!

Dans le ThisWorkbook de chaque classeur source, copie cette procédure.
Si ta feuille est protégée, déprotège là... la procédure qui suit s'en
chargera.
À chaque ouverture du classeur source, la protection de la feuille
s'appliquera mais cela n'empêchera pas d'ouvrir le fichier du chef ayant
une relation avec les fichiers sources, de mettre à jour les données
sans demander le mot de passe des feuilles.

'-----------------------------------
Private Sub Workbook_Open()

Dim Sh As Worksheet
For Each Sh In Worksheets
Sh.Protect "toto", True , True , True , True
Next
End Sub
'-----------------------------------




"Mabouille" de news:

Bonjour,
Il y a 4 collaborateurs et 4 classeurs individuels "Un", "Deux", "Trois",
"Quatre", protégés par les mot de passe "mot1", "mot2", "mot3", "mot4".
Chaque collaborateur a son classeur, et connaît donc le mot de passe pour
l'ouvrir, mais pas les autres.
Chaque classeur ne comporte qu'une feuille "Feuil1". Les feuilles ne sont
pas protégées.

Le Chef dispose d'un classeur "Cinq" sur le modèle des autres (ouverture
par
mot de passe "mot5", 1 seule feuille, non protégée).
Les classeurs Un à Quatre contiennent des données, le classeur Cinq
contient
des formules utilisant ces données. Forcément, c'est le Chef!

Mais quand le Chef ouvre Cinq pour lire les résutats figurant sur sa
feuille, la mise à jour des liaisons nécessite de taper successivement les
mots de passe des 4 classeurs sources. Le Chef connaît tous les mots de
passe
mais ça le fatigue: pas bon!

Comment mettre dans son classeur Cinq une macro qui permette,
automatiquement à son ouverture, la mise à jour de Cinq sans avoir à taper
les mots de passe des classeurs sources Un à Quatre ?

Je précise bien: il ne s'agit pas de protéger-déprotéger les feuilles, qui
n'en ont pas besoin, mais bien d'ouvrir les liaisons avec les classeurs,
et
si possible sans ouvrir les classeurs eux-mêmes.
Un seul ordinateur pour tous, PC, Windows XP, Excel 2002. Tous les
classeurs
sont dans le même répertoire "Vision".

Merci de votre aide, que bénira le Chef, (et moi !)
Mabouille






isabelle
Le #5191131
bonjour Mabouille,

je crois bien avoir réussi à contourner ce problème, ce n'ai pas évident car cet événement ce produit avant l'événement workbook_Open.
et il n'y a rien de prévu au niveau des liaisons externe pour enregistrer le mot de passe, comme il est possible de le faire
pour les requête externe (*.dsn)

c'est titer par les cheveux, mais j'ai fais plusieurs test et cela fonctionne.

- il faut ouvrir tout les fichiers "Un", "Deux", "Trois","Quatre","cinq"
sur le fichier "cinq" selectionner au menu, Edition, Liaisons, click sur le bouton "Invite de demarrage"
et cocher (2ème) "Ne pas afficher l'arlerte et ne pas mettre à jour les liens automatiques"

copie cette macro sur la page code de ThisWorkBook du classeur "cinq"
il faudra adapter les noms de tes classeurs et leurs mots de passe ici les fichier sont "zz1", "zz2" etc..
et les mot de passe sont identique au nom de chaque classeur
le fait d'ouvrir et de refermer les fichiers fait en sorte que la mise à jour s'opère.
si la mise à jour est volumineuse, il faudra peut être mettre une pause entre les ouverture et les fermeture.

Private Sub Workbook_Open()
Application.ScreenUpdating = False
For i = 1 To 4
Workbooks.Open "C:zazazz" & i & ".xls", , , , "zz" & i
Next
For i = 1 To 4
Workbooks("zz" & i & ".xls").Close
Next
Application.ScreenUpdating = True
End Sub

isabelle

Bonjour,
Merci pour cette réponse, et pour la précèdente. C'est vraiment sympa à vous
de prendre le temps de répondre, et certainement rageant d'avoir
l'impression qu'on ne vous lit pas. Ce n'est pas le cas : j'ai lu, et je
vous remercie trés sincèrement.
Cependant je suis désolé de devoir dire qu'aucune des deux réponses ne me
semble correspondre à la question posée car il n'y a pas de mot de passe
pour les feuilles dans les fichiers dont il s'agit. Or dans le code que vous
proposez et l'explication qui l'accompagne vous parlez de la protection des
feuilles, et jamais de celle des classeurs.
Quand on ouvre le fichier du chef (Cinq), Windows indique que ce fichier
comporte des liaisons avec d'autres, et demande si on veut les mettre à
jour.
Si on répond "oui" windows demande alors un par un les mots de passe qui
donnent accès aux fichiers source Un à Quatre.
C'est cette cascade de demandes que je veux contourner par une macro qui
serait dans Cinq.
Avons nous un problème de sémantique ? Quand je dis "feuille" c'est pour
les Worksheets, et là aucun mot de passe n'intervient ici, quand je dis
"fichier" ou "classeur" c'est pour les Workbooks, concernés eux par des mots
de passe.
S'il vous plaît ne vous fâchez pas contre moi si j'ai mal compris, mais
dites moi où, et comment faire ?
Cordialement
Mabouille



"MichDenis" %
Je t'ai déjà répondu à cette question le 5/3/2008 à 11.07 Heure du Québec.

Dans les fichiers (de 1 à 4) source de tes liaisons, utilise
ceci pour protéger la feuille de chacun des classeurs. Évidemment
pour chacun des classeurs tu devras adapter le mot de passe!

Dans le ThisWorkbook de chaque classeur source, copie cette procédure.
Si ta feuille est protégée, déprotège là... la procédure qui suit s'en
chargera.
À chaque ouverture du classeur source, la protection de la feuille
s'appliquera mais cela n'empêchera pas d'ouvrir le fichier du chef ayant
une relation avec les fichiers sources, de mettre à jour les données
sans demander le mot de passe des feuilles.

'-----------------------------------
Private Sub Workbook_Open()

Dim Sh As Worksheet
For Each Sh In Worksheets
Sh.Protect "toto", True , True , True , True
Next
End Sub
'-----------------------------------




"Mabouille" de news:

Bonjour,
Il y a 4 collaborateurs et 4 classeurs individuels "Un", "Deux", "Trois",
"Quatre", protégés par les mot de passe "mot1", "mot2", "mot3", "mot4".
Chaque collaborateur a son classeur, et connaît donc le mot de passe pour
l'ouvrir, mais pas les autres.
Chaque classeur ne comporte qu'une feuille "Feuil1". Les feuilles ne sont
pas protégées.

Le Chef dispose d'un classeur "Cinq" sur le modèle des autres (ouverture
par
mot de passe "mot5", 1 seule feuille, non protégée).
Les classeurs Un à Quatre contiennent des données, le classeur Cinq
contient
des formules utilisant ces données. Forcément, c'est le Chef!

Mais quand le Chef ouvre Cinq pour lire les résutats figurant sur sa
feuille, la mise à jour des liaisons nécessite de taper successivement les
mots de passe des 4 classeurs sources. Le Chef connaît tous les mots de
passe
mais ça le fatigue: pas bon!

Comment mettre dans son classeur Cinq une macro qui permette,
automatiquement à son ouverture, la mise à jour de Cinq sans avoir à taper
les mots de passe des classeurs sources Un à Quatre ?

Je précise bien: il ne s'agit pas de protéger-déprotéger les feuilles, qui
n'en ont pas besoin, mais bien d'ouvrir les liaisons avec les classeurs,
et
si possible sans ouvrir les classeurs eux-mêmes.
Un seul ordinateur pour tous, PC, Windows XP, Excel 2002. Tous les
classeurs
sont dans le même répertoire "Vision".

Merci de votre aide, que bénira le Chef, (et moi !)
Mabouille










Mabouille
Le #5190791
Merci Isabelle, je vais essayer.
J'espérais une solution qui n'oblige pas à ouvrir les fichiers tout en
permettant la mise à jour, mais la tienne doit marcher, je vais donc
l'appliquer, on verra aprés. En fait chaque mise à jour n'est pas
volumineuse, elle concerne un chiffre et une date par classeur source, et
les classeurs ne sont pas trés volumineux, donc ça ira au point de vue
temps...enfin j'espère, je te tiens au courant.
Cordialement
Mabouille

"isabelle" a écrit dans le message de news:
uKzLk%
bonjour Mabouille,

je crois bien avoir réussi à contourner ce problème, ce n'ai pas évident
car cet événement ce produit avant l'événement workbook_Open.
et il n'y a rien de prévu au niveau des liaisons externe pour enregistrer
le mot de passe, comme il est possible de le faire
pour les requête externe (*.dsn)

c'est titer par les cheveux, mais j'ai fais plusieurs test et cela
fonctionne.

- il faut ouvrir tout les fichiers "Un", "Deux", "Trois","Quatre","cinq"
sur le fichier "cinq" selectionner au menu, Edition, Liaisons, click sur
le bouton "Invite de demarrage"
et cocher (2ème) "Ne pas afficher l'arlerte et ne pas mettre à jour les
liens automatiques"

copie cette macro sur la page code de ThisWorkBook du classeur "cinq"
il faudra adapter les noms de tes classeurs et leurs mots de passe ici les
fichier sont "zz1", "zz2" etc..
et les mot de passe sont identique au nom de chaque classeur
le fait d'ouvrir et de refermer les fichiers fait en sorte que la mise à
jour s'opère.
si la mise à jour est volumineuse, il faudra peut être mettre une pause
entre les ouverture et les fermeture.

Private Sub Workbook_Open()
Application.ScreenUpdating = False
For i = 1 To 4
Workbooks.Open "C:zazazz" & i & ".xls", , , , "zz" & i
Next
For i = 1 To 4
Workbooks("zz" & i & ".xls").Close
Next
Application.ScreenUpdating = True
End Sub

isabelle

Bonjour,
Merci pour cette réponse, et pour la précèdente. C'est vraiment sympa à
vous de prendre le temps de répondre, et certainement rageant d'avoir
l'impression qu'on ne vous lit pas. Ce n'est pas le cas : j'ai lu, et je
vous remercie trés sincèrement.
Cependant je suis désolé de devoir dire qu'aucune des deux réponses ne me
semble correspondre à la question posée car il n'y a pas de mot de passe
pour les feuilles dans les fichiers dont il s'agit. Or dans le code que
vous proposez et l'explication qui l'accompagne vous parlez de la
protection des feuilles, et jamais de celle des classeurs.
Quand on ouvre le fichier du chef (Cinq), Windows indique que ce fichier
comporte des liaisons avec d'autres, et demande si on veut les mettre à
jour.
Si on répond "oui" windows demande alors un par un les mots de passe qui
donnent accès aux fichiers source Un à Quatre.
C'est cette cascade de demandes que je veux contourner par une macro qui
serait dans Cinq.
Avons nous un problème de sémantique ? Quand je dis "feuille" c'est pour
les Worksheets, et là aucun mot de passe n'intervient ici, quand je dis
"fichier" ou "classeur" c'est pour les Workbooks, concernés eux par des
mots de passe.
S'il vous plaît ne vous fâchez pas contre moi si j'ai mal compris, mais
dites moi où, et comment faire ?
Cordialement
Mabouille



"MichDenis" %
Je t'ai déjà répondu à cette question le 5/3/2008 à 11.07 Heure du
Québec.

Dans les fichiers (de 1 à 4) source de tes liaisons, utilise
ceci pour protéger la feuille de chacun des classeurs. Évidemment
pour chacun des classeurs tu devras adapter le mot de passe!

Dans le ThisWorkbook de chaque classeur source, copie cette procédure.
Si ta feuille est protégée, déprotège là... la procédure qui suit s'en
chargera.
À chaque ouverture du classeur source, la protection de la feuille
s'appliquera mais cela n'empêchera pas d'ouvrir le fichier du chef ayant
une relation avec les fichiers sources, de mettre à jour les données
sans demander le mot de passe des feuilles.

'-----------------------------------
Private Sub Workbook_Open()

Dim Sh As Worksheet
For Each Sh In Worksheets
Sh.Protect "toto", True , True , True , True
Next
End Sub
'-----------------------------------




"Mabouille" message de news:

Bonjour,
Il y a 4 collaborateurs et 4 classeurs individuels "Un", "Deux",
"Trois",
"Quatre", protégés par les mot de passe "mot1", "mot2", "mot3", "mot4".
Chaque collaborateur a son classeur, et connaît donc le mot de passe
pour
l'ouvrir, mais pas les autres.
Chaque classeur ne comporte qu'une feuille "Feuil1". Les feuilles ne
sont
pas protégées.

Le Chef dispose d'un classeur "Cinq" sur le modèle des autres (ouverture
par
mot de passe "mot5", 1 seule feuille, non protégée).
Les classeurs Un à Quatre contiennent des données, le classeur Cinq
contient
des formules utilisant ces données. Forcément, c'est le Chef!

Mais quand le Chef ouvre Cinq pour lire les résutats figurant sur sa
feuille, la mise à jour des liaisons nécessite de taper successivement
les
mots de passe des 4 classeurs sources. Le Chef connaît tous les mots de
passe
mais ça le fatigue: pas bon!

Comment mettre dans son classeur Cinq une macro qui permette,
automatiquement à son ouverture, la mise à jour de Cinq sans avoir à
taper
les mots de passe des classeurs sources Un à Quatre ?

Je précise bien: il ne s'agit pas de protéger-déprotéger les feuilles,
qui
n'en ont pas besoin, mais bien d'ouvrir les liaisons avec les classeurs,
et
si possible sans ouvrir les classeurs eux-mêmes.
Un seul ordinateur pour tous, PC, Windows XP, Excel 2002. Tous les
classeurs
sont dans le même répertoire "Vision".

Merci de votre aide, que bénira le Chef, (et moi !)
Mabouille











Mabouille
Le #5225781
Bonjour Isabelle,(et tout le groupe)
J'ai adapté ta stratégie, qui est d'ouvrir tout, mettre à jour, puis fermer
tout, et ça marche.
En pratique le Chef, qui en a rajouté une louche depuis, veut avoir le choix
de disposer ou pas à l'écran des fichiers source ouverts, ce qui fait que je
n'ai pas mis la macro dans Workbooks de Cinq avec une Sub Workbook_Open()
mais dans un module normal des macros Perso.xls
Du coup je n'ai pas non plus utilisé "Ne pas afficher l'alerte et ne pas
mettre à jour les liens automatiques" pour Cinq, mais j'ai noté cette astuce
pour une autre fois.

La macro s'ouvre en cliquant sur un bouton placé dans la barre des tâches.
Le code brut de fonderie est (voir ci après), sauf erreurs en transcrivant :

Sub LiaisonsDuChef()
Réponse = MsgBox(Title:="Cinq seul ou avec ses dossiers ?", _
Prompt:="Réponse OUI pour afficher tous les dossiers, Réponse NON pour
afficher Cinq seul", Buttons:=3)
If Réponse = 2 Then End ' Réponse= 2 quand on clique sur
Annuler ou sur la croix X

If Réponse = 6 Then 'Réponse =6 correspond à OUI
= quand on veut afficher tous les dossiers
OuvertureFichiers

Else 'si réponse =7 et pas 2 ni 6 ,
Réponse=7 correspond à NON = quand on veut ouvrir Cinq seulement sans voir
les autres
OuvertureFichiers
'puis fermeture des fichiers, sauf Cinq bien sûr, une fois la mise à jour
faite
Workbooks("Un.xls").Close SaveChanges:úlse
Workbooks("Deux.xls").Close SaveChanges:úlse
Workbooks("Trois.xls").Close SaveChanges:úlse
Workbooks("Quatre.xls").Close SaveChanges:úlse
End If
End Sub

Sub OuvertureFichiers 'macro auxiliaire, elle
sert dans les deux cas
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
With Workbooks 'NB:les mots de passe sont
fantaisistes ici
.Open "C:Documents and Settings...Un.xls", UpdateLinks:=3,
Password:="toto"
.Open "C:Documents and Settings...Deux.xls", UpdateLinks:=3,
Password:="tutu"
.Open "C:Documents and Settings...Trois.xls", UpdateLinks:=3,
Password:="tata"
.Open "C:Documents and Settings...Quatre.xls", UpdateLinks:=3,
Password:="titi"
'ici une boite de dialogue demande le mot de passe de Cinq, mis ensuite dans
la variable Chef
.Open "C:Documents and Settings....Cinq.xls", _
UpdateLinks:=3, Password:=Chef
End With
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End sub

Il faudrait ajouter du code pour éviter le plantage si un des dossiers était
déjà ouvert, je vais le faire.

Voilà, merci beaucoup Isabelle pour ta réponse, qui m'a permis de débloquer
la situation,
Mais, pour le sport, merci à qui me dira si c'est possible de mettre à jour
ces liaisons sans ouvrir les fichiers, avec le bout de code magique svp.
Merci aussi à MichDenis pour sa peine.
Cordialement,
Mabouille


"isabelle" a écrit dans le message de news:
uKzLk%
bonjour Mabouille,

je crois bien avoir réussi à contourner ce problème, ce n'ai pas évident
car cet événement ce produit avant l'événement workbook_Open.
et il n'y a rien de prévu au niveau des liaisons externe pour enregistrer
le mot de passe, comme il est possible de le faire
pour les requête externe (*.dsn)

c'est titer par les cheveux, mais j'ai fais plusieurs test et cela
fonctionne.

- il faut ouvrir tout les fichiers "Un", "Deux", "Trois","Quatre","cinq"
sur le fichier "cinq" selectionner au menu, Edition, Liaisons, click sur
le bouton "Invite de demarrage"
et cocher (2ème) "Ne pas afficher l'arlerte et ne pas mettre à jour les
liens automatiques"

copie cette macro sur la page code de ThisWorkBook du classeur "cinq"
il faudra adapter les noms de tes classeurs et leurs mots de passe ici les
fichier sont "zz1", "zz2" etc..
et les mot de passe sont identique au nom de chaque classeur
le fait d'ouvrir et de refermer les fichiers fait en sorte que la mise à
jour s'opère.
si la mise à jour est volumineuse, il faudra peut être mettre une pause
entre les ouverture et les fermeture.

Private Sub Workbook_Open()
Application.ScreenUpdating = False
For i = 1 To 4
Workbooks.Open "C:zazazz" & i & ".xls", , , , "zz" & i
Next
For i = 1 To 4
Workbooks("zz" & i & ".xls").Close
Next
Application.ScreenUpdating = True
End Sub

isabelle

Bonjour,
Merci pour cette réponse, et pour la précèdente. C'est vraiment sympa à
vous de prendre le temps de répondre, et certainement rageant d'avoir
l'impression qu'on ne vous lit pas. Ce n'est pas le cas : j'ai lu, et je
vous remercie trés sincèrement.
Cependant je suis désolé de devoir dire qu'aucune des deux réponses ne me
semble correspondre à la question posée car il n'y a pas de mot de passe
pour les feuilles dans les fichiers dont il s'agit. Or dans le code que
vous proposez et l'explication qui l'accompagne vous parlez de la
protection des feuilles, et jamais de celle des classeurs.
Quand on ouvre le fichier du chef (Cinq), Windows indique que ce fichier
comporte des liaisons avec d'autres, et demande si on veut les mettre à
jour.
Si on répond "oui" windows demande alors un par un les mots de passe qui
donnent accès aux fichiers source Un à Quatre.
C'est cette cascade de demandes que je veux contourner par une macro qui
serait dans Cinq.
Avons nous un problème de sémantique ? Quand je dis "feuille" c'est pour
les Worksheets, et là aucun mot de passe n'intervient ici, quand je dis
"fichier" ou "classeur" c'est pour les Workbooks, concernés eux par des
mots de passe.
S'il vous plaît ne vous fâchez pas contre moi si j'ai mal compris, mais
dites moi où, et comment faire ?
Cordialement
Mabouille



"MichDenis" %
Je t'ai déjà répondu à cette question le 5/3/2008 à 11.07 Heure du
Québec.

Dans les fichiers (de 1 à 4) source de tes liaisons, utilise
ceci pour protéger la feuille de chacun des classeurs. Évidemment
pour chacun des classeurs tu devras adapter le mot de passe!

Dans le ThisWorkbook de chaque classeur source, copie cette procédure.
Si ta feuille est protégée, déprotège là... la procédure qui suit s'en
chargera.
À chaque ouverture du classeur source, la protection de la feuille
s'appliquera mais cela n'empêchera pas d'ouvrir le fichier du chef ayant
une relation avec les fichiers sources, de mettre à jour les données
sans demander le mot de passe des feuilles.

'-----------------------------------
Private Sub Workbook_Open()

Dim Sh As Worksheet
For Each Sh In Worksheets
Sh.Protect "toto", True , True , True , True
Next
End Sub
'-----------------------------------




"Mabouille" message de news:

Bonjour,
Il y a 4 collaborateurs et 4 classeurs individuels "Un", "Deux",
"Trois",
"Quatre", protégés par les mot de passe "mot1", "mot2", "mot3", "mot4".
Chaque collaborateur a son classeur, et connaît donc le mot de passe
pour
l'ouvrir, mais pas les autres.
Chaque classeur ne comporte qu'une feuille "Feuil1". Les feuilles ne
sont
pas protégées.

Le Chef dispose d'un classeur "Cinq" sur le modèle des autres (ouverture
par
mot de passe "mot5", 1 seule feuille, non protégée).
Les classeurs Un à Quatre contiennent des données, le classeur Cinq
contient
des formules utilisant ces données. Forcément, c'est le Chef!

Mais quand le Chef ouvre Cinq pour lire les résutats figurant sur sa
feuille, la mise à jour des liaisons nécessite de taper successivement
les
mots de passe des 4 classeurs sources. Le Chef connaît tous les mots de
passe
mais ça le fatigue: pas bon!

Comment mettre dans son classeur Cinq une macro qui permette,
automatiquement à son ouverture, la mise à jour de Cinq sans avoir à
taper
les mots de passe des classeurs sources Un à Quatre ?

Je précise bien: il ne s'agit pas de protéger-déprotéger les feuilles,
qui
n'en ont pas besoin, mais bien d'ouvrir les liaisons avec les classeurs,
et
si possible sans ouvrir les classeurs eux-mêmes.
Un seul ordinateur pour tous, PC, Windows XP, Excel 2002. Tous les
classeurs
sont dans le même répertoire "Vision".

Merci de votre aide, que bénira le Chef, (et moi !)
Mabouille











isabelle
Le #5225741
bonjour Philippe,

=SI(B2="H";INDEX($H$1:$H$7;EQUIV(C2;$G$1:$G$7;0));INDEX($I$1:$I$7;EQUIV(C2;$G$1:$G$7;0)))

isabelle


Bonjour,
Il y a 4 collaborateurs et 4 classeurs individuels "Un", "Deux", "Trois",
"Quatre", protégés par les mot de passe "mot1", "mot2", "mot3", "mot4".
Chaque collaborateur a son classeur, et connaît donc le mot de passe pour
l'ouvrir, mais pas les autres.
Chaque classeur ne comporte qu'une feuille "Feuil1". Les feuilles ne sont
pas protégées.

Le Chef dispose d'un classeur "Cinq" sur le modèle des autres (ouverture par
mot de passe "mot5", 1 seule feuille, non protégée).
Les classeurs Un à Quatre contiennent des données, le classeur Cinq contient
des formules utilisant ces données. Forcément, c'est le Chef!

Mais quand le Chef ouvre Cinq pour lire les résutats figurant sur sa
feuille, la mise à jour des liaisons nécessite de taper successivement les
mots de passe des 4 classeurs sources. Le Chef connaît tous les mots de passe
mais ça le fatigue: pas bon!

Comment mettre dans son classeur Cinq une macro qui permette,
automatiquement à son ouverture, la mise à jour de Cinq sans avoir à taper
les mots de passe des classeurs sources Un à Quatre ?

Je précise bien: il ne s'agit pas de protéger-déprotéger les feuilles, qui
n'en ont pas besoin, mais bien d'ouvrir les liaisons avec les classeurs, et
si possible sans ouvrir les classeurs eux-mêmes.
Un seul ordinateur pour tous, PC, Windows XP, Excel 2002. Tous les classeurs
sont dans le même répertoire "Vision".

Merci de votre aide, que bénira le Chef, (et moi !)
Mabouille





Mabouille
Le #5225381
Bonjour Isabelle,
Je crains que tu ne te sois trompée de fil, je ne suis pas Philippe, celui
ci n'a donc pas du avoir ta solution, je te le signale pour lui mais je ne
sais pas quel est son fil.
Cordialement
Mabouille

"isabelle" a écrit dans le message de news:

bonjour Philippe,

=SI(B2="H";INDEX($H$1:$H$7;EQUIV(C2;$G$1:$G$7;0));INDEX($I$1:$I$7;EQUIV(C2;$G$1:$G$7;0)))

isabelle


Bonjour,
Il y a 4 collaborateurs et 4 classeurs individuels "Un", "Deux", "Trois",
"Quatre", protégés par les mot de passe "mot1", "mot2", "mot3", "mot4".
Chaque collaborateur a son classeur, et connaît donc le mot de passe pour
l'ouvrir, mais pas les autres.
Chaque classeur ne comporte qu'une feuille "Feuil1". Les feuilles ne sont
pas protégées.

Le Chef dispose d'un classeur "Cinq" sur le modèle des autres (ouverture
par mot de passe "mot5", 1 seule feuille, non protégée).
Les classeurs Un à Quatre contiennent des données, le classeur Cinq
contient des formules utilisant ces données. Forcément, c'est le Chef!

Mais quand le Chef ouvre Cinq pour lire les résutats figurant sur sa
feuille, la mise à jour des liaisons nécessite de taper successivement
les mots de passe des 4 classeurs sources. Le Chef connaît tous les mots
de passe mais ça le fatigue: pas bon!

Comment mettre dans son classeur Cinq une macro qui permette,
automatiquement à son ouverture, la mise à jour de Cinq sans avoir à
taper les mots de passe des classeurs sources Un à Quatre ?

Je précise bien: il ne s'agit pas de protéger-déprotéger les feuilles,
qui n'en ont pas besoin, mais bien d'ouvrir les liaisons avec les
classeurs, et si possible sans ouvrir les classeurs eux-mêmes.
Un seul ordinateur pour tous, PC, Windows XP, Excel 2002. Tous les
classeurs sont dans le même répertoire "Vision".

Merci de votre aide, que bénira le Chef, (et moi !)
Mabouille






isabelle
Le #5225131
merci Mabouille, c'est corrigé,

isabelle

Bonjour Isabelle,
Je crains que tu ne te sois trompée de fil, je ne suis pas Philippe, celui
ci n'a donc pas du avoir ta solution, je te le signale pour lui mais je ne
sais pas quel est son fil.
Cordialement
Mabouille

"isabelle" a écrit dans le message de news:

bonjour Philippe,

=SI(B2="H";INDEX($H$1:$H$7;EQUIV(C2;$G$1:$G$7;0));INDEX($I$1:$I$7;EQUIV(C2;$G$1:$G$7;0)))

isabelle


Bonjour,
Il y a 4 collaborateurs et 4 classeurs individuels "Un", "Deux", "Trois",
"Quatre", protégés par les mot de passe "mot1", "mot2", "mot3", "mot4".
Chaque collaborateur a son classeur, et connaît donc le mot de passe pour
l'ouvrir, mais pas les autres.
Chaque classeur ne comporte qu'une feuille "Feuil1". Les feuilles ne sont
pas protégées.

Le Chef dispose d'un classeur "Cinq" sur le modèle des autres (ouverture
par mot de passe "mot5", 1 seule feuille, non protégée).
Les classeurs Un à Quatre contiennent des données, le classeur Cinq
contient des formules utilisant ces données. Forcément, c'est le Chef!

Mais quand le Chef ouvre Cinq pour lire les résutats figurant sur sa
feuille, la mise à jour des liaisons nécessite de taper successivement
les mots de passe des 4 classeurs sources. Le Chef connaît tous les mots
de passe mais ça le fatigue: pas bon!

Comment mettre dans son classeur Cinq une macro qui permette,
automatiquement à son ouverture, la mise à jour de Cinq sans avoir à
taper les mots de passe des classeurs sources Un à Quatre ?

Je précise bien: il ne s'agit pas de protéger-déprotéger les feuilles,
qui n'en ont pas besoin, mais bien d'ouvrir les liaisons avec les
classeurs, et si possible sans ouvrir les classeurs eux-mêmes.
Un seul ordinateur pour tous, PC, Windows XP, Excel 2002. Tous les
classeurs sont dans le même répertoire "Vision".

Merci de votre aide, que bénira le Chef, (et moi !)
Mabouille









Publicité
Poster une réponse
Anonyme