Macro calc : comment filtrer avec "contient"

Bonjour,
Je pose un filtre par macro mais je n'arrive pas à trouver l'opérateur permettant de filtrer les données selon le critère "contient".

J'ai trouvé pour les opérateurs classiques EQUAL, NOT_EQUAL,...

J'ai essayé avec l'égalité et le libellé entouré de * mais cela ne fonctionne pas

Quelqu'un aurait-il une idée ?

Merci d'avance

Claude

Bonjour Claude,

-----Message d'origine-----
De : claude [mailto:pref-open-office@haute-garonne.gouv.fr]
Envoyé : lundi 27 juillet 2015 12:01
À : libreoffice
Objet : [fr-users] Macro calc : comment filtrer avec "contient"

Bonjour,
Je pose un filtre par macro mais je n'arrive pas à trouver l'opérateur
permettant de filtrer les données selon le critère "contient".

J'ai trouvé pour les opérateurs classiques EQUAL, NOT_EQUAL,...

J'ai essayé avec l'égalité et le libellé entouré de * mais cela ne
fonctionne pas

Quelqu'un aurait-il une idée ?

Est-ce que la réponse se trouverait ici:
http://api.libreoffice.org/docs/idl/ref/namespacecom_1_1sun_1_1star_1_1sheet
_1_1FilterOperator2.html

Cordialement,
Michel

Bonjour,

Merci mais que j'initialise l'opérateur avec
   com.sun.star.sheet.FilterOperator.CONTAINS
ou
    12
cela ne fonctionne pas.
Quand après passage de la macro je regarde mon filtre c'est toujours le signe = qui est dans la condition
Idem pour ne contient pas....

Cela fonctionne avec tous les opérateurs jusqu'à 11

je suis en version 4.1.6.2 mais j'ai testé en version 4.3.4.1 et j'ai le même résultat.

Merci quand même de t'être penché sur mon problème

Claude

-------- Message original --------
*Sujet: *[INTERNET] RE: [fr-users] Macro calc : comment filtrer avec "contient"
*Pour : *'libreoffice' <users@fr.libreoffice.org>

Bonjour

claude wrote

Merci mais que j'initialise l'opérateur avec
   com.sun.star.sheet.FilterOperator.CONTAINS
ou
    12
cela ne fonctionne pas.

Ben non parce qu'il faut utiliser :
com.sun.star.sheet.TableFilterField2 et
com.sun.star.sheet.FilterOperator2.CONTAINS

Par exemple :

sub FiltrerPlageContient()

dim oDataRange as object, oFiltre as object
dim ChampFiltre2(0) As New com.sun.star.sheet.TableFilterField2

' Accès à une plage de données par son nom
oDataRange = thiscomponent.DatabaseRanges.getByName("Plage2")
' Crée un descripteur de filtre vide sur la plage référencée
oFiltre = oDataRange.referredCells.createFilterDescriptor(true)

with ChampFiltre2(0)
  .Field = 0
  .IsNumeric = false
  .Operator = com.sun.star.sheet.FilterOperator2.CONTAINS
  .stringValue = "a"
end with

with oFiltre 'Les paramètres généraux
  .ContainsHeader = true 'La première ligne = en-tête de colonnes
  .UseRegularExpressions = false 'N'utilise pas d'expressions régulières
  .filterFields2 = ChampFiltre2
end with

oDataRange.referredCells.filter(oFiltre) 'Applique le filtre

end sub

Cordialement
Pierre-Yves