VB XL2007 plage filtrée

Le
le Nordiste
Bonjour,

Je désire connaitre la ligne visible haute et la ligne visible basse
aprés application d'un filtre.
Les lignes visibles sont souvent sur plusieurs "areas".

Plus précisément aprés le filtre je veux porter dans une seule colonn=
e
de ces lignes visibles une formule.
Et cela coince !

Merci d evotre aide.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
DanielCo
Le #23247511
Bonjour, la macro suivante affiche l'adresse de chaque plage :

Sub test()
Set plage = ActiveSheet.AutoFilter.Range.Offset(1)
Set plage = plage.Resize(plage.Rows.Count - 1)
Set plage = plage.SpecialCells(xlCellTypeVisible)
For i = 1 To plage.Areas.Count
MsgBox plage.Areas(i).Address
Next
End Sub

Cordialement.
Daniel

le Nordiste a écrit
Bonjour,

Je désire connaitre la ligne visible haute et la ligne visible basse
aprés application d'un filtre.
Les lignes visibles sont souvent sur plusieurs "areas".

Plus précisément aprés le filtre je veux porter dans une seule colonne
de ces lignes visibles une formule.
Et cela coince !

Merci d evotre aide.
le Nordiste
Le #23247491
MERCI ça marche,
reste plus qu'à extraire le numéro de la ligne haute et basse de
chaque "area"
le Nordiste
Le #23247621
On 31 mar, 09:52, le Nordiste
MERCI    ça marche,
reste plus qu'à extraire le numéro de la ligne haute et basse de
chaque "area"



Et je n'y arrive pas facilement :

une aide serait bienvenu.
DanielCo
Le #23248181
Sub test()
Set plage = ActiveSheet.AutoFilter.Range.Offset(1)
Set plage = plage.Resize(plage.Rows.Count - 1)
Set plage = plage.SpecialCells(xlCellTypeVisible)
For i = 1 To plage.Areas.Count
Haut = plage.Row
Bas = plage.Row + plage.Rows.Count - 1
MsgBox Haut
MsgBox Bas
Next
End Sub




On 31 mar, 09:52, le Nordiste
MERCI    ça marche,
reste plus qu'à extraire le numéro de la ligne haute et basse de
chaque "area"



Et je n'y arrive pas facilement :

une aide serait bienvenu.
isabelle
Le #23248271
bonjour le Nordiste,

Sub Filtre_PremiereEtDerniere()
Dim plg As Range, x As Variant, pr As String, dr As String
Set plg =
ActiveSheet.Range("_filterdatabase").SpecialCells(xlCellTypeVisible)
x = Split(plg.Address, ",")
If Range(x(0)).Count > 1 Then
pr = Range(Split(x(0), ":")(1)).Row ' premiere ligne filtrer
dr = Range(x(UBound(x))).Row ' derniere ligne filtrer
Else
pr = Range(x(1)).Row ' premiere ligne filtrer
dr = Range(x(UBound(x))).Row ' derniere ligne filtrer
End If
End Sub

isabelle
------------------------------------------------------------------

Le 2011-03-31 04:43, le Nordiste a écrit :
On 31 mar, 09:52, le Nordiste
MERCI ça marche,
reste plus qu'à extraire le numéro de la ligne haute et basse de
chaque "area"



Et je n'y arrive pas facilement :

une aide serait bienvenu.

MichD
Le #23248261
Bonjour,

En supposant que le filtre a été exécuté en Feuil1...

'----------------------------------
Sub test()
Dim Rg As Range
Dim PremièreLigne As Long
Dim DernièreLigne As Long

With Worksheets("Feuil1")
Set Rg = .Range("_FilterDatabase")
End With
Set Rg = Rg.Offset(1).Resize(Rg.Rows.Count - 1) _
.SpecialCells(xlCellTypeVisible)

With Rg.Areas
PremièreLigne = Range(.Item(1).Address). _
Cells(1, 1).Row
DernièreLigne = Range(.Item(.Count).Address). _
Cells(.Item(.Count).Rows.Count, 1).Row
End With
End Sub
'----------------------------------



MichD
--------------------------------------------
"le Nordiste" a écrit dans le message de groupe de discussion :


Bonjour,

Je désire connaitre la ligne visible haute et la ligne visible basse
aprés application d'un filtre.
Les lignes visibles sont souvent sur plusieurs "areas".

Plus précisément aprés le filtre je veux porter dans une seule colonne
de ces lignes visibles une formule.
Et cela coince !

Merci d evotre aide.
isabelle
Le #23248251
correction,

Sub Filtre_PremiereEtDerniere()
Dim plg As Range, x As Variant, pr As String, dr As String
Set plg =
ActiveSheet.Range("_filterdatabase").SpecialCells(xlCellTypeVisible)
x = Split(plg.Address, ",")
If Range(x(0)).Rows.Count > 1 Then
pr = "2" ' premiere ligne filtrer
dr = Range(x(UBound(x))).Row ' derniere ligne filtrer
Else
pr = Range(x(1)).Row ' premiere ligne filtrer
dr = Range(x(UBound(x))).Row ' derniere ligne filtrer
End If
End Sub


isabelle
------------------------------------------------------------------

Le 2011-03-31 09:17, isabelle a écrit :
bonjour le Nordiste,

Sub Filtre_PremiereEtDerniere()
Dim plg As Range, x As Variant, pr As String, dr As String
Set plg =
ActiveSheet.Range("_filterdatabase").SpecialCells(xlCellTypeVisible)
x = Split(plg.Address, ",")
If Range(x(0)).Count > 1 Then
pr = Range(Split(x(0), ":")(1)).Row ' premiere ligne filtrer
dr = Range(x(UBound(x))).Row ' derniere ligne filtrer
Else
pr = Range(x(1)).Row ' premiere ligne filtrer
dr = Range(x(UBound(x))).Row ' derniere ligne filtrer
End If
End Sub

isabelle
------------------------------------------------------------------

Le 2011-03-31 04:43, le Nordiste a écrit :
On 31 mar, 09:52, le Nordiste
MERCI ça marche,
reste plus qu'à extraire le numéro de la ligne haute et basse de
chaque "area"


Et je n'y arrive pas facilement :

une aide serait bienvenu.
Publicité
Poster une réponse
Anonyme