XL 2016 Ajouter la fonction AutoFilter à une macro qui fait l'import des données

YANNISE

XLDnaute Junior
Bonjour le forum,
j'ai une macro qui fait l'import des données depuis la feuille 2 vers la feuille 1 selon une date proposée sur la feuille 1 "colonne C26"
je voulais ajouter à ma macro la fonction "AutoFilter" quand je saisis une date sur la feuille 1 colonne C26 appliquer le filtre sur la colonne D2 dans le tableau à la feuille 2 pour le mois qui est relative à la date sur la feuille 1 colonne C26.

1685628630713.png

ainsi je veux au moment de l'import si la date est en rouge dans la feuille 2 alors la mise en forme de police sur la feuille 1 devient rouge.

mon fichier exemple en PJ, je vous remercie d'avance
 

Pièces jointes

  • test-qr-230601.xlsm
    68.2 KB · Affichages: 5
Solution
Bonsoir à toutes & à tous bonsoir @YANNISE
Voilà ma proposition, en tenant compte du fait que tu utilises un tableau structuré :
VB:
Sub Importer_New()

     Dim Wsh1 As Worksheet, Wsh2 As Worksheet, LO As ListObject, Ligne As Long
     Dim RgDate As Range, Cible As Range
     
     'Les objets utilisés
     Set Wsh1 = Feuil1                       'La feuille Cible
     Set Wsh2 = Feuil2                       'La feuille source (contenant le tableau structuré)
     Set RgDate = Wsh1.[C26]                 'La cellule contenant la date recherchée
     Set Cible = Wsh1.[D26:G26]              'La plage cible de l'import
     Set LO = Wsh2.ListObjects("Tab_JRS")    'Le tableau structuré source à filtrer
     
     'Recherche de la ligne...

AtTheOne

XLDnaute Impliqué
Supporter XLD
Bonsoir à toutes & à tous bonsoir @YANNISE
Voilà ma proposition, en tenant compte du fait que tu utilises un tableau structuré :
VB:
Sub Importer_New()

     Dim Wsh1 As Worksheet, Wsh2 As Worksheet, LO As ListObject, Ligne As Long
     Dim RgDate As Range, Cible As Range
     
     'Les objets utilisés
     Set Wsh1 = Feuil1                       'La feuille Cible
     Set Wsh2 = Feuil2                       'La feuille source (contenant le tableau structuré)
     Set RgDate = Wsh1.[C26]                 'La cellule contenant la date recherchée
     Set Cible = Wsh1.[D26:G26]              'La plage cible de l'import
     Set LO = Wsh2.ListObjects("Tab_JRS")    'Le tableau structuré source à filtrer
     
     'Recherche de la ligne contenat la date RgDate
     On Error GoTo Erreur
     Ligne = WorksheetFunction.Match(RgDate.Value2, LO.ListColumns("Date").Range, 0)
     
     'Recopie des colonnes nommées S, Q, D, C de la ligne trouvée
     Cible.Value = LO.ListColumns("S").Range.Rows(Ligne).Resize(, 4).Value
     
     'Filtre sur le mois de RgDate
     LO.Range.AutoFilter Field:=LO.ListColumns("Date").Index, _
                         Operator:=xlFilterValues, _
                         Criteria2:=Array(1, Format(WorksheetFunction.EoMonth(RgDate, 0), "m/d/yyyy"))

     Exit Sub
Erreur:
         Cible.ClearContents
         MsgBox "Sorry, date non trouvée."
     
End Sub
Voir le fichier joint
 

Pièces jointes

  • test-qr-230601 AtTheOne.xlsm
    73.6 KB · Affichages: 3

Discussions similaires

Statistiques des forums

Discussions
312 207
Messages
2 086 248
Membres
103 164
dernier inscrit
axelheili2