![]() |
| 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é. | |||||||
|
|||||||
| OpenOffice Forum d'entraide sur OpenOffice.org. Avant de poster : La F.A.Q OpenOffice |
![]() |
|
|
Outils de la discussion |
|
|
#1 (permalink) |
|
Invité de passage
![]() Date d'inscription: septembre 2008
Messages: 2
|
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
- 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 |
|
|
|
|
|
#2 (permalink) |
|
Invité de passage
![]() Date d'inscription: septembre 2008
Messages: 2
|
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
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
|
|
|
|
|
![]() |
![]() |
||
[Macro Calc]Autofiltre sur bloc de cellules nommées
|
||
| Outils de la discussion | |
|
|