Bonjour,

J'ai un soucis,
Je souhaite pouvoir modifier des données dans ma base "excel"(version 2000 grâce à la macro suivante:

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
Sub modifEnregistrement(SqlStr As String, ParamArray PrmLst() As Variant)
Dim Conn As Connection, Rst As New ADODB.Recordset
Dim B As Integer, A As Integer, rg As Range, Fichier As String
 
Fichier = "" & ThisWorkbook.Path & "\Base\Base.xls"
 
Set Conn = New ADODB.Connection
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Fichier & ";" & _
"Extended Properties=""Excel 8.0;HDR=No;"""
 
'Fusion entre la chaîne et les paramètres
x = SqlStr
For i = 0 To UBound(PrmLst)
    x = Replace(x, "%" & (i + 1) & "%", "" & PrmLst(i))
Next i
 
Rst.Open x, Conn, _
adOpenKeyset, adLockOptimistic
 
Rst.Update
Rst.Close: Conn.Close
Set Rst = Nothing
Set Conn = Nothing
 
End Sub
mais quand je fais un test avec :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
modifEnregistrement "DELETE FROM [SALARIE$] WHERE id_salarie=%1%", 1
ça ne fonctionne pas.

J'obtiens le message d'erreur suivant: "erreur d'éxécution -2147217904(80040e10) Aucune valeur donnée pour un ou plusieurs des paramètres requis"

Je ne comprends pas.

Pouvez-vous m'aider??
Merci d'avance.