IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

API, COM et SDKs Delphi Discussion :

Filtres excel 2007


Sujet :

API, COM et SDKs Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2011
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 51
    Par défaut Filtres excel 2007
    Bonjour,
    je sais filtrer sur une colonne avec 1 seul critère de recherche:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      excel.sheets[1].range['A1'].autofilter(4,'=texte1');
    -> filtrage sur la colonne 4 (D) avec pour critère le texte "texte1".

    Maintenant, je voudrais passer 3 critères en paramètres. Par exemple
    texte1 et texte2 et texte3

    J'ai essayé tout un tas de combinaison mais je n'y arrive pas.

    L'enregistreur de macro excel me donne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ActiveSheet.Range("$A$1:$I$4785").AutoFilter Field:=4, Criteria1:=Array( _
            "texte1", "texte2", "texte3"), Operator:=xlFilterValues
    J'ai essayé avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
      Var v : olevariant;
    ...
    v := vararraycreate([0,1,2],varvariant);
      v[0] := '=texte1';
      v[1] := '=texte2';
      v[2] := '=texte3';
      excel.sheets[1].range['A1'].autofilter(4,v);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
      Var v : olevariant;
    ...
    v := vararraycreate([0,1,2],varvariant);
      v[0] := 'texte1';
      v[1] := 'texte2';
      v[2] := 'texte3';
      excel.sheets[1].range['A1'].autofilter(4,v);
    pas d'erreur de compilation mais toujours un seul texte comme critère : 'texte3'
    J'ai essayé aussi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    excel.sheets[1].range['A1'].autofilter(4,vararrayof(['=texte1','=texte2','=texte3']));
    et aussi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    excel.sheets[1].range['A1'].autofilter(4,vararrayof(['texte1','texte2','texte3']));
    Pas d'erreur de compilation mais toujours texte3 comme filtre. Le dernier de la liste a chaque fois !
    Là je bloque !!!!!.

    Merci d'avance pour le temps passé a me répondre.

  2. #2
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 083
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 083
    Par défaut
    selon la MSDN excel.range.autofilter, il n'y aurait que deux critères possibles à lié par un opérateur

    tente
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     excel.sheets[1].range['A1'].autofilter(4,'=texte1',xlOr,'=texte2');
    Après, tu dois passer à AdvancedFilter
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2011
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 51
    Par défaut
    Merci Mr ShaiLeTroll,
    je vais regarder du coté d'Advancedfilter. Je n'oublierai pas de mettre une solution et RESOLU ou peut être de reposer une question sur Advancedfilter.

  4. #4
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2011
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 51
    Par défaut
    Me revoilà,
    j'ai réussi le filtrage sur + de 2 critères mais ce n'est pas tout a fait la méthode que je voudrais employer. Je m'explique !

    le code qui marche:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    excel.sheets[1].range['A1:D5'].advancedfilter(1,excel.sheets[1].range['E1:E4']);
    -> je cherche dans la zone 'a1:d5' les critères de recherche situés en E1:E4 avec le filtrage en place.

    Je suis obligé d'envoyer un objet Range pour les critères. J'ai donc fait une colonne E avec la même entête que la colonne C (celle ou je veux filtrer) et sous l'entête en E2 E3 E4 j'ai mis les critères de recheche et cela marche parfaitement.

    Y aurait-il une solution autre pour ne pas ecrire de colonne E et envoyer cette zone en paramètre directement dans le code a la place
    excel.sheets[1].range['E1:E4']

  5. #5
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2011
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 51
    Par défaut
    Bon,
    pas de réponse , je mets Résolu...
    Merci pour advancedfilter ShaiLeTroll.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. filtre automatique excel 2007
    Par franckjoane dans le forum API, COM et SDKs
    Réponses: 0
    Dernier message: 03/07/2012, 14h40
  2. lecture items d'un filtre excel 2007
    Par franckMenant dans le forum API, COM et SDKs
    Réponses: 0
    Dernier message: 11/02/2012, 17h08
  3. excel 2007 filtres de fichiers
    Par casefayere dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 09/06/2008, 14h13
  4. Automation Excel 2007 ?
    Par WebPac dans le forum Delphi
    Réponses: 4
    Dernier message: 11/12/2006, 09h28
  5. Faire fonctionner des objets d'Excel 2007 sur Excel 2003 ?
    Par brunoperel dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 08/12/2006, 20h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo