Ecrire dans classeur Excel 2007 avec ADO

Begin_09 Messages postés 5 Date d'inscription mardi 5 juin 2007 Statut Membre Dernière intervention 18 septembre 2007 - 17 sept. 2007 à 21:09
Begin_09 Messages postés 5 Date d'inscription mardi 5 juin 2007 Statut Membre Dernière intervention 18 septembre 2007 - 18 sept. 2007 à 00:54
Bonjour à tous,

J'avais une petite application qui marchait bien et j'essaye de la transformer pour qu'elle fonctionne à nouveau sous Excel 2007. Mais, il m'est impossible d'écrire ailleurs que dans la cellule B1 (alors que d'après moi, ce code devrait écrire dans la cellule B30 de la feuille Config).

Voici mon code :

Dim Cn As ADODB.Connection
Dim Cd As ADODB.Command
Dim Rst As ADODB.Recordset
Dim Fichier As String
Fichier = "c:\toto.xlsx"


Set Cn = New ADODB.Connection
Cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & _
    "Data Source=" & Fichier & ";" & _
    "Extended Properties=""Excel 12.0;HDR=NO;"""


Set Cd = New ADODB.Command
Cd.ActiveConnection = Cn
Cd.CommandText = "SELECT * FROM [Config$B30:B30]"
Set Rst = New ADODB.Recordset
Rst.Open Cd, , adOpenKeyset, adLockOptimistic
Rst(0).Value = "Donnée test"
Rst.Update


Cn.Close
Set Cn = Nothing
Set Cd = Nothing
Set Rst = Nothing

Merci d'avance aux spécialistes pour votre aide !

Nathalie

2 réponses

cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
18 sept. 2007 à 00:16
Je ne comprends pas vraiment ta façon de procéder, mais pourrais-tu expliquer d'où proviennent ces données (variable Fichier) et où tu veux les copier ?

Fichier est un fichier Excel ? ou Txt ? ou Access ?

MPi
0
Begin_09 Messages postés 5 Date d'inscription mardi 5 juin 2007 Statut Membre Dernière intervention 18 septembre 2007
18 sept. 2007 à 00:54
Quelques éclaircissements :


J'ai un fichier xls, format excel 2007 : toto.xlsx


J'accède à ce fichier fermé avec la méthode ADO. Je lui écris dans sa cellule B30 la valeur "Donnée test".


Cette méthode fonctionnait sous Excel 2003, mais sous Excel 2007, malgré les modifications apportées pour le " Provider", la donnée s'écrit dans la cellule B1. En passant, je ne peux plus lire une seule cellule non plus, mais uniquement une plage dans un fichier fermé...

Nathalie
0
Rejoignez-nous