[Résolu][Writer] Faire un tri dans une colonne de tableau

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 !
yberges
Membre OOrganisé
Membre OOrganisé
Messages : 65
Inscription : 14 mars 2009 12:17

[Résolu][Writer] Faire un tri dans une colonne de tableau

Message par yberges »

hello a tous
voila dans mon formulaire j'ai un tableau qui me liste nom adresse CP et ville.
je voudrais que je clique sur ma colonne CP cela me range tout par ordre numérique.
c'est possible ?
Merci par avance
Dernière modification par yberges le 11 janv. 2011 09:20, modifié 3 fois.
open office 3.2 sous mac os x intel 10.5
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25964
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Writer]faire un tri dans une colonne

Message par Dude »

Salut,

Menu Tableau > Trier... Avec ça et l'enregistreur de macro, tu devrais pouvoir t'en sortir.

8)
Poser une question, c'est bien. Répondre aux autres, c'est encore mieux.
Améliorez AOO et votez pour les issues
jjk
HédOOniste
HédOOniste
Messages : 1696
Inscription : 27 oct. 2008 14:30

Re: [Writer]faire un tri dans une colonne

Message par jjk »

Bonjour

Tu peux peut-être trouver quelque chose ici
OpenOffice 3.1.1 sous XP-SP2 et LibreOffice 3.5.0 sous Win 7
yberges
Membre OOrganisé
Membre OOrganisé
Messages : 65
Inscription : 14 mars 2009 12:17

Re: [Writer]faire un tri dans une colonne

Message par yberges »

hello
la voici
http://dl.free.fr/vNUGCd9iW

par contre meme en mode édition j'ai pas accès au bouton trier dans le menu tableau ...

mille merci d'avance
open office 3.2 sous mac os x intel 10.5
jjk
HédOOniste
HédOOniste
Messages : 1696
Inscription : 27 oct. 2008 14:30

Re: [Writer]faire un tri dans une colonne

Message par jjk »

Il faut utiliser le service CiJoint pour joindre un exemple.

Sinon, le lien que je t'ai donné plus haut t'apporte-t-il une réponse ?
OpenOffice 3.1.1 sous XP-SP2 et LibreOffice 3.5.0 sous Win 7
yberges
Membre OOrganisé
Membre OOrganisé
Messages : 65
Inscription : 14 mars 2009 12:17

Re: [Writer]faire un tri dans une colonne

Message par yberges »

hello desoler meme en enlevant des donnée de ma base celle ci fait toujour plus de 3Mo ...(60 enregistrement et 1 formulaire bizarre)
donc fut faire avec celui de free
sinon j'avous que le message que tu m'as donnée est tres technique, je veus juste que si j'appuie sur ma colone CP les enregistrement se classent par ordre alpha numérique ...
Merci d'avance
open office 3.2 sous mac os x intel 10.5
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 17187
Inscription : 03 mars 2006 16:02
Localisation : Venise verte

Re: [Writer]faire un tri dans une colonne

Message par jeanmimi »

Bonjour,
Sans Macro, en insérant une barre de navigation de formulaire,
un clic sur l'en-tête de la colonne
puis un clic sur A-Z déclenche la possibilité de tri ascendant sur le Code postal.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice : Version : 25.2.0.3 (x64)(20 février 2025)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
yberges
Membre OOrganisé
Membre OOrganisé
Messages : 65
Inscription : 14 mars 2009 12:17

Re: [Writer]faire un tri dans une colonne

Message par yberges »

super j'ai trouver !
c'est possible de l'enregistrer en macros ?
mille merci
open office 3.2 sous mac os x intel 10.5
jjk
HédOOniste
HédOOniste
Messages : 1696
Inscription : 27 oct. 2008 14:30

Re: [Writer]faire un tri dans une colonne

Message par jjk »

Voici une petite macro basée sur l'enregistreur et modifiée pour sélectionner le tableau "Tableau1"

Code : Tout sélectionner

sub Main
  dim dispatcher as object
  maTable = ThisComponent.TextTables.getByName("Tableau1")
  ThisComponent.getCurrentController().select(maTable)
  oFrame = ThisComponent.CurrentController.Frame
  dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
  dispatcher.executeDispatch(oFrame, ".uno:SelectTable", "", 0, Array())
  dispatcher.executeDispatch(oFrame, ".uno:TableSort", "", 0, Array())
