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 :

Macro filtre automatique


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2017
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Mars 2017
    Messages : 13
    Par défaut Macro filtre automatique
    Bonjour à tous,

    J'ai une macro pour filtre auto qui me pose un léger soucis.
    J'ai 3 critères différents dans ce filtre mais je n'arrive pas à filtrer les dates.

    Le fichier source possède des dates au format "0.00" avant d'éviter le mélange date FR et américaine, du coup le problème se pose dans la macro suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
     
        Dim n&, j&, ln%, i%, k%, conseil, tablo()
     
    If Not Intersect(Target, Me.Range("q28:q" & ln)) Is Nothing Then
            manager = "alain.dupont"
            date_du_jour = Format(Now, "dd/mm/yyyy")
     
            If Target.Row = ln Then
                For i = 28 To ln - 1
                    conseil = conseil & ";" & Me.Cells(i, 1)
                Next i
            Else
                conseil = ";" & Me.Range("A" & Target.Row)
            End If
            conseil = Split(conseil, ";")
            With Worksheets("Stock Activités")
                n = .Range("L" & .Rows.Count).End(xlUp).Row
                For j = 3 To n
                    If .Cells(j, 15) = manager And .Cells(j, 14) < date_du_jour Then
                        For i = 1 To UBound(conseil)
                            If .Cells(j, 11) = conseil(i) Then Exit For
                        Next i
                        If i <= UBound(conseil) Then
                            k = k + 1: ReDim Preserve tablo(2 To 14, 1 To k)
                            For i = 2 To 14
                                tablo(i, k) = .Cells(j, i)
                            Next i
                        End If
                    End If
                Next j
            End With
            With Worksheets("Liste Activités")
                .Range("B2").Resize(k, 13).Value = WorksheetFunction.Transpose(tablo)
                .Visible = xlSheetVisible
                .Activate
            End With
        End If
    End Sub
    Le filtre auto se fait sans la condition de date.
    Auriez une piste pour palier à ce problème ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If .Cells(j, 15) = manager And .Cells(j, 14) < date_du_jour Then
    Merci d'avance pour votre aide
    Sophie

  2. #2
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Ta variable date_du_jour n'est pas une date mais une chaine de caractères.
    Il n'est donc pas possible de l'utiliser pour faire une comparaison.

    Tu devrais plutôt utiliser quelque chose comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
            Dim date_du_jour As Date
            date_du_jour = Now()
    Si dans les cellules de ta colonne 14 se trouvent de VRAIES dates, tu n'auras pas de soucis entre les formats français et américains.

Discussions similaires

  1. Arrêt d'une macro lors de l'application d'un filtre automatique
    Par slu974 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 05/05/2014, 11h31
  2. [XL-2007] Macro filtre automatique données multiples dans une cellule +Problème si cellule vide
    Par jocky34000 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 29/04/2012, 05h36
  3. [XL-2003] Filtre automatique par macro pour champ date et heure
    Par jedineofr dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 27/06/2011, 15h37
  4. Création macro (filtre automatique et sous-totaux)
    Par emmath dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 26/05/2008, 23h41
  5. problème macro et filtre automatique par une variable texte
    Par Drozo dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 28/08/2007, 09h05

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