Date: prev next · Thread: first prev next last
2015 Archives by date, by thread · List index


Bonjour 

Voici une nouvelle question envoyée à l'aide du formulaire de demande d'aide 
(http://fr.libreoffice.org/get-help/poser-une-question/).
Si vous répondez, merci de penser à utiliser la fonction "répondre à tous" de votre logiciel de 
courrier électronique de façon que le demandeur reçoive une copie de votre réponse.


Email: - christian.rabiller@free.fr 
Sujet: - macro calc 
Question: - Bonjour,
J'avais inclus dans mon document openoffice la macro suivante qui ne fonctionne pas sous 
libreoffice.
Pouvez-vous m'indiquer les changements qui ont été opérés car aucune erreur n'apparait, mais le 
filtre n'est pas réalisé.
Merci de votre attention.
option explicit

    sub PysFilter

    Const PysNumFeuille = 0                     'Numérotation commence à zéro => 1ère feuille
    Const PysColDeb = 0                        'Ibid.
    Const PysColFin = 3
    Const PysLigDeb = 0
    Const PysLigFin = 5

    dim PysFeuille as object, PysPlage as object, PysFiltre as object, PysDataRange as object, i as 
integer
    dim PysChampFiltre(0) As New com.sun.star.sheet.TableFilterField   

    PysFeuille = thisComponent.Sheets.getByIndex(PysNumFeuille)            'Accès à la feuille dont 
le numéro est en constante
    PysPlage = PysFeuille.getCellRangeByPosition(PysColDeb,PysLigDeb,PysColFin,PysLigFin)   'Accès 
à la plage concernée

    'Ci-dessous réinitialise le filtre éventuellement déjà posé sur la plage
    PysFiltre= PysPlage.createFilterDescriptor(true)
    PysPlage.filter(PysFiltre)

    for each PysDataRange in thiscomponent.DatabaseRanges            'Boucle sur toutes les plages 
de données
                                                       'Si porte sur la même plage
       if PysDataRange.DataArea.Sheet = PysNumFeuille and _
          PysDataRange.DataArea.StartColumn = PysColDeb and _
          PysDataRange.DataArea.EndColumn = PysColFin and _
          PysDataRange.DataArea.StartRow = PysLigDeb and _
          PysDataRange.DataArea.EndRow = PysLigFin then
             PysFiltre = PysDataRange.FilterDescriptor      'Accès aux paramètres du filtre
             with PysFiltre                           'Les paramètres généraux
                .ContainsHeader = true                  'La première ligne = en-tête de colonnes
                .CopyOutputData = false                  'Ne copie pas le résultat ailleurs
                .IsCaseSensitive = false               'Ne pas respecter la casse
                .UseRegularExpressions = false            'N'utilise pas d'expressions régulières
             end with

    'Ci-dessous les paramètres par colonne (ici une seule colonne de filtre)      
             PysChampFiltre(0).Field = 1                'Le nom est en colonne B
             PysChampFiltre(0).Operator = com.sun.star.sheet.FilterOperator.EQUAL
             PysChampFiltre(0).StringValue = "BERTHO"
             PysFiltre.setFilterFields(PysChampFiltre())      'Passe les param. "colonnes" au filtre
             PysPlage.filter(PysFiltre)                  'Applique le filtre
       end if
    next PysDataRange

    end sub 
 


-- 
Envoyez un mail à users+unsubscribe@fr.libreoffice.org pour savoir comment vous désinscrire
Les archives de la liste sont disponibles à http://listarchives.libreoffice.org/fr/users/
Tous les messages envoyés sur cette liste seront archivés publiquement et ne pourront pas être 
supprimés

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.