Partager via


Comment : trier des données par programme dans les feuilles de calcul

Mise à jour : Juillet 2008

S'applique à

Les informations de cette rubrique s'appliquent uniquement aux projets et versions Visual Studio Tools pour Office spécifiés de Microsoft Office.

Type de projet

  • Projets au niveau du document

  • Projets au niveau de l'application

Version de Microsoft Office

  • Excel 2003

  • Excel 2007

Pour plus d'informations, consultez Fonctionnalités disponibles par type d'application et de projet.

Vous pouvez trier des données qui sont contenues dans des listes et des plages de feuille de calcul au moment de l'exécution. Le code suivant trie une plage à colonnes multiples nommée Fruits selon les données de la première colonne, puis selon les données de la deuxième.

À compter de Visual Studio 2008 Service Pack 1 (SP1), vous pouvez trier des données au moment de l'exécution dans des compléments d'application.

Tri de données dans une personnalisation au niveau du document

Pour trier des données dans un contrôle NamedRange

  • Appelez la méthode Sort du contrôle NamedRange. L'exemple suivant nécessite un contrôle NamedRange nommé Fruits sur une feuille de calcul. Ce code doit être placé dans une classe sheet et non dans la classe ThisWorkbook.

    Me.Fruits.Sort( _
        Key1:=Me.Fruits.Columns(1), Order1:=Excel.XlSortOrder.xlAscending, _
        Key2:=Me.Fruits.Columns(2), Order2:=Excel.XlSortOrder.xlAscending, _
        Orientation:=Excel.XlSortOrientation.xlSortColumns, _
        Header:=Excel.XlYesNoGuess.xlNo, _
        SortMethod:=Excel.XlSortMethod.xlPinYin, _
        DataOption1:=Excel.XlSortDataOption.xlSortNormal, _
        DataOption2:=Excel.XlSortDataOption.xlSortNormal, _
        DataOption3:=Excel.XlSortDataOption.xlSortNormal)
    
    this.Fruits.Sort(
        this.Fruits.Columns[1, missing], Excel.XlSortOrder.xlAscending,
        this.Fruits.Columns[2, missing], missing, Excel.XlSortOrder.xlAscending,
        missing, Excel.XlSortOrder.xlAscending,
        Excel.XlYesNoGuess.xlNo, missing, missing, 
        Excel.XlSortOrientation.xlSortColumns,
        Excel.XlSortMethod.xlPinYin,
        Excel.XlSortDataOption.xlSortNormal,
        Excel.XlSortDataOption.xlSortNormal,
        Excel.XlSortDataOption.xlSortNormal); 
    

Placez le code suivant dans Sheet1.vb ou Sheet1.cs pour trier les données dans un contrôle ListObject . Le code suppose que vous disposez d'un contrôle Microsoft.Office.Tools.Excel.ListObject nommé fruitList dans une feuille de calcul nommée Sheet1.

Pour trier des données dans un contrôle ListObject

  • Appelez la méthode Sort de la propriété Range du contrôle hôte ListObject.

    Me.fruitList.Range.Sort( _
        Key1:=Me.fruitList.ListColumns(1).Range, Order1:=Excel.XlSortOrder.xlAscending, _
        Key2:=Me.fruitList.ListColumns(2).Range, Order2:=Excel.XlSortOrder.xlAscending, _
        Orientation:=Excel.XlSortOrientation.xlSortColumns, _
        Header:=Excel.XlYesNoGuess.xlYes)
    
    this.fruitList.Range.Sort(
        this.fruitList.ListColumns[1].Range, Excel.XlSortOrder.xlAscending,
        this.fruitList.ListColumns[2].Range, missing, Excel.XlSortOrder.xlAscending,
        missing, Excel.XlSortOrder.xlAscending, 
        Excel.XlYesNoGuess.xlYes, missing, missing, 
        Excel.XlSortOrientation.xlSortColumns,
        Excel.XlSortMethod.xlPinYin, 
        Excel.XlSortDataOption.xlSortNormal,
        Excel.XlSortDataOption.xlSortNormal,
        Excel.XlSortDataOption.xlSortNormal);
    

Tri de Données dans un Complément d'application

