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 :

bloque sur un probleme de date


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Inscrit en
    Février 2010
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 45
    Par défaut bloque sur un probleme de date
    bonsoir
    je bloque sur un pb de date
    je veux filter les feuilles d'un classeur par l'intermediaire d'une cellule
    la colonne a filtrer et la cellule sont remplies a l'aide de formules
    et sont formatees "mmm,yy"
    la formule en A1 est ='F1'!A1 et col 9 =EDATUM(G6;H6)
    resultat j'ai par ex. en A1 Dec.11 ainsi que dans la col9
    j'ai essaye avec formula,text ect.. a la place de Value mais sans succes
    merci pour votre aide
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    With ws
        Rows("5:5").AutoFilter Field:=9, Criteria1:="=" & Range("a1").Value

  2. #2
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Bonjour,

    Il ne manque pas un point devant Rows et Range?
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  3. #3
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Bonsoir,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Range(.[I5], .Cells(.Rows.Count, 9).End(xlUp)).AutoFilter Field:=1, Criteria1:="=" & Format([A1], "m/d/yyyy")

  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
    Citation Envoyé par Daniel.C Voir le message
    Bonsoir,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Range(.[I5], .Cells(.Rows.Count, 9).End(xlUp)).AutoFilter Field:=1, Criteria1:="=" & Format([A1], "m/d/yyyy")
    il manque juste des . devant les .row et .range comme dit plus haut par Alain ... utiliser la feuille courante comme ici avec le [A1] provoque les mêmes erreurs que lorsqu'on utilise Range ou Row sans préciser la feuille..

  5. #5
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    il manque juste des . devant les .row et .range comme dit plus haut par Alain ... utiliser la feuille courante comme ici avec le [A1] provoque les mêmes erreurs que lorsqu'on utilise Range ou Row sans préciser la feuille..
    La modif (erreur de copier / coller) a été faite dans la minute qui a suivi le post initial

    Par contre, utiliser la syntaxe sans point est parfaitement licite quand il s'agît de la feuille courante.

  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
    Citation Envoyé par Daniel.C Voir le message
    La modif (erreur de copier / coller) a été faite dans la minute qui a suivi le post initial

    Par contre, utiliser la syntaxe sans point est parfaitement licite quand il s'agît de la feuille courante.
    Non... Travailler sans préciser la feuille concernée est toujours une source potentielle de bug.. De plus ici il ne s'agit pas dela feuille active voir le with..

  7. #7
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Je l'ai dit, l'oubli des points est une erreur de ma part. Ceci dit, la présence de la ligne :

    laisse le doute quant à l'intention de dalo02. Veut-il travailler avec cette feuille ou avec la feuille active ?

  8. #8
    Membre averti
    Inscrit en
    Février 2010
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 45
    Par défaut
    bonjour a tous
    je reprends mon pb et vous remercie pour votre aide
    j'ai essaye la formule de Daniel malheureusement sans succes
    je pense cela vient du formatage des cellules col et cellule en "mmm,yy"
    ou du fait que la cellule et la col a filtrer sont toutes 2 avec des formules????
    j'ai contourne le probleme en convertissant dans 1 autre colonne , les dates en standard-40858 pour le 1 nov 2011-et la pas de probleme.
    ca depanne
    mais j'aimerai bien savoir pourquoi ,histoire d'aller me coucher moins ......
    merci pour votre aide
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Rows("5:5").AutoFilter Field:=256, Criteria1:="=" & .Range("iu1").Value

  9. #9
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    @ bbil :
    Non... Travailler sans préciser la feuille concernée est toujours une source potentielle de bug.
    J'ai, dans mon classeur de macros personnelles, plusieurs macros destinées à s'exécuter sur la feuille active. Peux-tu me dire comment les modifier pour introduire les noms du classeur et de la feuille sur laquelle je veux agir ?

    De plus ici il ne s'agit pas dela feuille active voir le with
    C'est ce que nous supposons et c'est pourquoi j'ai modifié mon post initial. Cependant dalo02 n'a pas mis de point. Ou l'on suppose un oubli, ou il veut effectivement agir sur la feuille active.

    @dalo02 :

    Ton format est-il vraiment "mmm,yy" ? dans ce cas, essaie :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Range(.[I5], .Cells(.Rows.Count, 9).End(xlUp)).AutoFilter Field:=1, Criteria1:="=" & Format([A1], "mmm,yy")

  10. #10
    Membre Expert Avatar de ZebreLoup
    Homme Profil pro
    Ingénieur Financier
    Inscrit en
    Mars 2010
    Messages
    994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Financier
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 994
    Par défaut
    J'ai toujours eu le même souci avec les filtres automatiques dès qu'il ne s'agit pas de texte. Que ce soit des dates ou du numérique, impossible de mettre un critère qui marche, en formatant ou en mettant la valeur réelle.
    Quand tu le fais avec l'enregistreur de macro (ça faisait longtemps que je ne l'avais pas utilisé, celui-là ), ça ne marche pas non plus.

    J'ai toujours du chercher des solutions autre. Ne sachant pas quel est ton but, je ne peux pas t'aider sur ce point.

  11. #11
    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
    Bonjour,

    J'avais gardé dans mon souvenir que le filtre sur des dates marchait en utilisant un long comme critère ( avec fonction Clng) ... cependant cela ne fonctionne plus sous mon Excel 2003 ..?


    si ta cellule A1 et ta plage à tester sont dans la même feuille et utilise le même formatage de date tu peu écrire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Set ws = ActiveSheet ' N'utilise ActiveSheet qu'as l'initialisation...
    With ws
        .Range("A5").CurrentRegion.AutoFilter Field:=9, Criteria1:=.Range("A1").Text, Operator:=xlAnd
    Debug.Print CLng(.Range("A1").Value)
    End With

  12. #12
    Membre Expert Avatar de ZebreLoup
    Homme Profil pro
    Ingénieur Financier
    Inscrit en
    Mars 2010
    Messages
    994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Financier
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 994
    Par défaut
    Ne marche pas chez moi. J'avais retourné le problème dans tous les sens et finis par faire une passe sur les lignes et un hide sur les lignes concernées.

  13. #13
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Bonjour Zebreloup, tu réponds à qui, là ?

  14. #14
    Membre Expert Avatar de ZebreLoup
    Homme Profil pro
    Ingénieur Financier
    Inscrit en
    Mars 2010
    Messages
    994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Financier
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 994
    Par défaut
    Oui, désolé, ce n'était pas très clair, ni constructif.

    L'idée de bbil de passer par la valeur ou le texte directement d'un range ne marche pas non plus chez moi. dalo02 peut quand même tester, on ne sait jamais, ça peut venir d'une version d'Excel.

    Pour ce qui est du coté constructif. Si aucune solution ne marche, je préconise donc de mettre en place le filtre automatique sans option, puis de faire une passe sur toutes les lignes et de les masquer si elles ne répondent pas au critère. C'est bien sûr une solution de dernier recours.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Public Sub test()
        Dim ws As Worksheet
        Set ws = ActiveSheet 'ou autre
     
        Dim rg As Range
        Set rg = ws.Range("A5").CurrentRegion 'ou autre
     
        rg.AutoFilter
     
        Dim i As Integer
        For i = rg.Rows To 1 Step -1
            If rg.Cells(i, 9).Value <> ws.Range("A1").Value Then rg.Rows(i).EntireRow.Hide
        Next i
    End Sub

Discussions similaires

  1. Probleme de requete avec MAX sur champ de type date
    Par boutmos dans le forum Requêtes
    Réponses: 6
    Dernier message: 11/04/2013, 11h02
  2. [AC-2010] Petit probleme sur une periodicite de date
    Par kynder surprise dans le forum VBA Access
    Réponses: 2
    Dernier message: 31/07/2012, 12h47
  3. probleme de date sur sql server 2000
    Par tezergane dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 29/12/2009, 18h48
  4. probleme avec date sur windev
    Par ellay_tn dans le forum WinDev
    Réponses: 2
    Dernier message: 24/12/2008, 12h37
  5. Probleme de date sur access
    Par DjBeGi dans le forum Access
    Réponses: 3
    Dernier message: 29/05/2006, 19h00

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