Bonjour,

Je dois créer un classeur Excel qui automatisera une tâche.

Pour le moment j'ai réussi à coder ceci, en prenant ici où là des infos.

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
Dim ODBC_Cmd As ADODB.Command
    Dim ODBC_Cnx As ADODB.Connection
    ' Ouvrir la connexion  la base
    On Error GoTo NotOpen
    Set ODBC_Cnx = New ADODB.Connection
    Set ODBC_Cmd = New ADODB.Command
    Dim Prm1 As ADODB.Parameter, Prm2 As ADODB.Parameter
 
    'Dfinition de la chane de connexion
    ODBC_Cnx.ConnectionString = "DSN=Base;UID=sa;PWD=Pass;"
 
    'Ouverture de la base de donnes
    ODBC_Cnx.Open
 
    If ODBC_Cnx.State = adStateOpen Then
        MsgBox "connexion russie"
        ' Prparer l'objet Commande
        On Error GoTo ErrCmd
 
            ODBC_Cmd.ActiveConnection = ODBC_Cnx
            ODBC_Cmd.CommandType = adCmdStoredProc
            ODBC_Cmd.CommandText = "sp_Recod_Article"
 
            Set Prm1 = ODBC_Cmd.CreateParameter("@AncCodeArticle", adChar, adParamInput, 50)
            Set Prm2 = ODBC_Cmd.CreateParameter("@NouvCodeArticle", adChar, adParamInput, 50)
 
            ODBC_Cmd.Parameters.Append Prm1
            Prm1.Value = "02ETI3947"
            ODBC_Cmd.Parameters.Append Prm2
            Prm2.Value = "ZZ02ETI3947"
 
            ' Excuter la commande
            ODBC_Cmd.Execute 
    End If
    GoTo EndSub
 
NotOpen:
    MsgBox "Connexion  la base errone", ODBC_Cnx.ConnectionString
    GoTo EndSub
 
ErrCmd:
    MsgBox "Commande non exécutée"
 
 
EndSub:
    ODBC_Cnx.Close
    Set ODBC_Cmd = Nothing
    Set ODBC_Cnx = Nothing
Pour le moment, l'ancien et le nouveau code est fixe mais plus tard, il faudra que je parcours une feuille Excel.

Mon but est de faire appel à une procédure stockée appelée "sp_Recod_Article" en sachant que cette procèdure accepte deux entrées, l'ancien et le nouveau code.

Le souci c'est qu'il m'affiche le message d'erreur "commande non exécuté" et je ne comprends pas d'où peut provenir l'erreur.

Merci de votre aide