Bonjour,

J'ai suivis ce tuto : http://silkyroad.developpez.com/VBA/ClasseursFermes/ IV-B. Ajouter un enregistrement

J'ai crée le fichier excel c:\Base.xls qui est vierge mais quand j'exécute la macro je me heurte à un message d'erreur :
Erreur d'éxecution '-2147217900 (80040e14)' :
[Microsoft] [Pilote ODBC Excel] Le nombre de valeurs de la requête doit coïncider avec le nombre de champs destination

il me met en jaune le Cn.Execute strSQL

Voila la macro que j'essaie d'utiliser :
Code vb : 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
Sub ajoutEnregistrement()
     Dim Cn As ADODB.Connection
     Dim Fichier As String, Feuille As String, strSQL As String
     Dim LaDate As Date
     Dim PrixUnit As Integer
     Dim leNom As String, lePrenom As String
 
     Fichier = "C:\Base.xls"
     Feuille = "Feuil1"
 
     'Les données à insérer:
     LaDate = CDate("26/05/2006")
     leNom = "NomTest"
     lePrenom = "PrenomTest"
     PrixUnit = 40
 
     Set Cn = New ADODB.Connection
 
     With Cn
         .Provider = "MSDASQL"
         .ConnectionString = "Driver={Microsoft Excel Driver (*.xls)};" & _
             "DBQ=" & Fichier & "; ReadOnly=False;"
         .Open
     End With
 
     'Les données doivent être indiquées dans le même ordre que les champs dans la base de données.
     strSQL = "INSERT INTO [" & Feuille & "$] " _
         & "VALUES (#" & LaDate & "#, " & _
         "'" & leNom & "', " & _
         "'" & lePrenom & "', " & _
         PrixUnit & ")"
            MsgBox strSQL
     Cn.Execute strSQL
 
     Cn.Close
     Set Cn = Nothing
 End Sub

Avez vous quelques conseils à me donner pour faire marcher cette macro ? dois-je crée des champs dans le fichier Base.xls ? et si oui les quelles s'il vous plait ?

En vous remerciant.

Cordialement,