comment accéder à une cellule liée dans un fichier protégé fermé
4 réponses
Eric Brue
Bonjour
Je tourne en rond dans l'historique du newsgroup...
Comment indiquer le mot de passe d'accès au fichier Oph03.xls dans la
procédure qui suit.
Cette procédure se situant dans une boucle, la fenêtre du mot de passe
s'ouvre environ 200 fois... je dois donc l'indiquer dans le code, mais
comment ?
ou plus simplement, est il possible dans la formule ou par VBA d'indiquer le
password d'une fichier lié fermé ou est-on OBLIGE de l'ouvrir?
La chose devrait être possible puisqu'il suffit de l'indiquer dans la boite
de dialogue qui réclame le password pour accéder aux données sans ouvrir le
fichier...
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Herdet
Bonsoir Eric, Si c'est le classeur fermé qui est protégé, ce sera assez difficile de passer à travers de la protection. Par contre, si le classeur n'est pas protégé et que les feuilles sont visibles (protégées ou non) tu peux utiliser les procédures suivantes pour lire une valeur dans le classeur fermé. Avec d'autres fonction du même accabit, on peut aussi lire des plages de cellules, des tableaux nommés ou des feuilles entières de classeurs fermés. Voir mon classeur rd-lireferme sur http://www.excelabo.net/moteurs/download2.php Cordialement Robert Dezan ---------------------------------------------------------------------------- ---------------- Sub Recup_Cellule_Valeur() ' renvoie la valeur d'une cellule donnée dans un classeur fermé (NON PROTEGE) ' la feuille de recherche 'Source_feuille' peut être protégée ou non mais NON MASQUEE Source_NomComplet = "U:BlocArchivesOph03.xls" Source_feuille = "Octobre 5" i = 10 ' peut être une variable dans une boucle j = 3 ' peut être une variable dans une boucle Source_plage = Cells(i, j).Address ' ?? ==> "C" & s1 & " & " & Chr$(34) & " " & Chr$(34) MsgBox GetValueWithADO(Source_NomComplet, Source_feuille, Source_plage) End Sub
Function GetValueWithADO(ByVal Classeur$, ByVal Feuille$, ByVal CellAdresse$) ' renvoie la valeur d'une cellule donnée dans un classeur fermé (non protégé) ' la feuille de recherche peut être protégée mais NON MASQUEE
Dim rcdSet Dim strConn As String Dim strCmd As String Dim dummyBase As Range
Set rcdSet = CreateObject("ADODB.Recordset")
'prépare une "base de données" bidon pour la clause SELECT '(une entête fictive et une ligne de données) Set dummyBase = Range(CellAdresse).Resize(2)
'et la renvoie GetValueWithADO = Application.Clean(rcdSet.GetString(NumRows:=1))
End Function ---------------------------------------------------------------------------- -----------------------
"Eric Brue" a écrit dans le message de news:
Bonjour Je tourne en rond dans l'historique du newsgroup... Comment indiquer le mot de passe d'accès au fichier Oph03.xls dans la procédure qui suit. Cette procédure se situant dans une boucle, la fenêtre du mot de passe s'ouvre environ 200 fois... je dois donc l'indiquer dans le code, mais comment ?
ou plus simplement, est il possible dans la formule ou par VBA d'indiquer le
password d'une fichier lié fermé ou est-on OBLIGE de l'ouvrir? La chose devrait être possible puisqu'il suffit de l'indiquer dans la boite
de dialogue qui réclame le password pour accéder aux données sans ouvrir le
fichier...
Merci d'avance
-- Eric Brue http://e.brue.free.fr
Bonsoir Eric,
Si c'est le classeur fermé qui est protégé, ce sera assez difficile de
passer à travers de la protection.
Par contre, si le classeur n'est pas protégé et que les feuilles sont
visibles (protégées ou non) tu peux utiliser les procédures suivantes pour
lire une valeur dans le classeur fermé.
Avec d'autres fonction du même accabit, on peut aussi lire des plages de
cellules, des tableaux nommés ou des feuilles entières de classeurs fermés.
Voir mon classeur rd-lireferme sur
http://www.excelabo.net/moteurs/download2.php
Cordialement
Robert Dezan
----------------------------------------------------------------------------
----------------
Sub Recup_Cellule_Valeur()
' renvoie la valeur d'une cellule donnée dans un classeur fermé (NON
PROTEGE)
' la feuille de recherche 'Source_feuille' peut être protégée ou non mais
NON MASQUEE
Source_NomComplet = "U:BlocArchivesOph03.xls"
Source_feuille = "Octobre 5"
i = 10 ' peut être une variable dans une boucle
j = 3 ' peut être une variable dans une boucle
Source_plage = Cells(i, j).Address ' ?? ==> "C" & s1 & " & " &
Chr$(34) & " " & Chr$(34)
MsgBox GetValueWithADO(Source_NomComplet, Source_feuille, Source_plage)
End Sub
Function GetValueWithADO(ByVal Classeur$, ByVal Feuille$, ByVal
CellAdresse$)
' renvoie la valeur d'une cellule donnée dans un classeur fermé (non
protégé)
' la feuille de recherche peut être protégée mais NON MASQUEE
Dim rcdSet
Dim strConn As String
Dim strCmd As String
Dim dummyBase As Range
Set rcdSet = CreateObject("ADODB.Recordset")
'prépare une "base de données" bidon pour la clause SELECT
'(une entête fictive et une ligne de données)
Set dummyBase = Range(CellAdresse).Resize(2)
'et la renvoie
GetValueWithADO = Application.Clean(rcdSet.GetString(NumRows:=1))
End Function
----------------------------------------------------------------------------
-----------------------
"Eric Brue" <eric.brue@alussinan.org> a écrit dans le message de news:
O1JjuZPrDHA.3320@tk2msftngp13.phx.gbl...
Bonjour
Je tourne en rond dans l'historique du newsgroup...
Comment indiquer le mot de passe d'accès au fichier Oph03.xls dans la
procédure qui suit.
Cette procédure se situant dans une boucle, la fenêtre du mot de passe
s'ouvre environ 200 fois... je dois donc l'indiquer dans le code, mais
comment ?
Bonsoir Eric, Si c'est le classeur fermé qui est protégé, ce sera assez difficile de passer à travers de la protection. Par contre, si le classeur n'est pas protégé et que les feuilles sont visibles (protégées ou non) tu peux utiliser les procédures suivantes pour lire une valeur dans le classeur fermé. Avec d'autres fonction du même accabit, on peut aussi lire des plages de cellules, des tableaux nommés ou des feuilles entières de classeurs fermés. Voir mon classeur rd-lireferme sur http://www.excelabo.net/moteurs/download2.php Cordialement Robert Dezan ---------------------------------------------------------------------------- ---------------- Sub Recup_Cellule_Valeur() ' renvoie la valeur d'une cellule donnée dans un classeur fermé (NON PROTEGE) ' la feuille de recherche 'Source_feuille' peut être protégée ou non mais NON MASQUEE Source_NomComplet = "U:BlocArchivesOph03.xls" Source_feuille = "Octobre 5" i = 10 ' peut être une variable dans une boucle j = 3 ' peut être une variable dans une boucle Source_plage = Cells(i, j).Address ' ?? ==> "C" & s1 & " & " & Chr$(34) & " " & Chr$(34) MsgBox GetValueWithADO(Source_NomComplet, Source_feuille, Source_plage) End Sub
Function GetValueWithADO(ByVal Classeur$, ByVal Feuille$, ByVal CellAdresse$) ' renvoie la valeur d'une cellule donnée dans un classeur fermé (non protégé) ' la feuille de recherche peut être protégée mais NON MASQUEE
Dim rcdSet Dim strConn As String Dim strCmd As String Dim dummyBase As Range
Set rcdSet = CreateObject("ADODB.Recordset")
'prépare une "base de données" bidon pour la clause SELECT '(une entête fictive et une ligne de données) Set dummyBase = Range(CellAdresse).Resize(2)
'et la renvoie GetValueWithADO = Application.Clean(rcdSet.GetString(NumRows:=1))
End Function ---------------------------------------------------------------------------- -----------------------
"Eric Brue" a écrit dans le message de news:
Bonjour Je tourne en rond dans l'historique du newsgroup... Comment indiquer le mot de passe d'accès au fichier Oph03.xls dans la procédure qui suit. Cette procédure se situant dans une boucle, la fenêtre du mot de passe s'ouvre environ 200 fois... je dois donc l'indiquer dans le code, mais comment ?
ou plus simplement, est il possible dans la formule ou par VBA d'indiquer le
password d'une fichier lié fermé ou est-on OBLIGE de l'ouvrir? La chose devrait être possible puisqu'il suffit de l'indiquer dans la boite
de dialogue qui réclame le password pour accéder aux données sans ouvrir le
fichier...
Merci d'avance
-- Eric Brue http://e.brue.free.fr
Frédéric Sigonneau
Bonsoir,
Je crains bien en effet qu'il ne soit pas possible d'éviter d'ouvrir le classeur source dans ce cas. En effet, s'il est bien possible de fournir le mot de passe sans ouvrir le fichier quand on force un calcul de la cellule cible, comme tu le signales, la valeur source n'est pas récupérée pour autant (en tout cas, chez moi, je récupère une valeur d'erreur #N/A). Ceci dit, ouvrir le classeur source, mettre à jour les données et le refermer peut se faire de façon transparente, et le mot de passe peut être saisi avec un SendKeys (pas élégant mais ça marche..). A adapter dans ton contexte :
Sub test() Dim Mdp$ Mdp = "zaza" Application.ScreenUpdating = False SendKeys Mdp & "~" Workbooks.Open "U:BlocArchivesOph03.xls" ThisWorkbook.Sheets(1).Range("A1").Formula = _ "='[Oph03.xls]Octobre 5'!A1" Workbooks("Oph03.xls").Close False End Sub
FS -- Frédéric Sigonneau [MVP Excel - né un sans-culottide] Gestions de temps, VBA pour Excel : http://perso.wanadoo.fr/frederic.sigonneau Si votre question sur Excel est urgente, évitez ma bal !
Bonjour Je tourne en rond dans l'historique du newsgroup... Comment indiquer le mot de passe d'accès au fichier Oph03.xls dans la procédure qui suit. Cette procédure se situant dans une boucle, la fenêtre du mot de passe s'ouvre environ 200 fois... je dois donc l'indiquer dans le code, mais comment ?
ou plus simplement, est il possible dans la formule ou par VBA d'indiquer le password d'une fichier lié fermé ou est-on OBLIGE de l'ouvrir? La chose devrait être possible puisqu'il suffit de l'indiquer dans la boite de dialogue qui réclame le password pour accéder aux données sans ouvrir le fichier...
Merci d'avance
-- Eric Brue http://e.brue.free.fr
Bonsoir,
Je crains bien en effet qu'il ne soit pas possible d'éviter d'ouvrir le classeur
source dans ce cas. En effet, s'il est bien possible de fournir le mot de passe
sans ouvrir le fichier quand on force un calcul de la cellule cible, comme tu le
signales, la valeur source n'est pas récupérée pour autant (en tout cas, chez
moi, je récupère une valeur d'erreur #N/A).
Ceci dit, ouvrir le classeur source, mettre à jour les données et le refermer
peut se faire de façon transparente, et le mot de passe peut être saisi avec un
SendKeys (pas élégant mais ça marche..).
A adapter dans ton contexte :
Sub test()
Dim Mdp$
Mdp = "zaza"
Application.ScreenUpdating = False
SendKeys Mdp & "~"
Workbooks.Open "U:BlocArchivesOph03.xls"
ThisWorkbook.Sheets(1).Range("A1").Formula = _
"='[Oph03.xls]Octobre 5'!A1"
Workbooks("Oph03.xls").Close False
End Sub
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
Bonjour
Je tourne en rond dans l'historique du newsgroup...
Comment indiquer le mot de passe d'accès au fichier Oph03.xls dans la
procédure qui suit.
Cette procédure se situant dans une boucle, la fenêtre du mot de passe
s'ouvre environ 200 fois... je dois donc l'indiquer dans le code, mais
comment ?
ou plus simplement, est il possible dans la formule ou par VBA d'indiquer le
password d'une fichier lié fermé ou est-on OBLIGE de l'ouvrir?
La chose devrait être possible puisqu'il suffit de l'indiquer dans la boite
de dialogue qui réclame le password pour accéder aux données sans ouvrir le
fichier...
Je crains bien en effet qu'il ne soit pas possible d'éviter d'ouvrir le classeur source dans ce cas. En effet, s'il est bien possible de fournir le mot de passe sans ouvrir le fichier quand on force un calcul de la cellule cible, comme tu le signales, la valeur source n'est pas récupérée pour autant (en tout cas, chez moi, je récupère une valeur d'erreur #N/A). Ceci dit, ouvrir le classeur source, mettre à jour les données et le refermer peut se faire de façon transparente, et le mot de passe peut être saisi avec un SendKeys (pas élégant mais ça marche..). A adapter dans ton contexte :
Sub test() Dim Mdp$ Mdp = "zaza" Application.ScreenUpdating = False SendKeys Mdp & "~" Workbooks.Open "U:BlocArchivesOph03.xls" ThisWorkbook.Sheets(1).Range("A1").Formula = _ "='[Oph03.xls]Octobre 5'!A1" Workbooks("Oph03.xls").Close False End Sub
FS -- Frédéric Sigonneau [MVP Excel - né un sans-culottide] Gestions de temps, VBA pour Excel : http://perso.wanadoo.fr/frederic.sigonneau Si votre question sur Excel est urgente, évitez ma bal !
Bonjour Je tourne en rond dans l'historique du newsgroup... Comment indiquer le mot de passe d'accès au fichier Oph03.xls dans la procédure qui suit. Cette procédure se situant dans une boucle, la fenêtre du mot de passe s'ouvre environ 200 fois... je dois donc l'indiquer dans le code, mais comment ?
ou plus simplement, est il possible dans la formule ou par VBA d'indiquer le password d'une fichier lié fermé ou est-on OBLIGE de l'ouvrir? La chose devrait être possible puisqu'il suffit de l'indiquer dans la boite de dialogue qui réclame le password pour accéder aux données sans ouvrir le fichier...
Merci d'avance
-- Eric Brue http://e.brue.free.fr
Eric Brue
Merci beaucoup Malheureusement, c'est bien le classeur fermé qui est protégé. En fait il s'agit de récupérer les données d'une feuille dans 8 fichiers protégés par mot de passe. Je suis donc dans l'obligation de les ouvrir par VBA chacun les uns après les autres mais encore fallait-il le savoir... Merci encore Eric
--
Eric BRÜE http://e.brue.free.fr "Herdet" a écrit dans le message de news:
Bonsoir Eric, Si c'est le classeur fermé qui est protégé, ce sera assez difficile de passer à travers de la protection. Par contre, si le classeur n'est pas protégé et que les feuilles sont visibles (protégées ou non) tu peux utiliser les procédures suivantes pour lire une valeur dans le classeur fermé. Avec d'autres fonction du même accabit, on peut aussi lire des plages de cellules, des tableaux nommés ou des feuilles entières de classeurs fermés.
Voir mon classeur rd-lireferme sur http://www.excelabo.net/moteurs/download2.php Cordialement Robert Dezan -------------------------------------------------------------------------- --
---------------- Sub Recup_Cellule_Valeur() ' renvoie la valeur d'une cellule donnée dans un classeur fermé (NON PROTEGE) ' la feuille de recherche 'Source_feuille' peut être protégée ou non mais
NON MASQUEE Source_NomComplet = "U:BlocArchivesOph03.xls" Source_feuille = "Octobre 5" i = 10 ' peut être une variable dans une boucle j = 3 ' peut être une variable dans une boucle Source_plage = Cells(i, j).Address ' ?? ==> "C" & s1 & " & " & Chr$(34) & " " & Chr$(34) MsgBox GetValueWithADO(Source_NomComplet, Source_feuille, Source_plage)
End Sub
Function GetValueWithADO(ByVal Classeur$, ByVal Feuille$, ByVal CellAdresse$) ' renvoie la valeur d'une cellule donnée dans un classeur fermé (non protégé) ' la feuille de recherche peut être protégée mais NON MASQUEE
Dim rcdSet Dim strConn As String Dim strCmd As String Dim dummyBase As Range
Set rcdSet = CreateObject("ADODB.Recordset")
'prépare une "base de données" bidon pour la clause SELECT '(une entête fictive et une ligne de données) Set dummyBase = Range(CellAdresse).Resize(2)
'et la renvoie GetValueWithADO = Application.Clean(rcdSet.GetString(NumRows:=1))
End Function -------------------------------------------------------------------------- --
Merci beaucoup
Malheureusement, c'est bien le classeur fermé qui est protégé. En fait il
s'agit de récupérer les données d'une feuille dans 8 fichiers protégés par
mot de passe.
Je suis donc dans l'obligation de les ouvrir par VBA chacun les uns après
les autres mais encore fallait-il le savoir...
Merci encore
Eric
--
Eric BRÜE
http://e.brue.free.fr
"Herdet" <rdezan@noos.fr> a écrit dans le message de
news:uPNG3rVrDHA.2600@TK2MSFTNGP09.phx.gbl...
Bonsoir Eric,
Si c'est le classeur fermé qui est protégé, ce sera assez difficile de
passer à travers de la protection.
Par contre, si le classeur n'est pas protégé et que les feuilles sont
visibles (protégées ou non) tu peux utiliser les procédures suivantes pour
lire une valeur dans le classeur fermé.
Avec d'autres fonction du même accabit, on peut aussi lire des plages de
cellules, des tableaux nommés ou des feuilles entières de classeurs
fermés.
Voir mon classeur rd-lireferme sur
http://www.excelabo.net/moteurs/download2.php
Cordialement
Robert Dezan
--------------------------------------------------------------------------
--
----------------
Sub Recup_Cellule_Valeur()
' renvoie la valeur d'une cellule donnée dans un classeur fermé (NON
PROTEGE)
' la feuille de recherche 'Source_feuille' peut être protégée ou non
mais
NON MASQUEE
Source_NomComplet = "U:BlocArchivesOph03.xls"
Source_feuille = "Octobre 5"
i = 10 ' peut être une variable dans une boucle
j = 3 ' peut être une variable dans une boucle
Source_plage = Cells(i, j).Address ' ?? ==> "C" & s1 & " & " &
Chr$(34) & " " & Chr$(34)
MsgBox GetValueWithADO(Source_NomComplet, Source_feuille,
Source_plage)
End Sub
Function GetValueWithADO(ByVal Classeur$, ByVal Feuille$, ByVal
CellAdresse$)
' renvoie la valeur d'une cellule donnée dans un classeur fermé (non
protégé)
' la feuille de recherche peut être protégée mais NON MASQUEE
Dim rcdSet
Dim strConn As String
Dim strCmd As String
Dim dummyBase As Range
Set rcdSet = CreateObject("ADODB.Recordset")
'prépare une "base de données" bidon pour la clause SELECT
'(une entête fictive et une ligne de données)
Set dummyBase = Range(CellAdresse).Resize(2)
Merci beaucoup Malheureusement, c'est bien le classeur fermé qui est protégé. En fait il s'agit de récupérer les données d'une feuille dans 8 fichiers protégés par mot de passe. Je suis donc dans l'obligation de les ouvrir par VBA chacun les uns après les autres mais encore fallait-il le savoir... Merci encore Eric
--
Eric BRÜE http://e.brue.free.fr "Herdet" a écrit dans le message de news:
Bonsoir Eric, Si c'est le classeur fermé qui est protégé, ce sera assez difficile de passer à travers de la protection. Par contre, si le classeur n'est pas protégé et que les feuilles sont visibles (protégées ou non) tu peux utiliser les procédures suivantes pour lire une valeur dans le classeur fermé. Avec d'autres fonction du même accabit, on peut aussi lire des plages de cellules, des tableaux nommés ou des feuilles entières de classeurs fermés.
Voir mon classeur rd-lireferme sur http://www.excelabo.net/moteurs/download2.php Cordialement Robert Dezan -------------------------------------------------------------------------- --
---------------- Sub Recup_Cellule_Valeur() ' renvoie la valeur d'une cellule donnée dans un classeur fermé (NON PROTEGE) ' la feuille de recherche 'Source_feuille' peut être protégée ou non mais
NON MASQUEE Source_NomComplet = "U:BlocArchivesOph03.xls" Source_feuille = "Octobre 5" i = 10 ' peut être une variable dans une boucle j = 3 ' peut être une variable dans une boucle Source_plage = Cells(i, j).Address ' ?? ==> "C" & s1 & " & " & Chr$(34) & " " & Chr$(34) MsgBox GetValueWithADO(Source_NomComplet, Source_feuille, Source_plage)
End Sub
Function GetValueWithADO(ByVal Classeur$, ByVal Feuille$, ByVal CellAdresse$) ' renvoie la valeur d'une cellule donnée dans un classeur fermé (non protégé) ' la feuille de recherche peut être protégée mais NON MASQUEE
Dim rcdSet Dim strConn As String Dim strCmd As String Dim dummyBase As Range
Set rcdSet = CreateObject("ADODB.Recordset")
'prépare une "base de données" bidon pour la clause SELECT '(une entête fictive et une ligne de données) Set dummyBase = Range(CellAdresse).Resize(2)
'et la renvoie GetValueWithADO = Application.Clean(rcdSet.GetString(NumRows:=1))
End Function -------------------------------------------------------------------------- --
Eric Brue
Merci c'est à peu près ce que j'avais fait mais avec un inputbox, le mot de passe étant le même pour tous les fichiers source à ouvrir. Je n'avais par contre pas pensé à Application.ScreenUpdating = False qui est nettement plus élégant que le stroboscope lié à l'ouverture des fichiers. Merci encore Eric
--
Eric BRÜE http://e.brue.free.fr "Frédéric Sigonneau" a écrit dans le message de news:
Bonsoir,
Je crains bien en effet qu'il ne soit pas possible d'éviter d'ouvrir le classeur
source dans ce cas. En effet, s'il est bien possible de fournir le mot de passe
sans ouvrir le fichier quand on force un calcul de la cellule cible, comme tu le
signales, la valeur source n'est pas récupérée pour autant (en tout cas, chez
moi, je récupère une valeur d'erreur #N/A). Ceci dit, ouvrir le classeur source, mettre à jour les données et le refermer
peut se faire de façon transparente, et le mot de passe peut être saisi avec un
SendKeys (pas élégant mais ça marche..). A adapter dans ton contexte :
Sub test() Dim Mdp$ Mdp = "zaza" Application.ScreenUpdating = False SendKeys Mdp & "~" Workbooks.Open "U:BlocArchivesOph03.xls" ThisWorkbook.Sheets(1).Range("A1").Formula = _ "='[Oph03.xls]Octobre 5'!A1" Workbooks("Oph03.xls").Close False End Sub
FS -- Frédéric Sigonneau [MVP Excel - né un sans-culottide] Gestions de temps, VBA pour Excel : http://perso.wanadoo.fr/frederic.sigonneau Si votre question sur Excel est urgente, évitez ma bal !
Merci
c'est à peu près ce que j'avais fait mais avec un inputbox, le mot de passe
étant le même pour tous les fichiers source à ouvrir.
Je n'avais par contre pas pensé à
Application.ScreenUpdating = False
qui est nettement plus élégant que le stroboscope lié à l'ouverture des
fichiers.
Merci encore
Eric
--
Eric BRÜE
http://e.brue.free.fr
"Frédéric Sigonneau" <frederic.sigonneau@wanadoo.fr> a écrit dans le message
de news:3FB94D08.E04FC9E1@wanadoo.fr...
Bonsoir,
Je crains bien en effet qu'il ne soit pas possible d'éviter d'ouvrir le
classeur
source dans ce cas. En effet, s'il est bien possible de fournir le mot de
passe
sans ouvrir le fichier quand on force un calcul de la cellule cible, comme
tu le
signales, la valeur source n'est pas récupérée pour autant (en tout cas,
chez
moi, je récupère une valeur d'erreur #N/A).
Ceci dit, ouvrir le classeur source, mettre à jour les données et le
refermer
peut se faire de façon transparente, et le mot de passe peut être saisi
avec un
SendKeys (pas élégant mais ça marche..).
A adapter dans ton contexte :
Sub test()
Dim Mdp$
Mdp = "zaza"
Application.ScreenUpdating = False
SendKeys Mdp & "~"
Workbooks.Open "U:BlocArchivesOph03.xls"
ThisWorkbook.Sheets(1).Range("A1").Formula = _
"='[Oph03.xls]Octobre 5'!A1"
Workbooks("Oph03.xls").Close False
End Sub
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
Merci c'est à peu près ce que j'avais fait mais avec un inputbox, le mot de passe étant le même pour tous les fichiers source à ouvrir. Je n'avais par contre pas pensé à Application.ScreenUpdating = False qui est nettement plus élégant que le stroboscope lié à l'ouverture des fichiers. Merci encore Eric
--
Eric BRÜE http://e.brue.free.fr "Frédéric Sigonneau" a écrit dans le message de news:
Bonsoir,
Je crains bien en effet qu'il ne soit pas possible d'éviter d'ouvrir le classeur
source dans ce cas. En effet, s'il est bien possible de fournir le mot de passe
sans ouvrir le fichier quand on force un calcul de la cellule cible, comme tu le
signales, la valeur source n'est pas récupérée pour autant (en tout cas, chez
moi, je récupère une valeur d'erreur #N/A). Ceci dit, ouvrir le classeur source, mettre à jour les données et le refermer
peut se faire de façon transparente, et le mot de passe peut être saisi avec un
SendKeys (pas élégant mais ça marche..). A adapter dans ton contexte :
Sub test() Dim Mdp$ Mdp = "zaza" Application.ScreenUpdating = False SendKeys Mdp & "~" Workbooks.Open "U:BlocArchivesOph03.xls" ThisWorkbook.Sheets(1).Range("A1").Formula = _ "='[Oph03.xls]Octobre 5'!A1" Workbooks("Oph03.xls").Close False End Sub
FS -- Frédéric Sigonneau [MVP Excel - né un sans-culottide] Gestions de temps, VBA pour Excel : http://perso.wanadoo.fr/frederic.sigonneau Si votre question sur Excel est urgente, évitez ma bal !