Bonjour je souhaiterais me connecter discretement à une feuille protégée et lui injecter sont mot de passe ;ecrire dedans puis remettre la protection .
Le tout en fichier fermé ....
( Je ne tient pas ouvrir le classeur)
Pour la connexion en fichier fermé ça va ; par contre injecter le mot de passe ...
Je précise que c'est bien la feuille qui est protégée et non pas le classeur
(il semblerait que l'on ne puisse pas se connecter à un classeur fermé qui est protégé par un mot de passe ; ce que je ne sais pas c'est si on peut se connecter à un classeur fermé dont les feuilles sont protégées par mot de passe .(Je sais la nuance est mince)
Voici grosso modo ce je tente de faire .
Le tout en fichier fermé ....
( Je ne tient pas ouvrir le classeur)
Pour la connexion en fichier fermé ça va ; par contre injecter le mot de passe ...
Je précise que c'est bien la feuille qui est protégée et non pas le classeur
(il semblerait que l'on ne puisse pas se connecter à un classeur fermé qui est protégé par un mot de passe ; ce que je ne sais pas c'est si on peut se connecter à un classeur fermé dont les feuilles sont protégées par mot de passe .(Je sais la nuance est mince)
Voici grosso modo ce je tente de faire .
Code:
Sub exportDonneeDansCelluleClasseurFerme()
Dim Cn As ADODB.Connection
Dim Cd As ADODB.Command
Dim Rst As ADODB.Recordset
Dim Fichier As String
Dim mabase As Workbooks
Set mabase = Workbooks("Base.xls").Worksheets("Sheet1")
Open "C:\Base.xls" For Input As #1
mabase.Unprotect Password:="NASA"
Fichier = "C:\Base.xls"
Set Cn = New ADODB.Connection
Cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Fichier & ";" & _
"Extended Properties=""Excel 8.0;HDR=No;"";" 'ouvre la connnection sur le fichier
Set Cd = New ADODB.Command
Cd.ActiveConnection = Cn
Cd.CommandText = "SELECT * FROM [Sheet1$G30:G30]"
Set Rst = New ADODB.Recordset
Rst.Open Cd, , adOpenKeyset, adLockOptimistic
Rst(0).Value = "Donnée test" 'ecrit Donnée Test dans la case G30
Rst.Update
Cn.Close
Close #1
Set Cn = Nothing
Set Cd = Nothing
Set Rst = Nothing
Set mabase = Nothing
End Sub