Bonjour,

Je dois enregistrer un ensemble de ligne une par une dans un fichier xls. J'ai donc utilisé le code suivant dispo sur le net (merci à son auteur) :

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 InsertRecord(ByVal nom As String, ByVal prenom As String, ByVal age As Integer)
    Dim Cnx As ADODB.Connection
    Dim fichier As String, Feuille As String, strSQL As String
 
    fichier = "d:\arboserveur\recapitulatif_erreurs.xls" 'chemin complet du fichier fermé
    Feuille = "Feuil1" 'Onglet où les données doivent être insérées
 
 
    Set Cnx = New ADODB.Connection
 
    With Cnx
        .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 ( '" & nom & "', '" & prenom & "', " & age & ")"
 
 
    Cnx.Execute strSQL
 
    Cnx.Close
    Set Cnx = Nothing
End Sub
J'ai bien un fichier excel, dont voici une capture d'écran :
Colonne 1 en text
Colonne 2 en text
Colonne 3 en numérique



Lors ce que je tente d'enregistrer en appelant la fonction d'execution de la requête j'ai le message suivant :

"ODBC EXCEL : le nombre de valeurs de la requête doit coïncider avec le nombre de champs destination"

Je pense que mon erreur est toute bête, mais après beaucoup de recherches, j'arrive pas à trouver :/

Merci d'avance !