Bonjour,

La fonction suivante permet d'effectuer une requête vers une base de données Oracle puis de l'envoyer dans une feuille du classeur Excel. Le problème est que lorsque je lance le programme en "pas à pas détaillé". Le code s'arrête à :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
DB.Open SQLBase , SQLUser, SQLPWD
Je ne comprends pas pourquoi ... Est-ce que vous pouvez m'aider ?

Voici la fonction complète :

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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
Public Sub ImportDonnees()
 
    Dim TitreGraphe         As String
    Dim LegendeOrdonnees    As String
    Dim LegendeAbcisses     As String
 
    Dim ChaineSQL           As String
 
    Dim LigneCourante       As Long
    Dim LigneDebut          As Long
    Dim LigneFin            As Long
    Dim AncienNom           As String
    Dim NouveauNom          As String
    Dim DonneesACumuler     As Boolean
 
    ' Script alimentant chargeant dans le fichier les données à partir des vues
 
    SQLBase = Variables.Range("B5").Value
    SQLUser = Variables.Range("B6").Value
    SQLPWD = Variables.Range("B7").Value
 
    Param2 = Variables.Range("B10").Value
    Param3 = Variables.Range("B11").Value
    Param4 = Variables.Range("B12").Value
    Param1 = Param3 + " " + "23:59"
 
    ' Connexion à la base de données
    DB.Open SQLBase, SQLUser, SQLPWD
 
    ' Etat01 - Import des données
 
    ChaineSQL = "SELECT  TO_CHAR(A.wodate, 'YYYY') AS datepanne, count(wo.wonum) " & _
        "FROM wo, ( " & _
        "SELECT DISTINCT wodate, woe.lastname, woe.wonum " & _
        "FROM woe, equip " & _
        "WHERE WOE.LASTNAME <> 'SDP_AUTOMAT_EDP' " & _
        "AND woe.WODATE between TO_DATE('01/01/2009','DD/MM/YYYY') and TO_DATE('31/12/2013 23:59','DD/MM/YYYY HH24:MI') " & _
        "AND woe.eqnum = equip.eqnum " & _
        "AND equip.famille = 'TRACE' " & _
        "AND equip.eqtype in ('PIA','PMVA') " & _
        ") A " & _
        "WHERE " & _
        "wo.wonum = A.wonum " & _
        "AND wo.wotype = 'CURATIF' " & _
        "GROUP BY TO_CHAR(A.wodate, 'YYYY')" & _
        "ORDER BY datepanne asc;"
 
 
    ImportDonneesFeuille "Etat - Data", "A", "R", _
        ChaineSQL
 
    'MEPEtat01 "Etat - Data", "A", "K"
 
    ' Dispatchage par région
 
    ' Sur changement de nom
    ' Alimentation d'une nouvelle feuille
 
    ' Parcours du tableau
    With Worksheets("Etat - Data")
        LigneCourante = 9
        Do While .Cells(LigneCourante, 1).Value <> ""
 
            If AncienNom = "" Then
 
                'Initialisation des variables
                LigneDebut = LigneCourante
                AncienNom = .Cells(LigneCourante, 1).Value
 
            End If
 
            ' Si les informations ont changé : calcul de la ligne fin
            NouveauNom = .Cells(LigneCourante, 1).Value
            If NouveauNom <> AncienNom Then
 
                LigneFin = LigneCourante - 1
                DonneesACumuler = True
                AlimenteFeuille AncienNom, LigneDebut, LigneFin, DonneesACumuler
                LigneDebut = LigneFin + 1
 
                LigneFin = LigneCourante
                AncienNom = NouveauNom
            End If
 
            ' Passage à la ligne suivante
            LigneCourante = LigneCourante + 1
 
        Loop
 
    End With
 
    ' Alimentation de la dernière feuille
 
    LigneFin = LigneCourante - 1
    AlimenteFeuille AncienNom, LigneDebut, LigneFin, True
 
    ' Déconnexion de la base de données
    If Not ErreurDetectee Then
        DB.Close
    End If
 
End Sub
Cordialement,

Dylan