end sub
Pour l'utiliser, il faut insérer un bouton par exemple près de l'entête "CP" et lui associer la macro en question.
Cette macro demande confirmation des paramètres du tri. Il se trouve que ces paramètres proposés par défaut correspondent à ce que tu souhaites. Donc ça va.
Je n'ai pas trouvé comment l'exécuter sans confirmation.

A essayer.
OpenOffice 3.1.1 sous XP-SP2 et LibreOffice 3.5.0 sous Win 7
yberges
Membre OOrganisé
Membre OOrganisé
Messages : 65
Inscription : 14 mars 2009 12:17

Re: [Writer]faire un tri dans une colonne

Message par yberges »

hello
alors je suis enfin devant l'ordi de travail
j'ai essayer la macro
il me renvoi une erreur sur
maTable = ThisComponent.TextTables.getByName("Tableau1")
aurais tu une idée ?
Merci
open office 3.2 sous mac os x intel 10.5
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 17187
Inscription : 03 mars 2006 16:02
Localisation : Venise verte

Re: [Writer]faire un tri dans une colonne

Message par jeanmimi »

Peut-être que ton tableau ne s'appelle pas "Tableau1" ?
LibreOffice : Version : 25.2.0.3 (x64)(20 février 2025)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
yberges
Membre OOrganisé
Membre OOrganisé
Messages : 65
Inscription : 14 mars 2009 12:17

Re: [Writer]faire un tri dans une colonne

Message par yberges »

mon tableau s'appele MainForm_Grid
mais ca bloque aussi ...
une autre idée ?
merci
open office 3.2 sous mac os x intel 10.5
jjk
HédOOniste
HédOOniste
Messages : 1696
Inscription : 27 oct. 2008 14:30

Re: [Writer]faire un tri dans une colonne

Message par jjk »

Bonjour
J'ai l'impression qu'il y a confusion quelque part.
La macro que j'avais fournie concerne Writer, selon la balise que tu as mise dans le titre de ton premier message.
Or je viens de voir que le fichier que tu as joint est une base de données (.odb).
Peux-tu réexpliquer ton besoin, et quand même joindre un fichier réduit.
OpenOffice 3.1.1 sous XP-SP2 et LibreOffice 3.5.0 sous Win 7
ludovic
Membre hOOnoraire
Membre hOOnoraire
Messages : 190
Inscription : 24 nov. 2007 23:53

Re: [Writer]faire un tri dans une colonne

Message par ludovic »

si pour ton besoin tu peux passer par calc, tu peux essayer cette macro en appel paramétré (tu peux la placer dans une bibliothèque partagée) ...

Code : Tout sélectionner

sub fnTri2(maZone as object, nCol as integer, optional sOrdre as string, optional bEntete as boolean _
, optional nCol2 as integer, optional sOrdre2 as boolean _
, optional nCol3 as integer, optional sOrdre3 as boolean)
'tri selon 1,2 ou 3 colonnes
'col (entier) = numéro d'index de colonne du premier critère de tri (0 pour colonne A)
'entete (booléen) = la plage de donnee contient l'entete dans la première ligne
'déclaration des variables
dim ConfigTri(2) as new com.sun.star.table.TableSortField
'paramètres de tri
ConfigTri(0).Field = nCol
if sOrdre="" or sOrdre like "*Error*" then
	ConfigTri(0).IsAscending = true
else
	ConfigTri(0).IsAscending = sOrdre
end if
if col2="" or col2 like "*Error*" then
	'paramètre non renseigné
else
	ConfigTri(1).Field = nCol2
	ConfigTri(1).IsAscending = sOrdre2
end if
if col3="" or col3 like "*Error*" then
	'paramètre non renseigné
else
	ConfigTri(2).Field = nCol3
	ConfigTri(2).IsAscending = sOrdre3
end if
DescrTri=maZone.createSortDescriptor
setPropVal(DescrTri, "SortFields", ConfigTri())
setPropVal(DescrTri, "IsSortColumns", false)
setPropVal(DescrTri, "CopyOutputData", false)
setPropVal(DescrTri, "IsUserListEnabled", false)
setPropVal(DescrTri, "BindFormatsToContent", false)
if bEntete="" or bEntete like "*Error*" then
	setPropVal(DescrTri, "ContainsHeader", true)
