Poser votre question

Historique des modifications [retour]

cliquez pour afficher/masquer la modification 1
version initiale

Bonjour

@Belaim a écrit:

lorsque je sélectionne la plage de cellules concernée et que je sélectionne Données/Trier.../Options/Direction -> "De gauche à droite (Trier des colonnes)" (toutes les options de tri décochées) il ne se passe rien.

Sans doute parce que tu inclus E1:J1 dans ta sélection.

Le seul moyen de procéder pour que cela fonction est de renseigner les critères de tri pour chaque ligne

De la même manière que pour un tri par ligne (du haut vers le bas) on indique la colonne critère de tri... Pour mieux visualiser ce point tu peux faire un collage spécial pour "transposer" ta plage et tenter un tri "classique".

J'ai donc tenté une macro avec des boucles...

Le "dispatcher" n'est qu'exceptionnellement plus pratique que le recours à l'API pour programmer. Je te propose la macro suivante (cf. module PYS dans le classeur joint C:\fakepath\Test_Tri_Quantites.ods)

sub TrierQte

dim oClasseur as Object, oFeuille as Object, oPlage as Object
dim oConfigTri(1) as new com.sun.star.table.TableSortField
dim oDesc(2) As New com.sun.star.beans.PropertyValue 
dim i as long

oClasseur = thisComponent
oFeuille = oClasseur.sheets.getByName("Test_Tri_Quantites")
oConfigTri(0).Field=1
oConfigTri(0).IsAscending=true

oDesc(0).name = "SortFields"
oDesc(0).value = oConfigTri()
oDesc(1).name = "ContainsHeader"
oDesc(1).value = false
oDesc(2).name = "IsSortColumns"
oDesc(2).value = true

for i = 1 to 22
    oPlage = oFeuille.getCellRangeByPosition(4, i, 8, i)
    oPlage.Sort(oDesc())
next i


end sub

Cordialement