Ecrire une variable tableau dans un fichier fermé
Bonjour
Il y a déjà plein de post sur le sujet mais je n’arrive pas à comprendre mon erreur.
Je souhaite écrire (modifier) une ligne donnée dans un fichier sans l’ouvrir.
Voici mon code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| Sub exportDonneeDansCelluleClasseurFerme()
Dim Cn As ADODB.Connection
Dim Cd As ADODB.Command
Dim Rst As ADODB.Recordset
Dim fichier As String, NomFeuille As String, NomCol As String
Dim NumLigne As Integer, i As Integer
Dim tableau(60) As Variant
fichier = "F:\Classeur1.xlsm"
NomFeuille = "Feuil1"
NumLigne = 3
For i = 1 To 60
tableau(i) = i
Next i
Set Cn = New ADODB.Connection
' pour Xl 2007
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
For i = 1 To UBound(tableau())
NomCol = Split(Columns(i).Address, ":$")(1)
Cd.CommandText = "SELECT * FROM [" & NomFeuille & "$" & NomCol & NumLigne & ":" & NomCol & NumLigne & "]"
Set Rst = New ADODB.Recordset
Rst.Open Cd, , adOpenKeyset, adLockOptimistic
Rst(0).Value = tableau(i)
Rst.Update
Next i
Cn.Close
Set Cn = Nothing
Set Cd = Nothing
Set Rst = Nothing
End Sub |
Et je me retrouve avec ce message d’erreur :
« Cette table contient des cellules hors de la plage de cellules définie dans cette feuille de calcul. »
Merci de votre aide