else
	setPropVal(DescrTri, "ContainsHeader", bEntete)
end if
maZone.Sort(DescrTri())
end sub
l'avantage c'est que ca ne te fera plus qu'une ligne dans ton code prioncipal ...
cela fonctionne il suffit de lui mettre les bons paramètres ....
exemple d'appel de la procédure :

Code : Tout sélectionner

fnTri2(maZone,0,true,true,1,true,2,true)
maZone : ton objet qui contient la plage de donnée
0 : numéro d'index de la colonne qui sert comme premier critère de tri
true : croissant ou non ?
true : la plage de donnée contient l'entete
1 : numéro d'index de la colonne qui sert comme deuxieme critère de tri
true : croissant ou non ?
2 : numéro d'index de la colonne qui sert comme troisieme critère de tri
true : croissant ou non ?

seuls les 2 premiers paramètres sont obligatoires ...
Dernière modification par ludovic le 09 juin 2009 10:48, modifié 1 fois.
version open office : 3.1.1
OS : Windows XP SP3
yberges
Membre OOrganisé
Membre OOrganisé
Messages : 65
Inscription : 14 mars 2009 12:17

Re: [Writer]faire un tri dans une colonne

Message par yberges »

hello j'ai creer une base + un formulaire
et je voudrais creer un bouton de trie (quand on clique sur la colone CP ca trie par ordre numérique les donnée par cette colone
le fichier est ici
http://dl.free.fr/vNUGCd9iW
Merci d'avance
open office 3.2 sous mac os x intel 10.5
ludovic
Membre hOOnoraire
Membre hOOnoraire
Messages : 190
Inscription : 24 nov. 2007 23:53

Re: [Writer]faire un tri dans une colonne

Message par ludovic »

dans ce cas, as tu installé sun report builder ?
c'est une extension d'open office grâce à laquelle tu peux faire des formulaires bien plus élaborés ...
notamment des regroupements et tri !
version open office : 3.1.1
OS : Windows XP SP3
yberges
Membre OOrganisé
Membre OOrganisé
Messages : 65
Inscription : 14 mars 2009 12:17

Re: [Writer]faire un tri dans une colonne

Message par yberges »

j'ai suivis ton conseil mais je trouve de tuto dessus pour comprendre le truc
Merci de ton aide
open office 3.2 sous mac os x intel 10.5
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 17187
Inscription : 03 mars 2006 16:02
Localisation : Venise verte

Re: [Writer]faire un tri dans une colonne

Message par jeanmimi »

hello j'ai creer une base + un formulaire
et je voudrais creer un bouton de trie
Dans ta base, il y a 3 formulaires, avec des contrôles de Table.
Dans lequel il te faudrait un tri ascendant sur le CP ?
LibreOffice : Version : 25.2.0.3 (x64)(20 février 2025)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
yberges
Membre OOrganisé
Membre OOrganisé
Messages : 65
Inscription : 14 mars 2009 12:17

Re: [Writer]faire un tri dans une colonne

Message par yberges »

dans listing merci
c'est sympa
open office 3.2 sous mac os x intel 10.5
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 17187
Inscription : 03 mars 2006 16:02
Localisation : Venise verte

Re: [Writer]faire un tri dans une colonne

Message par jeanmimi »

En modifiant le Formulaire Listing, en affichant la Grille dans un sous formulaire, le tri par CP, paramétré dans les propriétés du sous-formulaire, se fait directement à l'ouverture.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice : Version : 25.2.0.3 (x64)(20 février 2025)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
yberges
Membre OOrganisé
Membre OOrganisé
Messages : 65
Inscription : 14 mars 2009 12:17

Re: [Writer]faire un tri dans une colonne

Message par yberges »

oki j'ai trouver une solution qui me va bien !
j'ai une derniere question
comment faire pour que le champ recherche réagisse à la touche entrer ?
je m'explique quand on remplie le champ rechercher et qu'on fait entrer il passe dans le tableau il ne valide pas la recherche.
y a t il un moyen de rendre ca plus fluide ?
Merci

La modération vous a écrit: Autre question = autre fil
Histoire d'avoir une base de connaissances optimum où chaque problème a un titre ad hoc.

open office 3.2 sous mac os x intel 10.5