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 : Sélectionner tout - Visualiser dans une fenêtre à part
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