1ere ligne filtrée

Le
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
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
MichDenis
Le #19375091
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" 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
JB
Le #19375081
Bonjour,

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

JB

On 20 mai, 14:49, 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 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


FFO
Le #19375111
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 !!!!!
FFO
Le #19375241
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 !!!!
MichDenis
Le #19375231
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"
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" 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
isabelle
Le #19375461
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



Corto
Le #19375451
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



Publicité
Poster une réponse
Anonyme