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 |
Partager