Bonjour,
je rencontre un problème avec une requête sql insert to.
Le but de cette requête est d'ajouter une ligne dans un tableau d'un classeur fermé. Après avoir consulter le tutos sur les classeurs fermés, j'ai écrit mon code.

voici mon problème:
cas n°1:
Lorsque je fait ma requête comme ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
texte_SQL = "INSERT INTO [" & NomFeuille & "$] " & "VALUES ('" & numdemande & "', '" & date1 & "', '" & nom1 & "', '" & etbls & "', '" & lieu & "', " & "'" & domaine & "', '" & typeprob & "', '" & descrip & "', '', '', '', '')"
j'obtiens ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
INSERT INTO [Bd$] VALUES ('2011-0120', '19/09/2011', 'Sélection du nom...', 'Etablissement...', 'Pièces...', 'Catégorie...', 'Type de problème...', '', '', '', '', '')
ici la date est un string et la variable est déclaré en tant que string, les derniers champs sont vides. Au moment de l'éxécution ceci provoque une erreur.

cas n°2:
Maintenant lorsque je fais ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
    texte_SQL = "INSERT INTO [" & NomFeuille & "$] " & "VALUES ('" & numdemande & "', #" & date1 & "#, '" & nom1 & "', '" & etbls & "', '" & lieu & "', " & "'" & domaine & "', '" & typeprob & "', '" & descrip & "', '', '', '', '')"
j'obtiens ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
INSERT INTO [Bd$] VALUES ('2011-0120', #19/09/2011#, 'Sélection du nom...', 'Etablissement...', 'Pièces...', 'Catégorie...', 'Type de problème...', '', '', '', '', '')
ici la date est une Date et la variable est déclaré en tant que Date, les derniers champs sont vides. Au moment de l'éxécution ceci provoque toujours une erreur.

Pour les 2 cas l'erreur est la même :
"Erreur d'éxécution '-2147217913(8004e07)':
Type de données incompatible dans l'expression du critère."

J'ai mis les champs vides à la fin pour respecter le nombre de champ. Dans ma table j'ai 12 champs les quatres derniers seront remplis par une requête update par un autre utilisateur.

Est-ce que j'ai loupé quelques choses? Est-ce une erreur de syntaxe?

Merci de votre aide

EDIT: Il me semble utile de mettre le code complet :
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
41
42
43
44
45
46
47
48
49
50
Sub MAJ_Bd_2()
 Dim Cn As ADODB.Connection, Fichier As String, NomFeuille As String, texte_SQL As String
 Dim Rst As ADODB.Recordset
 Dim numdemande As String, date1 As Date, nom1 As String
 Dim etbls As String, lieu As String, domaine As String, typeprob As String
 Dim descrip As String
 
 
 
 
    'Définit le classeur fermé servant de base de données
    Fichier = "G:\Atelier\DEMANDE INTERVENTION\DATA Intervention.xlsm"
    'Nom de la feuille dans le classeur fermé
    NomFeuille = "Bd"
 
   Set Cn = New ADODB.Connection
 
 
 
    'Les données à insérer:
    With UserForm1
      numdemande = numserie
      'date1 = Format(.MonthView1, "dd/mm/yyyy")
      date1 = CDate(Format(.MonthView1, "dd/mm/yyyy"))
      nom1 = .ComboBox1.Value
      etbls = .Label3.Caption
      lieu = .Label4.Caption
      domaine = .ComboBox2.Value
      typeprob = .ComboBox3.Value
      descrip = Replace(.TextBox1.Value, "'", "''")
    End With
 
      '--- Connexion ---
    With Cn
        .Provider = "Microsoft.Jet.OLEDB.4.0"
        .ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" _
            & Fichier & ";Extended Properties=""Excel 12.0;HDR=YES;"""
        .Open
    End With
    '-----------------
    'Les données doivent être indiquées dans le même ordre que les champs dans la base de données.
    texte_SQL = "INSERT INTO [" & NomFeuille & "$] " & "VALUES ('" & numdemande & "', #" & date1 & "#, '" & nom1 & "', '" & etbls & "', '" & lieu & "', '" & domaine & "', '" & typeprob & "', '" & descrip & "', '', '', '', '')"
 
    Debug.Print texte_SQL
 
    Cn.Execute texte_SQL
 
    Cn.Close
    Set Cn = Nothing
End Sub