Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

1ere ligne filtrée

7 réponses
Avatar
LucienMarcel
Bonjour à toute la communauté,
Sous Excel 2003 et VBA, je voudrais utiliser le filtre automatique pour
traiter une grosse base de données. Pour exporter les données vers une autre
feuille, j'ai besoin de récupérer les valeurs des premières colonne de la
première ligne filtrée qui ne porte jamais le même n° de ligne évidemment
selon le filtre. Quel code VBA utiliser pour récupérer ces valeurs de la
première du filtre ?
Merci d'avance
--
LucienMarcel

7 réponses

Avatar
MichDenis
Bonjour Lucien,

En vba, il existe une constante "xlTop10Items" qui te permet
de récupérer les 10 premières lignes d'un filtre.
C'est l'équivalent de faire un filtre automatique "personnalisé"
en choisissant 10 premiers items.

RAnge("A:A").AutoFilter Field:=1, Criteria1:="5", Operator:=xlTop10Items

Si tu as besoin d'un nombre de ligne mois que ça :

Voici une petite procédure que tu peux adapter à ton environnement :

'------------------------------------------
Sub Denis()

Dim Rg As Range
Dim A As Long
Dim Nb As Long

Nb = 8 'nombre de lignes du filtre à copier
Application.ScreenUpdating = False
With Worksheets("Feuil1") 'Nom feuille où sont les données
With .Range("A1:F" & .Range("A65536").End(xlUp).Row)
.AutoFilter Field:=1, Criteria1:="5"
Set Rg = .Range("_FilterDataBase")
Set Rg = Rg.Offset(1).Resize(Rg.Rows.Count - 1). _
SpecialCells(xlCellTypeVisible)
'Nb enregistrements trouvés
x = Application.Subtotal(9, Rg(1))
End With
End With
If Nb > x Then Nb = x
For A = 1 To Nb
'Adapter le nom de la feuille où les données seront copiées
Rg.Rows(A).Copy Worksheets("Feuil2").Range("A" & A)
Next
Worksheets("Feuil1").Range("A1").AutoFilter
Application.ScreenUpdating = True
End Sub
'------------------------------------------


"LucienMarcel" a écrit dans le message de groupe
de discussion :
Bonjour à toute la communauté,
Sous Excel 2003 et VBA, je voudrais utiliser le filtre automatique pour
traiter une grosse base de données. Pour exporter les données vers une autre
feuille, j'ai besoin de récupérer les valeurs des premières colonne de la
première ligne filtrée qui ne porte jamais le même n° de ligne évidemment
selon le filtre. Quel code VBA utiliser pour récupérer ces valeurs de la
première du filtre ?
Merci d'avance
--
LucienMarcel
Avatar
JB
Bonjour,

http://boisgontierjacques.free.fr/pages_site/FiltreAuto.htm#PremiereValeur

JB

On 20 mai, 14:49, LucienMarcel
wrote:
Bonjour à toute la communauté,
Sous Excel 2003 et VBA, je voudrais utiliser le filtre automatique pour
traiter une grosse base de données. Pour exporter les données vers un e autre
feuille, j'ai besoin de récupérer les valeurs des premières colonne de la
première ligne filtrée qui ne porte jamais le même n° de ligne évidemment
selon le filtre. Quel code VBA utiliser pour récupérer ces valeurs de la
première du filtre ?
Merci d'avance
--
LucienMarcel


Avatar
FFO
Salut à toi

Soit Feuil2 en ligne 2 la recopie
Cette ligne de code devrait convenir :

pour la recopie de la 1° ligne visible
Range("A" & Range("A2",
"A65535").SpecialCells(xlCellTypeVisible).Row).EntireRow.Copy
Sheets("Feuil2").Range("A2")

Pour la recopie de toutes les lignes visibles :

Range("A2", "A65535").SpecialCells(xlCellTypeVisible).EntireRow.Copy
Sheets("Feuil2").Range("A2")

Dis moi !!!!!
Avatar
FFO
Rebonjour à toi

Pour une ligne lambda la 10° par exemple ce code :

Ligne = Range("A2", "A65535").SpecialCells(xlCellTypeVisible).Row
For i = 1 To Range("A2", "A65535").SpecialCells(xlCellTypeVisible).Count
If i = 10 Then
Range("A" & Ligne).EntireRow.Copy Sheets("Feuil2").Range("A3")
Exit For
End If
Ligne = Range("A" & Ligne + 1, "A65535").SpecialCells(xlCellTypeVisible).Row
Next

