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

Macros et VBA Excel Discussion :

[VBA Excel] Selection.autofilter


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 364
    Par défaut [VBA Excel] Selection.autofilter
    Bonjour à tous,

    Je me trouve devant un problème dont je ne comprends pas l'origine.
    Voila je fais une petite application sur Excel avec du code VBA.
    Sur cette application je laisse deux cellules pour que l'utilisateur puisse saisir deux dates.
    Puis l'utilisateur va cliquer sur un bouton. Sur ce, je vais exécuter ma procédure qui va filtrer un tableau qui se trouve sur un auter onglet.

    J'applique mon filtre sur les deux dates données par l'utilisateur
    Voila le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Selection.AutoFilter Field:=17, Criteria1:="<" & date_fin, Operator:=xlAnd _
     , Criteria2:=">" & date_deb
    Bon déjà là petit souci, lorsque la date commence par 0 (exemple 01/12/06). Lors de l'exécution du filtre, la date est remplacé par Excel en 12/01/06.
    Je précise que j'ai mis les cellules où l'utilisateur saisie les dates au format date " *jj/mm/aaaa ".

    Pour pallier ce premier problème, j'ai mis ce petit bout de code, qui peut sans d'outre être amélioré :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    If (Left(date_deb, 1) = "0") Then
        mois_an = Right(date_deb, 7)
        mois = Left(mois_an, 2)
        date_deb = mois + "/" + Left(date_deb, 3) + Right(date_deb, 4)
    End If
    If (Left(date_fin, 1) = "0") Then
        mois_an = Right(date_fin, 7)
        mois = Left(mois_an, 2)
        date_fin = mois + "/" + Left(date_fin, 3) + Right(date_fin, 4)
    End If
    Puis je relance mon filtre, là les critères sont correctes mais le filtre ne me renvoie rien. Pourtant lorsque je termine l'exécution de ma procédure, je vais dans le champs où j'effectue mon filtre. Je fais personnalisé, mes critères sont correctes. Le plus drôle c'est lorsque je mets Ok pour sortir du filtre personnalisé, celui-ci s'effectue.

    Je sais pas si vous avez une idée pour résoudre ce problème mais toutes propositions sont les biens venues.

  2. #2
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    elle sort d'ou ta variable date_deb

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 364
    Par défaut
    Citation Envoyé par bbil
    elle sort d'ou ta variable date_deb
    En fait je passe par une procédure

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Call Filtre(Range("A1").text,Range("A2").text)
    Les deux cellules passées en paramètre sont les cellules qui contiennent les dates.

    Puis voila le prototype de ma procédure

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sub Filtre (date_deb As String, date_fin As String)
    Voila en fait, d'où viennent ces variables

  4. #4
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    ben si c'est une date utilise date comme type de donnée... !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Sub Filtre (date_deb As date , date_fin As date )
    !! une date n'est pas une chaine de caractére !!

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 364
    Par défaut
    Citation Envoyé par bbil
    ben si c'est une date utilise date comme type de donnée... !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Sub Filtre (date_deb As date , date_fin As date )
    !! une date n'est pas une chaine de caractére !!

    Oui mais si je fais sa, il va y avoir une incompatibilité de type avec ce que je passe en paramètre lors de l'appel à ma procédure et ce que va recevoir ma procédure

  6. #6
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    ben change les parametres

Discussions similaires

  1. [VBA-EXCEL] Selection d'une colonne, problème de syntaxe
    Par legillou dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 23/02/2007, 14h09
  2. [VBA-Excel] Selection du texte d'un label
    Par marsupilami34 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 07/11/2006, 15h38
  3. [VBA-excel] Selection multiple de ligne
    Par DVano dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 18/10/2006, 12h32
  4. [VBA] [Excel] Selection des feuilles
    Par KOFJCH dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 15/12/2005, 18h18
  5. [VBA-E] Sélection feuilles sous excel
    Par Mystic eyes dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 05/02/2004, 13h27

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