Filtres sur Dates (Colonnes B ou C)

roby

XLDnaute Occasionnel
Bonjour le Forum
Ayant cherché sur le forum des solutions concernant des filtres sur les dates, je ne trouve pas de solution liée à mon problème posé.

Dans ce tableau, j'aimerai afficher les personnes qui rentrent dans les critères suivants:

- Entrent les dates (G3) et (G5).
- Dates suivant la colonne indiquée en (K5) pour la feuille Listing.

Je vous remercie d'avance pour les solutions apportées.

Bonne journée.
 

Pièces jointes

  • Tableau de Bord (1).zip
    20.8 KB · Affichages: 32

kjin

XLDnaute Barbatruc
Re : Filtres sur Dates (Colonnes B ou C)

Bonjour,
Au risque de me (nous) répéter : évitez les cellules fusionnées !!!
Donc j'ai un peu chamboulé ton tableau en PJ
Code:
Sub zzzz()
Dim col%, deb#, fin#, L%, i%, j%
Dim rngfilt As Range, rng As Range
col = Asc(Range("H4")) - 64
deb = Range("G3")
fin = Range("G4")
L = 8
Range("C8:G26").ClearContents
With Feuil1
    .AutoFilterMode = False
    .Range("A1").AutoFilter Field:=col, Criteria1:=">=" & deb, Operator:=xlAnd, Criteria2:="<=" & fin
    Set rngfilt = .AutoFilter.Range
    With rngfilt
        On Error Resume Next
        Set rng = .Offset(1).Resize(.Rows.Count - 1, 13).SpecialCells(xlCellTypeVisible)
        On Error GoTo 0
        If Not rng Is Nothing Then
            With rng
                For i = 1 To rng.Areas.Count
                    For j = 1 To .Areas(i).Rows.Count
                        Cells(L, 3) = .Areas(i).Cells(j, 7)
                        Cells(L, 4) = .Areas(i).Cells(j, col)
                        Cells(L, 5) = .Areas(i).Cells(j, 11)
                        Cells(L, 6) = .Areas(i).Cells(j, 12)
                        Cells(L, 7) = .Areas(i).Cells(j, 13)
                        L = L + 1
                    Next
                Next
            End With
        Else
            MsgBox "rien à afficher"
        End If
    End With
    .AutoFilterMode = False
End With
End Sub
A+
kjin
 

Pièces jointes

  • roby.xls
    38 KB · Affichages: 42
  • roby.xls
    38 KB · Affichages: 42
  • roby.xls
    38 KB · Affichages: 45
Dernière édition:

roby

XLDnaute Occasionnel
Re : Filtres sur Dates (Colonnes B ou C)

Bonjour Kjin, le Forum

J'ai pris note de ta remarque.
Merci pour cette solution rapide, je vais l'adapter au fichier original.

Je vous souhaite à tous un bon après midi.
Roby


Comment fait-on pour mettre [Resolu]
 

adel53

XLDnaute Occasionnel
Re : Filtres sur Dates (Colonnes B ou C)

Voici ma solution

Alors pour utiliser il faut appuyer sur le bouton bider pour vider le tableau puis en fonction de tes dates en appuyant sur filtreDate tu auras les bonnes données.
 

Pièces jointes

  • Tableau de Bord (2).xlsm
    50.7 KB · Affichages: 36
  • Tableau de Bord (2).xlsm
    50.7 KB · Affichages: 38
  • Tableau de Bord (2).xlsm
    50.7 KB · Affichages: 36

roby

XLDnaute Occasionnel
Re : Filtres sur Dates (Colonnes B ou C)

Re

Ok c'est ce que je pensais. Merci

j'ai essayé de l'adapter au fichier original mais pas de données à afficher.
Pourtant il devrait afficher 9 occurences pour la semaine 47 avec "B".

Copie des 2 feuilles incriminées.
 

Pièces jointes

  • Tableau de Bord (3).zip
    50.8 KB · Affichages: 34

roby

XLDnaute Occasionnel
Re : Filtres sur Dates (Colonnes B ou C)

Re

Adel53, ta solution me fait perdre les données de la feuille "Listing" lorsque je clique sur Vider le tableau.
En fait la feuille "Listing" est la BD ou l'on doit aller chercher les infos et "Tableau de Bord" doit afficher le filtre en quelque sorte.
 

adel53

XLDnaute Occasionnel
Re : Filtres sur Dates (Colonnes B ou C)

les seules données qui s'effacent sont celle de l'onglet temp qui comme son nom l'indique sont temporaire
j'ai tout revérifie ça fonctionne
 

Pièces jointes

  • Tableau de Bord (2).xlsm
    50.7 KB · Affichages: 36
  • Tableau de Bord (2).xlsm
    50.7 KB · Affichages: 45
  • Tableau de Bord (2).xlsm
    50.7 KB · Affichages: 45

kjin

XLDnaute Barbatruc
Re : Filtres sur Dates (Colonnes B ou C)

Bonsoir,
Pour les dates, il faut cocher l'option calendrier depuis 1904.
Bon dieu mais c'est bien sûr
Et je n'ai pas trouvé d'autre solution que de retrancher 1462 jours et chez moi ça baigne...
Code:
Sub Bouton5_Clic()
Dim col%, deb#, fin#, L%, i%, j%
Dim rngfilt As Range, rng As Range
col = Asc(Range("J5")) - 64
deb = Range("G3") - 1462 'modif ici
fin = Range("G5") - 1462 'modif ici
L = 8
Range("C8:J26").ClearContents
With Sheets("Listing")
    .AutoFilterMode = False
    .Range("A1").AutoFilter Field:=col, Criteria1:=">=" & deb, Operator:=xlAnd, Criteria2:="<=" & fin
    Set rngfilt = .AutoFilter.Range
    With rngfilt
        On Error Resume Next
        Set rng = .Offset(1).Resize(.Rows.Count - 1, 13).SpecialCells(xlCellTypeVisible)
        On Error GoTo 0
        If Not rng Is Nothing Then
            With rng
                For i = 1 To rng.Areas.Count
                    For j = 1 To .Areas(i).Rows.Count
                        Cells(L, 3) = .Areas(i).Cells(j, 7)
                        Cells(L, 6) = CDate(.Areas(i).Cells(j, col)) 'modif ici
                        Cells(L, 7) = .Areas(i).Cells(j, 11)
                        Cells(L, 8) = .Areas(i).Cells(j, 12)
                        Cells(L, 9) = .Areas(i).Cells(j, 13)
                        L = L + 1
                    Next
                Next
            End With
        Else
            MsgBox "Désolé! Il n'y a rien à afficher"
        End If
    End With
    .AutoFilterMode = False
End With
End Sub
A+
kjin
 

Discussions similaires

Statistiques des forums

Discussions
312 305
Messages
2 087 083
Membres
103 458
dernier inscrit
Vulgaris workshop