Forum des développeurs  

Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé.
Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Autres Logiciels > OpenOffice

OpenOffice Forum d'entraide sur OpenOffice.org. Avant de poster : La F.A.Q OpenOffice

Réponse
 
Outils de la discussion
Vieux 20/09/2008, 14h08   #1 (permalink)
Invité de passage
 
Date d'inscription: septembre 2008
Messages: 2
Par défaut [Macro Calc]Autofiltre sur bloc de cellules nommées

Bonjour à tous,

Sur une feuille Calc contenant des données :

- j'ai créé deux blocs de cellules avec des noms différents (Global est le nom de la feuille de calcul) :
* Sel_01 regroupant les cellules $Global.$K$10:$K$510
* Sel_02
regroupant les cellules $Global.$AI$10:$AI$510

- j'ai créé deux macros (associées à des boutons) permettant de faire, pour chaque sélection, un Autofiltre permettant de cacher les lignes contenant des cellules vides dans la sélection

Voici les macros (on ne peut plus simple) :
Code :
Rem Attribute VBA_ModuleType=VBADocumentModule
Option VBASupport 1

Sub Affiche_hygiene_L()
Range("Sel_01").Select
Selection.AutoFilter Field:=1, Criteria1:="<>"
End Sub

Sub Affiche_sel_ov_bov_L()
Range("Sel_02").Select
Selection.AutoFilter Field:=1, Criteria1:="<>"
End Sub
C'est là que le problème se pose :
- la première macro fonctionne au quart de poil :
* le bloc est bien sélectionné
* le tri est fait : seules les cellules non vides sont affichées
* la zone de liste apparaît bien en haut de la sélection

- quant à la seconde macro, elle réagit bizarrement :
* le bloc est bien sélectionné
* MAIS le tri se fait sur une autre colonne et la zone de liste apparaît sur cette autre colonne

Si je supprime cette autre colonne, le tri sera sur une autre, mais jamais sur la bonne !!!

J'ajoute que j'ai une autre macro qui me permet de supprimer toute sélection et filtre sur la feuille. Je lance cette macro avant toute autre pour bien supprimer les sélections précédentes.

Je suis resté au VBA car je n'ai pas trouvé comment faire un auto filtre en Basic Ooo sans sélectionner une colonne complète (mes zones ne jouent que sur des portions de colonnes).

Si quelqu'un a déjà rencontré ce problème ou dispose de LA solution, je suis prêt à lui accorder ma reconnaissance éternelle et ce, jusqu'à la septième génération

J'ai fait une recherche sur le site pour essayer de trouver ma solution, mais sans succès ; j'espère malgré tout ne pas faire redondance avec un autre post.

Bon courage à tous et longue vie à ce site.

Dernière modification par korbine ; 20/09/2008 à 15h18
korbine est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 20/09/2008, 18h05   #2 (permalink)
Invité de passage
 
Date d'inscription: septembre 2008
Messages: 2
Par défaut

Re,

ça faisait pratiquement une semaine que je cherchais ma solution avant que je me décide à poster, en désespoir de cause... et je viens de trouver une solution que je ne résiste pas à vous faire partager :

Code :
Dim rangeAddress As new com.sun.star.table.CellRangeAddress
Dim FiltreProp(0) as new com.sun.star.sheet.TableFilterField
Dim Filtre As Object
Filtre = ThisComponent.DatabaseRanges.getByName("zone_travail").FilterDescriptor

FiltreProp(0).Operator = com.sun.star.sheet.FilterOperator.NOT_EMPTY 'valeur EQUAL ou NOT_EMPTY...

Filtre.setFilterFields(FiltreProp()) ' applique les propriétés du filtre

thisComponent.CurrentController.ActiveSheet.getCellRangeByName("Sel_01").filter(Filtre)'Filtre
Je sais que ce n'est pas le code le plus propre qu'on puisse trouver, mais il a l'avantage de répondre totalement à mes besoins.

De plus, je n'ai même pas l'inconvénient d'avoir la liste de sélection de l'auto-filtre affichée (une source d'erreurs en moins).

Si ça peut également servir à quelqu'un, ce sera parfait.

Bon courage à tous
korbine est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 25/09/2008, 13h52   #3 (permalink)
Invité de passage
 
Date d'inscription: septembre 2008
Âge: 34
Messages: 6
Par défaut

c'est plutôt une question qu'une réponse,

est-il possible lors de l'autofiltre de filtrer automatiquement (dans la macro) ?
patous_74 est déconnecté   Envoyer un message privé Réponse avec citation
NEWS WINDOWSF.A.Qs WINDOWSTUTORIELS WINDOWSFREEWARES WINDOWSLIVRES WINDOWS

Réponse

Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Autres Logiciels > OpenOffice



Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide


Fuseau horaire GMT +1. Il est actuellement 04h45.


Publiez vos articles, tutoriels et cours et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones. Nous contacter
Copyright 2000-2009 www.developpez.com - Legal informations