Bonjour,

Je souhaite mettre en place un trie sur un classeur Excel sur des index contenus dans une colonne du fichier.

Mon fichier est généré à partir d'une base SQL Server et d'un script PHP, car l'utilisateur pour créer son fichier doit renseigner plusieurs critères à travers un formulaire.

Maintenant, je souhaiterai savoir si à partir de l'objet COM (Excel Application), nous pouvons effectuer des opérations de tris, de copies de valeurs; des opérations qui sont disponibles avec Excel.

Un exemple de code PHP utilisant l'objet COM, ce code génère un fichier excel et écrit dans ce même fichier dans des cellules sélectionnées :

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
 
<?php 
        define("FILENAME","C:/tests.xls");
 
        if(file_exists(FILENAME))
        {
             unlink(FILENAME);
        }
        $excel=new COM("Excel.application");//Instanciation de l'objet COM
        $excel->sheetsinnewworkbook=1;//Une seule feuille dans le document
        $excel->Workbooks->Add();//Ajout d'un classeur
        $book=$excel->Workbooks(1);//$book contient le classeur actif
        $sheet=$book->Worksheets(1);//$sheet contient la feuille active
        $sheet->Name="Graphique";//Attribution d'un nom à la feuille
 
        $cell=$sheet->Range('A1'); 
        $cell->value='Personne'; //Titre de mes colonnes
        $cell=$sheet->Range('B1');
        $cell->value='Nombre Questions'; //Nombre de questions qu'on a posées
 
 
for ($i=2;$i<7;$i++)
{
        $cell=$sheet->Range('A'.$i);
        $cell->value='Zéro'.($i-1); // Zéros2 jusquà Zéros6
        $cell=$sheet->Range('B'.$i);
        $cell->value=2*$i; // de 4 à 12 questions
}
 
        $book->saveas(FILENAME);//Enregistrement du document
        unset($sheet);//Libération de $sheet
        unset($book);//Libération de $book
        $excel->Workbooks->Close();//Fermeture du classeur
        $excel->Quit();//On quitte Excel
        unset($excel);//Libération de l'objet $excel
?>
Ainsi j'aurai voulu savoir, si à partir de ce code la on pouvait ajouter des fonctions disponibles en VBA, du type :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
Selection.Sort Key1:=Range("G2"), Order1:=xlDescending, Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Merci pour vos réponses !

Cordialement