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
| Private Sub Commande11_Click()
SysCmd acSysCmdInitMeter, "Export vers le fichier de traitement en cours. VEUILLEZ PATIENTER...", 100 'Définit le texte à afficher et la valeur maximale de la jauge.
Call Exportation("SYNTHESE_PORT_NAT_HORS_INTRA", "D:\Analyse_Avoirs_(annee_mois_debut)_(annee_mois_fin).xls", "Extraction")
SysCmd acSysCmdUpdateMeter, "Export vers le fichier de traitement en cours. VEUILLEZ PATIENTER...", 50 'Définit le texte à afficher et la valeur actuelle de la jauge.
Call Export_AG_EST("Export_Stat_agence_EST", "D:\Analyse_Avoirs_(annee_mois_debut)_(annee_mois_fin).xls", "Référenciel")
SysCmd acSysCmdRemoveMeter 'Supprime la jauge d'avancement
End Sub
Sub Exportation(requete As String, fichier As String, onglet As String)
Dim xlA As Object, xlW As Object, t As DAO.Recordset
Dim qdf As DAO.QueryDef
Dim db As DAO.Database
Dim i As Integer
Dim s As String, NumChamp As Long, ligne As Long
Set xlA = CreateObject("excel.application") 'lance Excel
xlA.Visible = False
xlA.workbooks.Open (fichier) 'ouvre le fichier
Set xlW = xlA.activeworkbook
ligne = 1
Set db = CurrentDb
Set qdf = db.QueryDefs(requete)
For i = 0 To qdf.Parameters.Count - 1
On Error Resume Next
qdf.Parameters(i).Value = Eval(qdf.Parameters(i).Name)
If Err.Number = 2482 Then ' Paramètre non évaluable
' Demande la saisie du paramètre dans une inputbox
qdf.Parameters(i).Value = InputBox(qdf.Parameters(i).Name)
End If
On Error GoTo 0
Next
Set t = qdf.OpenRecordset 'ouvre la requete
Do Until t.EOF
ligne = ligne + 1 'ligne suivante dans la feuille Excel
For NumChamp = 0 To 10 'pour chaque colonne de la requete
s = t(NumChamp) 'recupération des données au format Texte
xlW.Sheets(onglet).cells(ligne, NumChamp + 1) = s 'ecriture dans la cellule
Next NumChamp
t.MoveNext 'enregistrement suivant
Loop
t.Close
Set t = Nothing
Set qdf = Nothing
Set db = Nothing
xlW.Save
xlA.Quit
Set xlA = Nothing ' puis libère la référence.
End Sub
Sub Export_AG_EST(requete As String, fichier As String, onglet As String)
Dim xlA As Object, xlW As Object, t As DAO.Recordset
Dim qdf As DAO.QueryDef
Dim db As DAO.Database
Dim i As Integer
Dim s As String, NumChamp As Long, ligne As Long
Set xlA = CreateObject("excel.application") 'lance Excel
xlA.Visible = False
xlA.workbooks.Open (fichier) 'ouvre le fichier
Set xlW = xlA.activeworkbook
ligne = 199
Set db = CurrentDb
Set qdf = db.QueryDefs(requete)
For i = 0 To qdf.Parameters.Count - 1
On Error Resume Next
qdf.Parameters(i).Value = Eval(qdf.Parameters(i).Name)
If Err.Number = 2482 Then ' Paramètre non évaluable
' Demande la saisie du paramètre dans une inputbox
qdf.Parameters(i).Value = InputBox(qdf.Parameters(i).Name)
End If
On Error GoTo 0
Next
Set t = qdf.OpenRecordset 'ouvre la requete
Do Until t.EOF
ligne = ligne + 1 'ligne suivante dans la feuille Excel
For NumChamp = 0 To 1 'pour chaque colonne de la requete
s = t(NumChamp) 'recupération des données au format Texte
xlW.Sheets(onglet).cells(ligne, NumChamp + 1) = s 'ecriture dans la cellule
Next NumChamp
t.MoveNext 'enregistrement suivant
Loop
t.Close
Set t = Nothing
Set qdf = Nothing
Set db = Nothing
xlW.Save
xlA.Quit
Set xlA = Nothing ' puis libère la référence.
End Sub |
Partager