Tri à l'aide d'une macro de documents Microsoft Word

Utilisez une macro de tri lorsque la propriété à utiliser n'est pas disponible dans la fenêtre de tri.

Avant de commencer

Remarque : Cette rubrique s'applique uniquement aux canevas générés dans des documents Microsoft Word.

Pourquoi et quand exécuter cette tâche

Avantages d'une macro de tri :

Procédure

  1. Ajoutez un libellé de macro sur les colonnes à trier :
    1. Ouvrez le canevas dans l'application Document Studio.
    2. Dans la cellule d'en-tête de la colonne sur laquelle le tri est effectué, ajoutez un élément Commentaire icône Commentaire.
    3. Cliquez deux fois sur l'élément Commentaire et entrez <RPE_SORT>.
    4. Répétez cette opération sur chaque table du canevas à mettre à jour.
  2. Créez la macro :
    1. Ouvrez Microsoft Word.
    2. Copiez et collez le script suivant dans le fichier :
      ' Macro: sort tables
      ' This macro is provided as is with no implicit or explicit support from IBM.
      Sub sortTables()
      
          Dim tbl As Table
      
          ' sort each table
          For Each tbl In ActiveDocument.Tables
      
              ' determine if the table has header
              Dim hasheader As Boolean
              hasheader = False
              If tbl.Rows.First.HeadingFormat = True Then
                  hasheader = True
              End If
      
              ' get the column to do the sorting on. The column is identified by a comment with the "<RPE_SORT>" content in its first cell
              Dim hcell As Cell
              Dim index As Integer
              pos = 0
              For Each hcell In tbl.Rows.First.Cells
      
                  hcell.Select
                  If Selection.Comments.Count > 0 Then
                      If Selection.Comments.Item(1).Range.Text = "<RPE_SORT>" Then
                          pos = hcell.ColumnIndex
      
                          ' Delete the comment - remove comment from the line below
                          ' Selection.Comments.Item(1).Delete
      
                          Exit For
                      End If
                  End If
              Next
      
              ' sorts the table using the found column
              If pos > 0 Then
                  Dim fldnum As String
                  fldnum = "Column " + CStr(pos)
                  Debug.Print "Sorting on: "; fldnum
      
                  tbl.Select
                  Selection.Sort ExcludeHeader:=hasheader, FieldNumber:=fldnum, SortFieldType:=wdSortFieldAlphanumeric, SortOrder:=wdSortOrderAscending
              End If
          Next
      End Sub
    3. Sauvegardez le fichier avec une extension .dot.
  3. Ajoutez la macro à la spécification de document et générez la sortie :
    1. Ouvrez la spécification de document, si vous en avez déjà une, ou créez-en une dans l'application Programme de lancement.
    2. Développez Sortie, cliquez à l'aide du bouton droit de la souris sur Target: Word et sélectionnez Configurer la sortie.
    3. Pour Feuille de style, cliquez sur Parcourir afin de rechercher la macro .dot que vous avez créée.
    4. Pour Macro, entrez le nom de la macro.
    5. Générez la sortie.

Que faire ensuite

Sauvegardez la macro et réutilisez-la dans n'importe quelle spécification de document pour trier les données.

Commentaires