Bonjour après plusieurs heures de recherche et d'essais j'en appelle à votre bien vaillance
L'objectif:
1) Ecrire depuis un fichier ouvert xlsm vers un autre fichier xlsm ( pour pouvoir écrire sur une feuille invisible)
2) Ecrire depuis une feuille(listes) qui est invisible sur une autre feuille invisible(toto).
J'ai utilisé la méthode ADO qui fonctionne sur un fichier xls (test.xls) mais pas sur un fichier xlsm (essai.xlsm)
Est ce possible ?
Sub exportDonneeDansCelluleClasseurFerme()
Dim Cn As ADODB.Connection
Dim Cd As ADODB.Command
Dim Rst As ADODB.Recordset
Dim Fichier As String
'Fichier = "F:\adotest\essai.xlsm"
Fichier = "F:\adotest\test.xls"
Set Cn = New ADODB.Connection
''-------------------------------------------------------------
'' fonctionne avec fichier xls mais avec xslm message : la table externe n est pas dans le format attendu
''-------------------------------------------------------------
Cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Fichier & ";" & _
"Extended Properties=""Excel 8.0;HDR=No;"";"
' '-------------------------------------------------------------
''-------------------------------------------------------------
'' fonctionne pas pilote isam introuvable !
''-------------------------------------------------------------
'Cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
' "ConnectionString =Provider=Microsoft.ACE.OLEDB.12.0;" & _
' "Data Source=" & Fichier & ";" & _
' "Extended Properties=""Excel 12.0;HDR=YES;"";"
Set Cd = New ADODB.Command
Cd.ActiveConnection = Cn
Cd.CommandText = "SELECT * FROM [toto$G30:G30]"
Set Rst = New ADODB.Recordset
Rst.Open Cd, , adOpenKeyset, adLockOptimistic
'Rst(0).Value = "Donnée test"
Rst(0).Value = Worksheets("listes").Range("T15").Value
Rst.Update
Cn.Close
Set Cn = Nothing
Set Cd = Nothing
Set Rst = Nothing
End Sub
En vous remerciant par avance...Bonne journée !