MerciBonjour à tous,
A essayer
JHA
La source est mise sous forme de tableau structuré et une unique formule extrait toutes les lignes concernées puisque tu demandais d'extraire et non de filtrer...Bonjour Chris. Merci beaucoup mais je n'ai pas trop saisi la méthode.
Bonjour Chris, ce que tu as envoyé c'est exactement ce je voulais, sauf que j'aimerai connaitre comment tu as fait. Merci encoreLa source est mise sous forme de tableau structuré et une unique formule extrait toutes les lignes concernées puisque tu demandais d'extraire et non de filtrer...
Private Sub Worksheet_Change(ByVal Target As Range)
Dim cible, tablo, resu(), i&, x As Variant, n&
cible = [C2]
If FilterMode Then ShowAllData 'si la feuille est filtrée
tablo = Range("A3:B" & Cells(Rows.Count, 1).End(xlUp).Row) 'matrice, plus rapide
ReDim resu(1 To UBound(tablo), 1 To 1)
For i = 1 To UBound(tablo)
x = tablo(i, 2)
x = Replace(x, "h", ":")
If IsDate(x) Then x = CDate(x)
If x < cible Then
n = n + 1
resu(n, 1) = tablo(i, 1)
End If
Next
'---restitution---
Application.EnableEvents = False
[C3].Resize(UBound(resu)) = resu
Application.EnableEvents = True
End Sub
Cooooool merci beaucoupBonjour Yacine, le fil,
Un p'tit coup de VBA :
La macro se déclenche quand on modifie ou valide une cellule quelconque.VB:Private Sub Worksheet_Change(ByVal Target As Range) Dim cible, tablo, resu(), i&, x As Variant, n& cible = [C2] tablo = Range("A3:B" & Cells(Rows.Count, 1).End(xlUp).Row) 'matrice, plus rapide ReDim resu(1 To UBound(tablo), 1 To 1) For i = 1 To UBound(tablo) x = tablo(i, 2) x = Replace(x, "h", ":") If IsDate(x) Then x = CDate(x) If x < cible Then n = n + 1 resu(n, 1) = tablo(i, 1) End If Next '---restitution--- Application.EnableEvents = False If FilterMode Then ShowAllData 'si la feuille est filtrée [C3].Resize(UBound(resu)) = resu Application.EnableEvents = True End Sub
A+
Toooop merci+++ c'est ce que je recharchaisBonjour,
La même méthode que Chris a utilisée