Un petit plus éventuellement !!!!
Avatar
MichDenis
Petite correction :

Dans la procédure du message initial,
remplacer ceci :
'----------------------------------
For A = 1 To Nb
'Adapter le nom de la feuille où les données seront copiées
Rg.Rows(A).Copy Worksheets("Feuil2").Range("A" & A)
Next
'----------------------------------

PAR :
'----------------------------------
For Each r In Rg.Rows
A = A + 1
r.Copy Worksheets("Feuil2").Range("A" & A)
If A = Nb Then Exit For
Next
'----------------------------------




"MichDenis" a écrit dans le message de groupe de discussion :

Bonjour Lucien,

En vba, il existe une constante "xlTop10Items" qui te permet
de récupérer les 10 premières lignes d'un filtre.
C'est l'équivalent de faire un filtre automatique "personnalisé"
en choisissant 10 premiers items.

RAnge("A:A").AutoFilter Field:=1, Criteria1:="5", Operator:=xlTop10Items

Si tu as besoin d'un nombre de ligne mois que ça :

Voici une petite procédure que tu peux adapter à ton environnement :

'------------------------------------------
Sub Denis()

Dim Rg As Range
Dim A As Long
Dim Nb As Long

Nb = 8 'nombre de lignes du filtre à copier
Application.ScreenUpdating = False
With Worksheets("Feuil1") 'Nom feuille où sont les données
With .Range("A1:F" & .Range("A65536").End(xlUp).Row)
.AutoFilter Field:=1, Criteria1:="5"
Set Rg = .Range("_FilterDataBase")
Set Rg = Rg.Offset(1).Resize(Rg.Rows.Count - 1). _
SpecialCells(xlCellTypeVisible)
'Nb enregistrements trouvés
x = Application.Subtotal(9, Rg(1))
End With
End With
If Nb > x Then Nb = x
For A = 1 To Nb
'Adapter le nom de la feuille où les données seront copiées
Rg.Rows(A).Copy Worksheets("Feuil2").Range("A" & A)
Next
Worksheets("Feuil1").Range("A1").AutoFilter
Application.ScreenUpdating = True
End Sub
'------------------------------------------


"LucienMarcel" a écrit dans le message de groupe
de discussion :
Bonjour à toute la communauté,
Sous Excel 2003 et VBA, je voudrais utiliser le filtre automatique pour
traiter une grosse base de données. Pour exporter les données vers une autre
feuille, j'ai besoin de récupérer les valeurs des premières colonne de la
première ligne filtrée qui ne porte jamais le même n° de ligne évidemment
selon le filtre. Quel code VBA utiliser pour récupérer ces valeurs de la
première du filtre ?
Merci d'avance
--
LucienMarcel
Avatar
isabelle
salut LucienMarcel,

With Sheets("Feuil1").Range("A1")
.CurrentRegion.SpecialCells(xlCellTypeVisible).Copy
Sheets("Feuil2").Range("A" &
Sheets("Feuil2").Range("A65536").End(xlUp).Row + 1)
End With

isabelle

LucienMarcel a écrit :
Bonjour à toute la communauté,
Sous Excel 2003 et VBA, je voudrais utiliser le filtre automatique pour
traiter une grosse base de données. Pour exporter les données vers une autre
feuille, j'ai besoin de récupérer les valeurs des premières colonne de la
première ligne filtrée qui ne porte jamais le même n° de ligne évidemment
selon le filtre. Quel code VBA utiliser pour récupérer ces valeurs de la
première du filtre ?
Merci d'avance



Avatar
Corto
Bonjour LucienMarcel,

Set PremiereLigne = ActiveSheet.AutoFilter.Range.Offset(1, 0). _
Resize(RowSize:¬tiveSheet.AutoFilter.Range.Rows.Count - 1). _
SpecialCells(xlCellTypeVisible).Rows(1)

Corto

LucienMarcel a écrit :
Bonjour à toute la communauté,
Sous Excel 2003 et VBA, je voudrais utiliser le filtre automatique pour
traiter une grosse base de données. Pour exporter les données vers une autre
feuille, j'ai besoin de récupérer les valeurs des premiè res colonne de la
première ligne filtrée qui ne porte jamais le même n° de ligne évidemment
selon le filtre. Quel code VBA utiliser pour récupérer ces va leurs de la
première du filtre ?
Merci d'avance