Bonjour à tous,
Voilà je vous explique mon problème. Je travaille avec un fichier Excel qui me permet de comparer les anciens prix d'achat en fonction d'un fournisseur et d'un appel d'offres.
Une fois le fournisseur et l'appel d'offres choisis, la macro me donne une liste d'articles avec leur désignation, leur quantité à commander et les 3 derniers prix et fournisseur sur cet article.
Une nouvelle version de SAP a été installée dans mon entreprise (avec un nouveau serveur) et j'ai également changé de PC.

Le fichier s'initialise correctement mais lorsque je choisis un Fournisseur dans mon menu déroulant, une erreur de compilation apparemment sur la ligne n°9 ci-dessous.
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
 
Private Sub CB_Fournisseur_Change()
 
    Dim oCn As New ADODB.Connection
    Dim oRs As New ADODB.Recordset
    Dim sODBCconn As String, sReq As String
 
    If Me.CB_AO.Value <> "" Then Me.CB_AO.Value = ""
    Me.ListView1.ListItems.Clear
 
    On Error GoTo errHandler
    sODBCconn = "Provider=SQLOLEDB;Server=192.9.200.160\SAP;Database=CME_PROD;Uid=cme;Pwd=cmecme"
    Set oCn = New ADODB.Connection
    With oCn
        .ConnectionString = sODBCconn
        .CursorLocation = adUseServer
        .Open
    End With
 
    sReq = "SELECT CONVERT(varchar,T0.DocNum) + ' - ' + CONVERT(varchar,T0.DocDate, 103) FROM CME_PROD.dbo.OPQT T0 WHERE (T0.DocDate>=DATEADD(month,-2,GETDATE())) AND (T0.DocStatus<>'C') AND T0.CardName ='" & Me.CB_Fournisseur.Value & "' ORDER BY T0.DocDate DESC"
    Set oRs = oCn.Execute(sReq)
 
    Me.CB_AO.List = Application.Transpose(oRs.GetRows)
 
    oRs.Close
    oCn.Close
 
    Set oRs = Nothing
    Set oCn = Nothing
 
    Exit Sub
 
errHandler:
 
    MsgBox "Problème de connection, veuillez réessayer plus tard"
 
End Sub
Voici la macro d'initialisation en complément pour une meilleure compréhension
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
 
Private Sub UserForm_Initialize()
 
    Dim oCn As ADODB.Connection
    Dim oRs As New ADODB.Recordset
    Dim sODBCconn As String, sReq As String
 
    On Error GoTo errHandler
    sODBCconn = "Provider=SQLOLEDB;Server=192.9.200.160\SAP;Database=CME_PROD;Uid=cme;Pwd=cmecme"
    Set oCn = New ADODB.Connection
    With oCn
        .ConnectionString = sODBCconn
        .CursorLocation = adUseServer
        .Open
    End With
 
    sReq = "SELECT DISTINCT T0.CardName FROM CME_PROD.dbo.OPQT T0 WHERE (T0.DocDate>=DATEADD(month,-2,GETDATE())) AND (T0.DocStatus<>'C')"
    Set oRs = oCn.Execute(sReq)
 
    Me.CB_Fournisseur.List = Application.Transpose(oRs.GetRows)
 
    oRs.Close
    oCn.Close
 
    Set oRs = Nothing
    Set oCn = Nothing
 
    Exit Sub
 
errHandler:
 
    MsgBox "Problème de connection, veuillez réessayer plus tard"
 
End Sub
Pour l'instant voici ce que j'ai tenté :
  • J'ai réinstallé MSCOMCTL.OCX
  • J'ai vérifié que la référence Microsoft Windows Common Controls 6.0 (SP6) était bien activée.
  • Dans l'onglet Données => Connexions => Propriétés de la connexion, j'ai remis la chaîne de connexion à jour (Driver et Server), de ce côté là je suis sûr de ma manip puisque je l'ai fait sur un autre fichier qui fonctionne depuis.


J'espère avoir été clair dans mes explications.
Je suis à court d'idées et je viens chercher de l'aide.
Merci d'avance pour votre temps.