Bonjour,

mon problème aujourd'hui se trouve lorsque j'effectue un INSERT INTO. Mon code est stocké dans un fichier excel et la base de données est un autre fichier excel
Lorsque j'effectue mon code comme ci dessous l'insertion s'effectue comme il faut et je le retrouve bien dans ma base de donnée :

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
51
Public Const users = "Utilisateurs$"
 
Public Sub OpenConnexion(Fichier)
    Set Connexion = CreateObject("ADODB.Connection")
    With Connexion
        .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
End Sub
 
Public Function Insert_Creation() As Boolean
On Error GoTo Err_Insert
 
    Dim adoCMD As Object
    Dim adoRS As Object
    Dim strSQL As String
 
'Définir la requête à effectuer pour l'insertion
    strSQL = "INSERT INTO [" & users & "] ([Login], [Nom])" & vbCrLf & _
            "VALUES (p1,p2);"
    OpenConnexion (Fichier)
 
'Définition des parametres à affecter à chaque valeur (p1,p2,...,px)
    Set adoCMD = CreateObject("ADODB.Command")
    With adoCMD
        .ActiveConnection = Connexion
        .CommandType = adCmdText
        .Parameters.Append .CreateParameter("p1", adVarChar, adParamInput, 50, "Ctoto")
        .Parameters.Append .CreateParameter("p2", adVarChar, adParamInput, 50, "toto")
        .CommandText = strSQL
        Set adoRS = .Execute
    End With
 
'Retourne vrai quand l'execution s'effectue sans erreur
    Insert_Creation = True
 
Exit_Insert:
'Fermeture des connections
    Set adoRS = Nothing
    Set adoCMD = Nothing
    Exit Function
 
Err_Insert:
'En cas d'erreur renvoi d'un msgbox
    MsgBox ("Function: Insert() err")
    Insert_Creation = False
    Resume Exit_Insert
 
End Function
or quand j'utilise le code avec une autre feuille le code ne fonctionne plus et s’arrête lors de l’exécution comme dans ce 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
41
Public Const ano = "Anomalies$"
 
Public Function Insert_Creation() As Boolean
On Error GoTo Err_Insert
 
    Dim adoCMD As Object
    Dim adoRS As Object
    Dim strSQL As String
 
'Définir la requête à effectuer pour l'insertion
    strSQL = "INSERT INTO [" & ano & "] ([IdAnom], [Libelle])" & vbCrLf & _
            "VALUES (p1,p2);"
    OpenConnexion (Fichier)
 
'Définition des parametres à affecter à chaque valeur (p1,p2,...,px)
    Set adoCMD = CreateObject("ADODB.Command")
    With adoCMD
        .ActiveConnection = Connexion
        .CommandType = adCmdText
        .Parameters.Append .CreateParameter("p1", adVarChar, adParamInput, 50, "CME1251")
        .Parameters.Append .CreateParameter("p2", adVarChar, adParamInput, 50, "toto")
        .CommandText = strSQL
        Set adoRS = .Execute
    End With
 
'Retourne vrai quand l'execution s'effectue sans erreur
    Insert_Creation = True
 
Exit_Insert:
'Fermeture des connections
    Set adoRS = Nothing
    Set adoCMD = Nothing
    Exit Function
 
Err_Insert:
'En cas d'erreur renvoi d'un msgbox
    MsgBox ("Function: Insert() err")
    Insert_Creation = False
    Resume Exit_Insert
 
End Function
Si vous avez des raisons possibles pour la résolution de mon problème je suis preneur (j'ai déjà bien regarder si les noms étaient bien les mêmes et je vais encore vérifier).
Merci