XL 2016 Dernière valeur d'une colonne filtrée

Claudy

XLDnaute Accro
Bonjour à tous ,
je voudrais afficher en B1, la valeur de ma colonne B3:B500 filtrée...
un peu dans le genre :

Function derlig(col As String)
derlig = Range(col & Range(col & "65536").End(xlUp).Row)
End Function

Mais cette fonction me donne la dernière valeur de la colonne....avec ou sans filtre.

Merci d'avance,
Claudy
 

Claudy

XLDnaute Accro
Bonjour Claudy,
avec une boucle
VB:
For k = [B5000].End(3).Row To 3 Step -1
If Rows(k).Hidden = False Then [B1] = Cells(k, 2): Exit For
Next
Bruno

Ok merci mais j'ai fait avec ceci:
Sub filtre()
On Error Resume Next
If ActiveCell.Value = "" Then
Exit Sub
End If
If Range("H1") = "" Then
Range("H1") = ActiveCell.Value
Selection.AutoFilter
ActiveSheet.Range("$A$2:$F$11").AutoFilter Field:=2, Criteria1:=ActiveCell.Value
Else
ActiveSheet.Range("$A$2:$F$500").AutoFilter Field:=2
Range("H1") = ""
End If
End Sub

A+
Claudy
 

Staple1600

XLDnaute Barbatruc
Bonsoir le fil, le forum

Une proposition pour identifier la dernière ligne filtrée
VB:
Sub DerniereLigneFiltree()
Dim t
With ActiveSheet.AutoFilter.Range
    On Error Resume Next
    t = Split(.Offset(1, 0).Resize(.Rows.Count - 1, .Columns.Count).Cells.SpecialCells(12).Address, "$")
    On Error GoTo 0
End With
mess = "Numéro de la dernière ligne filtrée: " & t(UBound(t)) & Chr(13)
mess = mess & "Adresse Cellule: " & Cells(t(UBound(t)), "A").Address(0, 0) & Chr(13)
mess = mess & "Valeur de la Cellule: " & Cells(t(UBound(t)), "A").Value
MsgBox mess
End Sub
NB: Si on veut la colonne B, on remplace A par B dans le code
 

Discussions similaires

Réponses
7
Affichages
292

Statistiques des forums

Discussions
311 720
Messages
2 081 904
Membres
101 834
dernier inscrit
Jeremy06510