| 12
 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
 
 |  
 
          // Instanciation d'Excel
          XlApp := Createoleobject('Excel.Application');
          XlApp.ScreenUpdating := false;
          XlApp.Visible := False;
          DecimalSeparator := ',';
 
          // Importer le fichier texte dans Excel via OLE
          XlApp.Workbooks.OpenText('U:\pv_suivi_extract.txt',,,xlDelimited,,
                       False, False, True, False, False,False,
                       VarArrayOf([VarArrayOf([1,4]),
                                   VarArrayOf([2,2]),
                                   VarArrayOf([3,2]),
                                   VarArrayOf([4,2]),
                                   VarArrayOf([5,2]),
                                   VarArrayOf([6,2]),
                                   VarArrayOf([7,1]),
                                   VarArrayOf([8,2]),
                                   VarArrayOf([9,1]),
                                   VarArrayOf([10,2]),
                                   VarArrayOf([11,2]),
                                   VarArrayOf([12,2])]));
 
 
          // formatage des données
          XlApp.Workbooks[1].WorkSheets[1].Columns['A:L'].Select;
          XlApp.Workbooks[1].WorkSheets[1].Columns['A:L'].EntireColumn.AutoFit;
 
 
          // Générer les tableaux croisés dynamiques & les graphiques croisés dynamiques
 
          // TCD_UD
          XlApp.Workbooks[1].WorkSheets[1].Range['A1'].Select;
          XlApp.Selection.CurrentRegion.Select;
 
          XlApp.Workbooks[1].PivotCaches.Add(xlDatabase, QuotedStr('pv_suivi_extract')+'!R1C1:R7909C12').CreatePivotTable('', 'Tableau croisé dynamique3');
          XlApp.Workbooks[1].ActiveSheet.PivotTables('Tableau croisé dynamique3').PivotFields('MOIS').Orientation := xlRowField;
          XlApp.Workbooks[1].ActiveSheet.PivotTables('Tableau croisé dynamique3').PivotFields('MOIS').Position := 1;
 
          XlApp.Workbooks[1].ActiveSheet.PivotTables('Tableau croisé dynamique3').PivotFields('UD').Orientation := xlRowField;
          XlApp.Workbooks[1].ActiveSheet.PivotTables('Tableau croisé dynamique3').PivotFields('UD').Position := 2;
 
          XlApp.Workbooks[1].ActiveSheet.PivotTables('Tableau croisé dynamique3').PivotFields('Site').Orientation := xlColumnField;
          XlApp.Workbooks[1].ActiveSheet.PivotTables('Tableau croisé dynamique3').PivotFields('Site').Position := 1;
 
          XlApp.Workbooks[1].ActiveSheet.PivotTables('Tableau croisé dynamique3').PivotFields('Montant_pv').Orientation := xlDataField;
          XlApp.Workbooks[1].WorkSheets[1].Name := 'tcd_UD';
 
          XlApp.Workbooks[1].ActiveSheet.PivotTables('Tableau croisé dynamique3').Format(13);
          XlApp.Workbooks[1].ActiveSheet.PivotTables('Tableau croisé dynamique3').PivotFields('Nombre de MONTANT_PV').Function := 0;
 
 
 
          // constantes Excel pour la mise en forme des tableaux croisés dynamiques
          {
          format:
          0: xlPTClassic
          1: xlPTNone
          2: xlReport1
          3: xlReport10
          4: xlReport2
          5: xlReport3
          6: xlReport4
          7: xlReport5
          8: xlReport6
          9: xlReport7
          10: xlReport8
          11: xlReport9
          12: xlTable1
          13: xlTable10
          14: xlTable2
          15: xlTable3
          16: xlTable4
          17: xlTable5
          18: xlTable6
          19: xlTable7
          20: xlTable8
          21: xlTable9
          }
 
          // constantes Excel pour la fonction utilisée pour les données (au centre du tableau)
          {
          function:
          0: somme
          1: nb
          2: moyenne
          etc...
          } |