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 :
- La macro peut être exécutée sur toute table du canevas.
- Si une table utilise le commentaire <RPE_SORT>,
cette table est triée.
- Les tables qui n'utilisent pas le commentaire <RPE_SORT> ne sont pas triées.
- Le commentaire <RPE_SORT> peut être supprimé de la
sortie finale.
Procédure
- Ajoutez un libellé de macro sur les colonnes à trier :
- Ouvrez le canevas dans l'application Document Studio.
- Dans la cellule d'en-tête de la colonne sur laquelle le tri est effectué, ajoutez un élément Commentaire
.
- Cliquez deux fois sur l'élément Commentaire et entrez <RPE_SORT>.
- Répétez cette opération sur chaque table du canevas à mettre à jour.
- Créez la macro :
- Ouvrez Microsoft Word.
- 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
- Sauvegardez le fichier avec une extension .dot.
- Ajoutez la macro à la spécification de document et générez la sortie :
- Ouvrez la spécification de document, si vous en avez déjà une, ou créez-en une dans
l'application Programme de lancement.
- Développez Sortie, cliquez à l'aide du bouton droit de la souris sur Target: Word et sélectionnez Configurer la sortie.
- Pour Feuille de style, cliquez sur Parcourir afin de rechercher
la macro .dot que vous avez créée.
- Pour Macro, entrez le nom de la macro.
- 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.