Discussion:
Position première ligne filtrée
(trop ancien pour répondre)
Pascal
2006-11-17 11:17:01 UTC
Permalink
Bonjour,

En VBA, après filtrage d'un tableau (code VBA déjà écrit) comment
positionner la cellule active sur la première ligne filtrée ?
--
PB
MichDenis
2006-11-17 11:50:09 UTC
Permalink
Sur une plage filtré (filtre automatique)

For Each c In Range("_FilterDataBase").SpecialCells(xlCellTypeVisible)
If c.Row <> 1 Then
c.Select
Exit For
End If
Next




"Pascal" <***@discussions.microsoft.com> a écrit dans le message de news:
FD32B058-00AA-407F-ABBF-***@microsoft.com...
Bonjour,

En VBA, après filtrage d'un tableau (code VBA déjà écrit) comment
positionner la cellule active sur la première ligne filtrée ?
--
PB
JB
2006-11-17 12:06:11 UTC
Permalink
Bonjour,

Range("_FilterDataBase").SpecialCells(xlCellTypeVisible).Cells(1,
1).Select

JB
Post by MichDenis
Sur une plage filtré (filtre automatique)
For Each c In Range("_FilterDataBase").SpecialCells(xlCellTypeVisible)
If c.Row <> 1 Then
c.Select
Exit For
End If
Next
Bonjour,
En VBA, après filtrage d'un tableau (code VBA déjà écrit) comment
positionner la cellule active sur la première ligne filtrée ?
--
PB
MichDenis
2006-11-17 12:19:08 UTC
Permalink
| Range("_FilterDataBase").SpecialCells(xlCellTypeVisible).Cells(1,1).Select

Ceci s'applique seulement le demandeur veut sélectionner la première cellule
(ligne d'étiquette du filtre) et dans ce cas, seulement ceci aurait suffit :
Range("_FilterDataBase")(1,1).select

Si le demandeur veut avoir la première ligne de résultats du filtre auto. ce n'est
pas cette ligne de code qui va lui donner.
JB
2006-11-17 13:19:34 UTC
Permalink
Cette macro positionne également sur la ligne de titre:

For Each c In Range("_FilterDataBase").SpecialCells(xlCellTypeVisible)
If c.Row <> 1 Then
c.Select
Exit For
End If
Next

JB
Post by MichDenis
| Range("_FilterDataBase").SpecialCells(xlCellTypeVisible).Cells(1,1).Select
Ceci s'applique seulement le demandeur veut sélectionner la première cellule
Range("_FilterDataBase")(1,1).select
Si le demandeur veut avoir la première ligne de résultats du filtre auto. ce n'est
pas cette ligne de code qui va lui donner.
MichDenis
2006-11-17 13:42:05 UTC
Permalink
Ce message pourrait être inapproprié. Cliquez pour l'afficher.
Pascal
2006-11-17 12:14:01 UTC
Permalink
Je n'utilise pas un filtre automatique mais un filtre élaboré avec filtrage
sur place...

Cette macro ne fonctionne donc pas...
--
PB
Post by MichDenis
Sur une plage filtré (filtre automatique)
For Each c In Range("_FilterDataBase").SpecialCells(xlCellTypeVisible)
If c.Row <> 1 Then
c.Select
Exit For
End If
Next
Bonjour,
En VBA, après filtrage d'un tableau (code VBA déjà écrit) comment
positionner la cellule active sur la première ligne filtrée ?
--
PB
MichDenis
2006-11-17 12:23:40 UTC
Permalink
Sur ta plage où tu as exécutée ton filtre élaboré :

Exemple :

With Range("A1:G50")
For Each r In .SpecialCells(xlCellTypeVisible).Rows
If r.Row <> 1 Then
If r.EntireRow.Hidden = False Then
r.Cells(1, 1).Select
Exit For
End If
End If
Next
End With




"Pascal" <***@discussions.microsoft.com> a écrit dans le message de news:
8E31C587-0994-4DDA-BDAE-***@microsoft.com...
Je n'utilise pas un filtre automatique mais un filtre élaboré avec filtrage
sur place...

Cette macro ne fonctionne donc pas...
--
PB
Post by MichDenis
Sur une plage filtré (filtre automatique)
For Each c In Range("_FilterDataBase").SpecialCells(xlCellTypeVisible)
If c.Row <> 1 Then
c.Select
Exit For
End If
Next
Bonjour,
En VBA, après filtrage d'un tableau (code VBA déjà écrit) comment
positionner la cellule active sur la première ligne filtrée ?
--
PB
JB
2006-11-17 13:14:00 UTC
Permalink
ligne = 2
Do While Range("_FilterDataBase").Rows(ligne).Hidden
ligne = ligne + 1
Loop
Range("_FilterDataBase").Cells(ligne, 1).Select

http://cjoint.com/?lronEKym0s

JB
Post by Pascal
Je n'utilise pas un filtre automatique mais un filtre élaboré avec filtrage
sur place...
Cette macro ne fonctionne donc pas...
--
PB
Post by MichDenis
Sur une plage filtré (filtre automatique)
For Each c In Range("_FilterDataBase").SpecialCells(xlCellTypeVisible)
If c.Row <> 1 Then
c.Select
Exit For
End If
Next
Bonjour,
En VBA, après filtrage d'un tableau (code VBA déjà écrit) comment
positionner la cellule active sur la première ligne filtrée ?
--
PB
Pascal
2006-11-17 14:09:01 UTC
Permalink
Merci à tous les 2.

J'ai appliqué la réponse de JB, c'est parfait !
--
PB
Post by JB
ligne = 2
Do While Range("_FilterDataBase").Rows(ligne).Hidden
ligne = ligne + 1
Loop
Range("_FilterDataBase").Cells(ligne, 1).Select
http://cjoint.com/?lronEKym0s
JB
Post by Pascal
Je n'utilise pas un filtre automatique mais un filtre élaboré avec filtrage
sur place...
Cette macro ne fonctionne donc pas...
--
PB
Post by MichDenis
Sur une plage filtré (filtre automatique)
For Each c In Range("_FilterDataBase").SpecialCells(xlCellTypeVisible)
If c.Row <> 1 Then
c.Select
Exit For
End If
Next
Bonjour,
En VBA, après filtrage d'un tableau (code VBA déjà écrit) comment
positionner la cellule active sur la première ligne filtrée ?
--
PB
Mélanie au travail
2008-10-02 15:00:02 UTC
Permalink
J'aimerai avoir la formule plus clair car j'ai de la difficulté à la comprendre

Merci
Post by JB
ligne = 2
Do While Range("_FilterDataBase").Rows(ligne).Hidden
ligne = ligne + 1
Loop
Range("_FilterDataBase").Cells(ligne, 1).Select
http://cjoint.com/?lronEKym0s
JB
Post by Pascal
Je n'utilise pas un filtre automatique mais un filtre élaboré avec filtrage
sur place...
Cette macro ne fonctionne donc pas...
--
PB
Post by MichDenis
Sur une plage filtré (filtre automatique)
For Each c In Range("_FilterDataBase").SpecialCells(xlCellTypeVisible)
If c.Row <> 1 Then
c.Select
Exit For
End If
Next
Bonjour,
En VBA, après filtrage d'un tableau (code VBA déjà écrit) comment
positionner la cellule active sur la première ligne filtrée ?
--
PB
Loading...