Page 1 sur 1

[Résolu][Calc] répéter un tri croissant après cellule vide

MessagePublié: 05 Nov 2019 14:52
par alex85
Bonjour,

Jusqu'à présent tous les sujets poster m'ont été d'une grande aide, mais la j'ai rien trouvée, c'est surement faisable, mais je n'y arrive pas pour le moment, j'essaie de faire un tri croissant automatique qui s'arrêtera a la première cellule vide puis recommencera a la cellule suivante par ex : tri A2:B3 puis A5:B9 etc. afin d'éviter le faire manuellement a chaque fois.

Re: répéter un tri croissant après cellule vide

MessagePublié: 05 Nov 2019 14:55
par Bidouille
Cette section a des règles très précises que vous devez obligatoirement suivre pour obtenir de l'aide. C'est indiqué dans le cadre rouge en haut de la page.

Il est demandé aux auteurs de faire précéder le titre de leur question d'une balise adéquate. Ce balisage est extrêmement important car il permet d'avoir une base de connaissance optimum en cas de recherche. Avez-vous remarqué comment étaient les autres questions postées ?

Lisez ce fil pour savoir quelle balise utiliser : http://forum.openoffice.org/fr/forum/su ... html#27295

Nous l'avons fait pour vous cette fois-ci mais lors de votre prochaine question, nous vous remercions de le faire vous-même sous peine de voir votre sujet verrouillé.

Merci de votre collaboration.

Re: [Calc] répéter un tri croissant après cellule vide

MessagePublié: 05 Nov 2019 15:31
par alex85
Pouvez-vous m'aider à avancer svp ? :fou:

Re: [Calc] répéter un tri croissant après cellule vide

MessagePublié: 05 Nov 2019 15:34
par micmac
Bonjour,

Nous ne sommes pas une hotline. Les bénévoles qui assurent l'entraide sur ce forum font toujours le maximum pour répondre. Ils le font lorsqu'ils en ont le temps et bien sûr s'ils ont une réponse à offrir.

Re: [Calc] répéter un tri croissant après cellule vide

MessagePublié: 05 Nov 2019 16:27
par Dude
Salut,

Le problème est que ta 1ere zone contient des entêtes de colonne.
Cela rompt la logique que tu pourrais avoir dans une boucle.
Il faudrait donc la supprimer.

Tu pourras ensuite utiliser l'enregistreur de macro.
Le code fourni ne devrait pas être difficile à comprendre.

Re: [Calc] répéter un tri croissant après cellule vide

MessagePublié: 05 Nov 2019 18:23
par alex85

La modération vous a écrit: Mettez votre code entre balises [code][ /code], vous rendrez la lecture plus facile.
Pour ce faire, éditez le message, sélectionnez le code et cliquez sur le bouton "Code" en haut à gauche de votre message.


merci, j'ai effacer l'en tête, en essayant j'ai créer ce code qui me facilite un peu plus, quand je clic ça tri automatiquement mais ne le fais pas tout seul
sub Main
for x=1 to 30000
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "$A$1:$B$2"

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:SortAscending", "", 0, Array())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:SortAscending", "", 0, Array())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:SortAscending", "", 0, Array())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:SortAscending", "", 0, Array())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:SortAscending", "", 0, Array())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:SortAscending", "", 0, Array())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:SortAscending", "", 0, Array())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:SortAscending", "", 0, Array())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:SortAscending", "", 0, Array())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:SortAscending", "", 0, Array())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:SortAscending", "", 0, Array())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:SortAscending", "", 0, Array())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:SortAscending", "", 0, Array())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:SortAscending", "", 0, Array())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:SortAscending", "", 0, Array())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:SortAscending", "", 0, Array())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:SortAscending", "", 0, Array())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:SortAscending", "", 0, Array())
next

end sub

Re: [Calc] répéter un tri croissant après cellule vide

MessagePublié: 05 Nov 2019 18:35
par alex85
Code : Tout sélectionner   AgrandirRéduire
sub Main
for x=1 to 30000
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "$A$1:$B$2"

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:SortAscending", "", 0, Array())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:SortAscending", "", 0, Array())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:SortAscending", "", 0, Array())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:SortAscending", "", 0, Array())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:SortAscending", "", 0, Array())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:SortAscending", "", 0, Array())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:SortAscending", "", 0, Array())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:SortAscending", "", 0, Array())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:SortAscending", "", 0, Array())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:SortAscending", "", 0, Array())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:SortAscending", "", 0, Array())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:SortAscending", "", 0, Array())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:SortAscending", "", 0, Array())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:SortAscending", "", 0, Array())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:SortAscending", "", 0, Array())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:SortAscending", "", 0, Array())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:SortAscending", "", 0, Array())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:SortAscending", "", 0, Array())
next

end sub

Re: [Calc] répéter un tri croissant après cellule vide

MessagePublié: 05 Nov 2019 18:41
par alex85
ça me suffit quand même, je met résolu trop de paresseux :bravo: merci

Re: [Calc] répéter un tri croissant après cellule vide

MessagePublié: 05 Nov 2019 19:37
par Dude
Et pourtant...
Code : Tout sélectionner   AgrandirRéduire
sub Tri5plages
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Sel"
args1(0).Value = false
dim args2(6) as new com.sun.star.beans.PropertyValue
args2(0).Name = "ByRows"
args2(0).Value = true
args2(1).Name = "HasHeader"
args2(1).Value = false
args2(2).Name = "CaseSensitive"
args2(2).Value = false
args2(3).Name = "IncludeAttribs"
args2(3).Value = true
args2(4).Name = "UserDefIndex"
args2(4).Value = 0
args2(5).Name = "Col1"
args2(5).Value = 1
args2(6).Name = "Ascending1"
args2(6).Value = true
dim args3(1) as new com.sun.star.beans.PropertyValue
args3(0).Name = "By"
args3(0).Value = 1
args3(1).Name = "Sel"
args3(1).Value = false

rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

'boucle sur les 5 plages
for i = 1 to 5
   dispatcher.executeDispatch(document, ".uno:SelectData", "", 0, Array())
   dispatcher.executeDispatch(document, ".uno:DataSort", "", 0, args2())
   dispatcher.executeDispatch(document, ".uno:GoDownToEndOfData", "", 0, args3())
   dispatcher.executeDispatch(document, ".uno:GoDownToEndOfData", "", 0, args3())
next i
dispatcher.executeDispatch(document, ".uno:GoToStart", "", 0, args1())

end sub

A tester sur la seconde feuille.

Re: [Calc] répéter un tri croissant après cellule vide

MessagePublié: 05 Nov 2019 20:06
par alex85
Un grand merci :bravo: top