j'utilise la fonction ci-dessous pour recueillir une valeur de cellule
dans un classeur fermé.
Le problème est qu'elle ne fonctionne pas sur un classeur protégé par
mot de passe pour la modification
quelle est la syntaxe pour la chaine de connexion strConn quand le
classeur ou la feuille d'un classeur est protégée par un mot de passe ?
Quelqu'un a déjà fait l'essai ou a une autre solution ?
Merci
Olivier
Function DataClasseurFerme(Classeur$, feuille As String, Cell As String)
'renvoie la valeur de la cellule Cell de la feuille Feuille
'du classeur fermé Classeur
Dim RcdSet As Object
Dim strConn As String
Dim strCmd As String
Dim dummyBase As Range
'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(Cell).Resize(2)
'prépare les commandes ADO et SQL
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" &
Classeur & ";" & "Extended Properties=""Excel 8.0;HDR=No;IMEX=1;"";"
strCmd = "SELECT * FROM [" & feuille & "$" & dummyBase.Address(0, 0) & "]"
'crée l'objet Recordset
Set RcdSet = CreateObject("ADODB.Recordset")
'va chercher l'info
RcdSet.Open strCmd, strConn, 0, 1, 1 'adOpenForwardOnly, adLockReadOnly,
adCmdText
'et la renvoie
DataClasseurFerme = Application.Clean(RcdSet(0))
'nettoyage
Set RcdSet = Nothing
End Function
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
ali
C'est impossible d'aprés l'excellente page qui suit:http//silkroad.developpez.com/ dans le lien lire et écrire dans un classeur fermé. Dans mon entreprise j'ai plusieurs classeurs contenant des procédures d'écriture-lecture dans des classeurs fermés utilisé par plus de 100 personnes chaque Jour. C'est donc un sujet qui m'interesse beaucoup A+ "olivier NICOD" a écrit dans le message de news:45787473$0$5083$
Bonsoir,
j'utilise la fonction ci-dessous pour recueillir une valeur de cellule dans un classeur fermé. Le problème est qu'elle ne fonctionne pas sur un classeur protégé par mot de passe pour la modification quelle est la syntaxe pour la chaine de connexion strConn quand le classeur ou la feuille d'un classeur est protégée par un mot de passe ? Quelqu'un a déjà fait l'essai ou a une autre solution ?
Merci Olivier
Function DataClasseurFerme(Classeur$, feuille As String, Cell As String) 'renvoie la valeur de la cellule Cell de la feuille Feuille 'du classeur fermé Classeur Dim RcdSet As Object Dim strConn As String Dim strCmd As String Dim dummyBase As Range '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(Cell).Resize(2) 'prépare les commandes ADO et SQL strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & Classeur & ";" & "Extended Properties=""Excel 8.0;HDR=No;IMEX=1;"";" strCmd = "SELECT * FROM [" & feuille & "$" & dummyBase.Address(0, 0) & "]" 'crée l'objet Recordset Set RcdSet = CreateObject("ADODB.Recordset") 'va chercher l'info RcdSet.Open strCmd, strConn, 0, 1, 1 'adOpenForwardOnly, adLockReadOnly, adCmdText 'et la renvoie DataClasseurFerme = Application.Clean(RcdSet(0)) 'nettoyage Set RcdSet = Nothing End Function
C'est impossible d'aprés l'excellente page qui
suit:http//silkroad.developpez.com/ dans le lien lire et écrire dans un
classeur fermé.
Dans mon entreprise j'ai plusieurs classeurs contenant des procédures
d'écriture-lecture dans des classeurs fermés utilisé par plus de 100
personnes chaque Jour.
C'est donc un sujet qui m'interesse beaucoup
A+
"olivier NICOD" <olivier.nicod@wanadoo.fr> a écrit dans le message de
news:45787473$0$5083$ba4acef3@news.orange.fr...
Bonsoir,
j'utilise la fonction ci-dessous pour recueillir une valeur de cellule
dans un classeur fermé.
Le problème est qu'elle ne fonctionne pas sur un classeur protégé par
mot de passe pour la modification
quelle est la syntaxe pour la chaine de connexion strConn quand le
classeur ou la feuille d'un classeur est protégée par un mot de passe ?
Quelqu'un a déjà fait l'essai ou a une autre solution ?
Merci
Olivier
Function DataClasseurFerme(Classeur$, feuille As String, Cell As String)
'renvoie la valeur de la cellule Cell de la feuille Feuille
'du classeur fermé Classeur
Dim RcdSet As Object
Dim strConn As String
Dim strCmd As String
Dim dummyBase As Range
'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(Cell).Resize(2)
'prépare les commandes ADO et SQL
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" &
Classeur & ";" & "Extended Properties=""Excel 8.0;HDR=No;IMEX=1;"";"
strCmd = "SELECT * FROM [" & feuille & "$" & dummyBase.Address(0, 0) & "]"
'crée l'objet Recordset
Set RcdSet = CreateObject("ADODB.Recordset")
'va chercher l'info
RcdSet.Open strCmd, strConn, 0, 1, 1 'adOpenForwardOnly, adLockReadOnly,
adCmdText
'et la renvoie
DataClasseurFerme = Application.Clean(RcdSet(0))
'nettoyage
Set RcdSet = Nothing
End Function
C'est impossible d'aprés l'excellente page qui suit:http//silkroad.developpez.com/ dans le lien lire et écrire dans un classeur fermé. Dans mon entreprise j'ai plusieurs classeurs contenant des procédures d'écriture-lecture dans des classeurs fermés utilisé par plus de 100 personnes chaque Jour. C'est donc un sujet qui m'interesse beaucoup A+ "olivier NICOD" a écrit dans le message de news:45787473$0$5083$
Bonsoir,
j'utilise la fonction ci-dessous pour recueillir une valeur de cellule dans un classeur fermé. Le problème est qu'elle ne fonctionne pas sur un classeur protégé par mot de passe pour la modification quelle est la syntaxe pour la chaine de connexion strConn quand le classeur ou la feuille d'un classeur est protégée par un mot de passe ? Quelqu'un a déjà fait l'essai ou a une autre solution ?
Merci Olivier
Function DataClasseurFerme(Classeur$, feuille As String, Cell As String) 'renvoie la valeur de la cellule Cell de la feuille Feuille 'du classeur fermé Classeur Dim RcdSet As Object Dim strConn As String Dim strCmd As String Dim dummyBase As Range '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(Cell).Resize(2) 'prépare les commandes ADO et SQL strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & Classeur & ";" & "Extended Properties=""Excel 8.0;HDR=No;IMEX=1;"";" strCmd = "SELECT * FROM [" & feuille & "$" & dummyBase.Address(0, 0) & "]" 'crée l'objet Recordset Set RcdSet = CreateObject("ADODB.Recordset") 'va chercher l'info RcdSet.Open strCmd, strConn, 0, 1, 1 'adOpenForwardOnly, adLockReadOnly, adCmdText 'et la renvoie DataClasseurFerme = Application.Clean(RcdSet(0)) 'nettoyage Set RcdSet = Nothing End Function