Pour trier des données dans une plage native

  • Appelez la méthode Sort du contrôle Microsoft.Office.Interop.Excel.Range Excel natif. L'exemple suivant requiert un contrôle Excel natif nommé Fruits sur une feuille de calcul.

    Dim Fruits As Excel.Range = Me.Application.Range("A1", "B2")
    Fruits.Sort( _
        Key1:=Fruits.Columns(1), Order1:=Excel.XlSortOrder.xlAscending, _
        Key2:=Fruits.Columns(2), Order2:=Excel.XlSortOrder.xlAscending, _
        Orientation:=Excel.XlSortOrientation.xlSortColumns, _
        Header:=Excel.XlYesNoGuess.xlNo, _
        SortMethod:=Excel.XlSortMethod.xlPinYin, _
        DataOption1:=Excel.XlSortDataOption.xlSortNormal, _
        DataOption2:=Excel.XlSortDataOption.xlSortNormal, _
        DataOption3:=Excel.XlSortDataOption.xlSortNormal)
    
    Excel.Range Fruits = Application.get_Range("A1", "B3");
        Fruits.Sort(
        Fruits.Columns[1, missing], Excel.XlSortOrder.xlAscending,
        Fruits.Columns[2, missing], missing, Excel.XlSortOrder.xlAscending,
        missing, Excel.XlSortOrder.xlAscending,
        Excel.XlYesNoGuess.xlNo, missing, missing,
        Excel.XlSortOrientation.xlSortColumns,
        Excel.XlSortMethod.xlPinYin,
        Excel.XlSortDataOption.xlSortNormal,
        Excel.XlSortDataOption.xlSortNormal,
        Excel.XlSortDataOption.xlSortNormal); 
    

Pour trier des données dans un contrôle ListObject

  • Appelez la méthode Sort de la propriété Range du contrôle Microsoft.Office.Interop.Excel.ListObject Excel natif. L'exemple suivant suppose que vous avez un contrôle Excel natif Microsoft.Office.Interop.Excel.ListObject nommé fruitList dans la feuille de calcul active.

    Dim fruitList As Excel.ListObject = CType(Application.ActiveSheet,  _
        Excel.Worksheet).ListObjects.AddEx(Excel.XlListObjectSourceType.xlSrcRange, _
        Application.Range("A1", "B2"))
    fruitList.Range.Sort( _
    Key1:=fruitList.ListColumns(1).Range, Order1:=Excel.XlSortOrder.xlAscending, _
    Key2:=fruitList.ListColumns(2).Range, Order2:=Excel.XlSortOrder.xlAscending, _
    Orientation:=Excel.XlSortOrientation.xlSortColumns, _
    Header:=Excel.XlYesNoGuess.xlYes)
    
    Excel.ListObject fruitList = 
         ((Excel.Worksheet)Application.ActiveSheet).
             ListObjects.Add(Microsoft.Office.Interop.Excel.XlListObjectSourceType.xlSrcRange,
             Application.get_Range("A1", "B3"), 
             missing, Microsoft.Office.Interop.Excel.XlYesNoGuess.xlNo, missing); 
        fruitList.Range.Sort(
            fruitList.ListColumns[1].Range, Excel.XlSortOrder.xlAscending,
            fruitList.ListColumns[2].Range, missing, Excel.XlSortOrder.xlAscending,
            missing, Excel.XlSortOrder.xlAscending,
            Excel.XlYesNoGuess.xlYes, missing, missing,
            Excel.XlSortOrientation.xlSortColumns,
            Excel.XlSortMethod.xlPinYin,
            Excel.XlSortDataOption.xlSortNormal,
            Excel.XlSortDataOption.xlSortNormal,
            Excel.XlSortDataOption.xlSortNormal);
    

Voir aussi

Tâches

Comment : remplir automatiquement des plages avec des données soumises à modification incrémentielle

Comment : faire référence aux plages de la feuille de calcul dans le code

Comment : appliquer des styles à des plages dans les classeurs

Concepts

Utilisation des feuilles de calcul

NamedRange, contrôle

ListObject, contrôle

Fonctionnement des paramètres optionnels dans les solutions Office

Historique des modifications

Date

Historique

Raison

Juillet 2008

Ajout d'un exemple de code qui peut être utilisé dans un complément d'application.

Commentaires client.