OVH Cloud OVH Cloud

Numero de ligne filtrée

8 réponses
Avatar
Ritalou
Bonsoir à tous
un tableau de +/- 2000 lignes et +/- 10 col (Valeurs, texte)
une données dans la cel B502 de ce tableau
J'applique un filtre automatique sur une des col
il me reste 73 lignes visibles
le numero de ma ligne B502 est toujours : 502 !!!
mais est il possible de trouver la position de ma cel B502
dans ces 73 lignes visibles ?
cad dans cet exemple ma cel B502 est la 22 eme ligne visible
Par avance merci pour une idée ou solution
Ritalou
Excel & Win 2000

8 réponses

Avatar
michdenis
Bonjour Ritalou,

'----------------------------------
Sub LaLigne()

Dim Rg As Range, AdrCellule As String, Pos As Integer

AdrCellule = "B502"

On Error Resume Next
Set Rg = Range("_FilterDataBase") _
.SpecialCells(xlCellTypeVisible)
t = Split(Rg.Address(0, 0), ",")

For a = 0 To UBound(t)
If t(a) = AdrCellule Then
pos = a + 1
Exit For
End If
Next
If pos <> "" Then
MsgBox "ligne : " & pos
Else
MsgBox "pas trouvé"
End If

Set Rg = Nothing
End Sub
'----------------------------------


Salutations!



"Ritalou" a écrit dans le message de news:uYLFl%
Bonsoir à tous
un tableau de +/- 2000 lignes et +/- 10 col (Valeurs, texte)
une données dans la cel B502 de ce tableau
J'applique un filtre automatique sur une des col
il me reste 73 lignes visibles
le numero de ma ligne B502 est toujours : 502 !!!
mais est il possible de trouver la position de ma cel B502
dans ces 73 lignes visibles ?
cad dans cet exemple ma cel B502 est la 22 eme ligne visible
Par avance merci pour une idée ou solution
Ritalou
Excel & Win 2000
Avatar
chrisn
Bonsoir,

Ritalou a écrit dans le message de news:

un tableau de +/- 2000 lignes et +/- 10 col (Valeurs, texte)
une données dans la cel B502 de ce tableau
J'applique un filtre automatique sur une des col
il me reste 73 lignes visibles
le numero de ma ligne B502 est toujours : 502 !!!
mais est il possible de trouver la position de ma cel B502
dans ces 73 lignes visibles ?


Avec la fonction nb.si
=nb.si(b1:b502;b502)


--
chrisn
mettre le bon fai, libertysurf pour me répondre

Avatar
michdenis
Bonjour Ritalou,

Ceci c'est suffisant : Renseigne la variable : AdrCellule du numéro de ligne à chercher

'------------------------
Sub LaLigne()

Dim Rg As Range, AdrCellule As Integer
Dim A as Long

AdrCellule = 502

Set Rg = Range("_FilterDataBase") _
.SpecialCells(xlCellTypeVisible)
On Error Resume Next
For Each c In Rg
a = a + 1
If c.Row = AdrCellule Then
MsgBox "Ligne : " & a
Exit Sub
End If
Next
Set Rg = Nothing
End Sub
'------------------------


Salutations!



"michdenis" a écrit dans le message de news:
Bonjour Ritalou,

'----------------------------------
Sub LaLigne()

Dim Rg As Range, AdrCellule As String, Pos As Integer

AdrCellule = "B502"

On Error Resume Next
Set Rg = Range("_FilterDataBase") _
.SpecialCells(xlCellTypeVisible)
t = Split(Rg.Address(0, 0), ",")

For a = 0 To UBound(t)
If t(a) = AdrCellule Then
pos = a + 1
Exit For
End If
Next
If pos <> "" Then
MsgBox "ligne : " & pos
Else
MsgBox "pas trouvé"
End If

Set Rg = Nothing
End Sub
'----------------------------------


Salutations!



"Ritalou" a écrit dans le message de news:uYLFl%
Bonsoir à tous
un tableau de +/- 2000 lignes et +/- 10 col (Valeurs, texte)
une données dans la cel B502 de ce tableau
J'applique un filtre automatique sur une des col
il me reste 73 lignes visibles
le numero de ma ligne B502 est toujours : 502 !!!
mais est il possible de trouver la position de ma cel B502
dans ces 73 lignes visibles ?
cad dans cet exemple ma cel B502 est la 22 eme ligne visible
Par avance merci pour une idée ou solution
Ritalou
Excel & Win 2000
Avatar
ru-th
Salut

Function PosList(a As Range, b As Range)
e = 1
For Each d In a
If Rows(d.Row).Hidden = False Then
If d.Address = b.Address Then GoTo fin
e = e + 1
End If
Next
fin:
PosList = e
End Function

à utiliser sous la forme
=poslist(A:A;A13)

