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

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur : Vilains modOOs

Règles du forum
:alerte: Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
alex85
Membre lOOyal
Membre lOOyal
Messages : 31
Inscription : 05 nov. 2019 14:15

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

Message 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.
Pièces jointes
open.ods
exemple
(11.2 Kio) Téléchargé 108 fois
LibO 7.1 sous windows 10
Avatar de l’utilisateur
Bidouille
RespOOnsable forum
RespOOnsable forum
Messages : 12196
Inscription : 08 nov. 2005 17:23
Localisation : Caen, France
Contact :

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

Message 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.
alex85
Membre lOOyal
Membre lOOyal
Messages : 31
Inscription : 05 nov. 2019 14:15

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

Message par alex85 »

Pouvez-vous m'aider à avancer svp ? :fou:
LibO 7.1 sous windows 10
Avatar de l’utilisateur
micmac
RespOOnsable forum
RespOOnsable forum
Messages : 9223
Inscription : 28 août 2010 10:45

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

Message 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.
Touche Ctrl de Windows = touche cmd⌘ sur Mac
Outils > Options sur Windows = OpenOffice > Préférences sur Mac
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25143
Inscription : 03 mars 2006 08:45
Localisation : 127.0.0.1
Contact :

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

Message 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.
alex85
Membre lOOyal
Membre lOOyal
Messages : 31
Inscription : 05 nov. 2019 14:15

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

Message 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
LibO 7.1 sous windows 10
alex85
Membre lOOyal
Membre lOOyal
Messages : 31
Inscription : 05 nov. 2019 14:15

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

Message par alex85 »

Code : Tout sélectionner

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
LibO 7.1 sous windows 10
alex85
Membre lOOyal
Membre lOOyal
Messages : 31
Inscription : 05 nov. 2019 14:15

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

Message par alex85 »

ça me suffit quand même, je met résolu trop de paresseux :bravo: merci
LibO 7.1 sous windows 10
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25143
Inscription : 03 mars 2006 08:45
Localisation : 127.0.0.1
Contact :

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

Message par Dude »

Et pourtant...

Code : Tout sélectionner

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.
Pièces jointes
open.ods
(12.96 Kio) Téléchargé 94 fois
alex85
Membre lOOyal
Membre lOOyal
Messages : 31
Inscription : 05 nov. 2019 14:15

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

Message par alex85 »

Un grand merci :bravo: top
LibO 7.1 sous windows 10
Verrouillé