Bonjour,

Voici mon souci j'ai 2 fichiers un fichier sources et fichier base.
Le fichier base est mis a jour en fonction du fichier source.

lorsque le le fichier base est mis a jour qu'en fonction du numero ID ca marche. Voici le 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
42
43
44
45
46
47
Sub modifier()
 
Dim Cn As ADODB.Connection
 
Dim fichier As String
Dim feuille As String
Dim strSQL As String
 
Dim data_id 'As String
Dim data_nom As String
Dim data_statut As String
Dim data_cr As String
 
Dim nbre_ligne As Integer
Dim cpt As Integer
 
fichier = ThisWorkbook.Path & "\base3.xls"
feuille = "Feuil1"
 
nbre_ligne = ThisWorkbook.Sheets(feuille).Range("a" & Rows.Count).End(xlUp).Row
 
Set Cn = New ADODB.Connection
 
Cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & "Data Source=" & fichier & ";" & "Extended Properties=""Excel 12.0;HDR=Yes;"";"
 
For cpt = 2 To nbre_ligne
 
    data_id = ThisWorkbook.Sheets(feuille).Range("a" & cpt)
    data_cr = ThisWorkbook.Sheets(feuille).Range("b" & cpt)
   ' data_nom = ThisWorkbook.Sheets(feuille).Range("b" & cpt)
    data_statut = ThisWorkbook.Sheets(feuille).Range("d" & cpt)
    data_date = ThisWorkbook.Sheets(feuille).Range("e" & cpt)
 
    strSQL = "UPDATE [" & feuille & "$] SET " & "Statut = " & "'" & data_statut & "' WHERE ID = " & data_id
 
    Cn.Execute strSQL
 
    strSQL = "UPDATE [" & feuille & "$] SET " & "Dates = " & "'" & data_date & "' WHERE ID = " & data_id
 
    Cn.Execute strSQL
 
Next
 
Cn.Close
 
 
End Sub
J'ai voulu apporter une variente c'est à dire que le fichier source est mis a jour en fonction du numero ID et du numero CR. J'ai une erreur qui apparait "Erreur d'execution '-2147217900 (80040e14)' Erreur de synthaxe dans la chaine dans l'expression "12, WHRE CR=RAI"


voici le code modifier.
Les modifcations par rapport au code précédant sont sur la ligne 34 et 38 j'ai rajouter la synthaxe suivante & "' WHERE CR = " & data_cr

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
Sub modifier()
 
Dim Cn As ADODB.Connection
 
Dim fichier As String
Dim feuille As String
Dim strSQL As String
 
Dim data_id 'As String
Dim data_nom As String
Dim data_statut As String
Dim data_cr As String
 
Dim nbre_ligne As Integer
Dim cpt As Integer
 
fichier = ThisWorkbook.Path & "\base3.xls"
feuille = "Feuil1"
 
nbre_ligne = ThisWorkbook.Sheets(feuille).Range("a" & Rows.Count).End(xlUp).Row
 
Set Cn = New ADODB.Connection
 
Cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & "Data Source=" & fichier & ";" & "Extended Properties=""Excel 12.0;HDR=Yes;"";"
 
For cpt = 2 To nbre_ligne
 
    data_id = ThisWorkbook.Sheets(feuille).Range("a" & cpt)
    data_cr = ThisWorkbook.Sheets(feuille).Range("b" & cpt)
   ' data_nom = ThisWorkbook.Sheets(feuille).Range("b" & cpt)
    data_statut = ThisWorkbook.Sheets(feuille).Range("d" & cpt)
    data_date = ThisWorkbook.Sheets(feuille).Range("e" & cpt)
 
    strSQL = "UPDATE [" & feuille & "$] SET " & "Statut = " & "'" & data_statut & "' WHERE ID = " & data_id & "' WHERE CR = " & data_cr
 
    Cn.Execute strSQL
 
    strSQL = "UPDATE [" & feuille & "$] SET " & "Dates = " & "'" & data_date & "' WHERE ID = " & data_id & "' WHERE CR = " & data_cr
 
    Cn.Execute strSQL
 
Next
 
Cn.Close
 
 
End Sub
Pouvez vous me dire d'ou viens le problème. Je sais que j'ai mal écrit le code mais je n'arrive pas a corriger le problème.

Merci pour votre aide

cdt