--
a+
rural thierry
Veaux et Broutards d'Anjou
Wicasa on kin nape yapi inahni yo (à l'essai)

"Ritalou" a écrit dans le message de
news:uYLFl%
Bonsoir à tous
un tableau de +/- 2000 lignes et +/- 10 col (Valeurs, texte)
une données dans la cel B502 de ce tableau
J'applique un filtre automatique sur une des col
il me reste 73 lignes visibles
le numero de ma ligne B502 est toujours : 502 !!!
mais est il possible de trouver la position de ma cel B502
dans ces 73 lignes visibles ?
cad dans cet exemple ma cel B502 est la 22 eme ligne visible
Par avance merci pour une idée ou solution
Ritalou
Excel & Win 2000





Avatar
Bourby
bonjour,

on peut utiliser la fonction sous-total,
qui réagit au masquage..
Attention, il faut une colonne qui ne possède pas de cellules vides;
au besoin, ajouter une colonne et la remplir avec des 1, ou avec la fonction
=LIGNE().
Mettons qu'il s'agit de la colonne A.

Dans la colonne B, on pourra alors avoir un n° de ligne qui réagit
au masquage; p.ex. en B12, si la 1ère ligne de la liste est la ligne 3:
-(avec des 1 en colonne A): =SOUS.TOTAL(9; B$3:B12)
-(avec les n° de ligne en colonne A): =SOUS.TOTAL(2; B$3:B12)

Ces formules peuvent être "tirées" de la ligne 3 à la ligne n.

Est-ce que ça convient?

Bourby

"Ritalou" a écrit dans le message news:
uYLFl#
Bonsoir à tous
un tableau de +/- 2000 lignes et +/- 10 col (Valeurs, texte)
une données dans la cel B502 de ce tableau
J'applique un filtre automatique sur une des col
il me reste 73 lignes visibles
le numero de ma ligne B502 est toujours : 502 !!!
mais est il possible de trouver la position de ma cel B502
dans ces 73 lignes visibles ?
cad dans cet exemple ma cel B502 est la 22 eme ligne visible
Par avance merci pour une idée ou solution
Ritalou
Excel & Win 2000





Avatar
Ritalou
Merci à vous tous pour ces nombreuse solutions
je teste
Ritalou
Excel & Win 2000

Ritalou a écrit dans le message :
uYLFl#
Bonsoir à tous
un tableau de +/- 2000 lignes et +/- 10 col (Valeurs, texte)
une données dans la cel B502 de ce tableau
J'applique un filtre automatique sur une des col
il me reste 73 lignes visibles
le numero de ma ligne B502 est toujours : 502 !!!
mais est il possible de trouver la position de ma cel B502
dans ces 73 lignes visibles ?
cad dans cet exemple ma cel B502 est la 22 eme ligne visible
Par avance merci pour une idée ou solution
Ritalou
Excel & Win 2000





Avatar
Ritalou
Apres plusieur tests
----------------------------------------------
1) Michdenis :
C'etait dans l'idée de la macro que je constuisais
par contre avec ta macro il me semble que l'on passe par toutes les
col
et cela fausse le resultat
par contre peus tu m'expliquer --> "Range("_FilterDataBase") <--- je
ne connais pas cette syntaxe
Voici la macro que j'ai construite
Sub MaMacro()
Dim Cel, Cpt, NbVal: Cpt = 0: NbVal = 0
For Each Cel In
Range("B7:B1941").SpecialCells(xlCellTypeVisible)
Cpt = Cpt + 1: If Cel.Row = 1327 Then NbVal = Cpt
Next
MsgBox NbVal
End Sub
----------------------------------------------
2)Chrisn
=nb.si(b1:b502;b502) me renvoi 1
=nb.si(b1:b1939;b1939) me renvoi 1
que fais je pas bien ?
----------------------------------------------
3)Thierry
Pour ameliorer le temps de reponse j'ai pris "B7:B1941"
par contre pour le deuxieme argument "A13" , s'il c'est une
des lignes masquées alors poslist = le total des lignes visibles
mes retouches sont elles ok ?
Function PosList(a As Range, b As Range)
e = 1: fin2 = 999
For Each d In a
If Rows(d.Row).Hidden = False Then
If d.Address = b.Address Then
fin2 = 0: GoTo fin: End If
e = e + 1
End If
Next
fin:
If fin2 = 999 Then e = 0
PosList = e
End Function
----------------------------------------------
4)Bourby
Je n'ai pas tres bien compris ta solution
tu ne reinventes pas le "=SOUS.TOTAL(3;A:A)-1" ??
eclaire moi un peu plus
Merci de nouveau pour vos reponse et vos eventuels eclaircissements
Ritalou



Ritalou a écrit dans le message :
uYLFl#
Bonsoir à tous
un tableau de +/- 2000 lignes et +/- 10 col (Valeurs, texte)
une données dans la cel B502 de ce tableau
J'applique un filtre automatique sur une des col
il me reste 73 lignes visibles
le numero de ma ligne B502 est toujours : 502 !!!
mais est il possible de trouver la position de ma cel B502
dans ces 73 lignes visibles ?
cad dans cet exemple ma cel B502 est la 22 eme ligne visible
Par avance merci pour une idée ou solution
Ritalou
Excel & Win 2000





Avatar
chrisn
"Ritalou" a écrit dans le message de news:

----------------------------------------------
2)Chrisn
=nb.si(b1:b502;b502) me renvoi 1
=nb.si(b1:b1939;b1939) me renvoi 1
que fais je pas bien ?
----------------------------------------------


Difficile à dire, sinon que cette fonction est sensible aux blancs
mais pas à la casse. Ainsi "car" = "Car" mais "car" >< "car "
Chez moi elle marche très bien sur des tableaux filtrés, dont elle
se moque d'ailleurs du filtre : elle renvoie les valeurs même si
celles-ci ne sont pas montrées par le filtre actuel.

--
chrisn
mettre le bon fai, libertysurf pour me répondre