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: - [email protected] 
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 à [email protected] 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

Répondre à