Extraire sur une liste suivant un critere

Le
magic-dd
Bonsoir tous,

n'aarivant pas ce que je souhaite faire, je fais donc appel la
communaut.

j'ai une liste avec des noms et des activites

j'aimerais extraire de la liste les noms suivant un critere ( le
chiffre 4)

donc tout ceux qui ont 4 seront inscrit dans une nouvelle plage de
cellule

je vous joins un fichier xls, qui sera plus simple comprendre

merci d'avance

http://cjoint.com/?ADoxbANieNC
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
MichD
Le #23285271
Bonjour,

Tu peux utiliser un filtre automatique.

Colles ceci dans un module du fichier que tu as publié et
observe le résultat :

'-------------------------------------------
Sub test()

Dim Rg As Range, A As Integer, Sh As Worksheet

Set Sh = Worksheets("Feuil2")

Application.ScreenUpdating = False
With Sh
With .Range("B2:I8")
A = 2
'Pour chacune des colonnes, tu appliques un filtre auto.
For Each c In Array(6, 7, 8)
With .Columns(c)
.AutoFilter field:=1, Criteria1:=4
.SpecialCells(xlCellTypeVisible).Copy Sh.Cells(20, A)
A = A + 3
.AutoFilter
End With
Next
End With
End With
Application.ScreenUpdating = True
End Sub
'-------------------------------------------



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


Bonsoir à tous,

n'aarivant pas à ce que je souhaite faire, je fais donc appel à la
communauté.

j'ai une liste avec des noms et des activites

j'aimerais extraire de la liste les noms suivant un critere ( le
chiffre 4)

donc tout ceux qui ont 4 seront inscrit dans une nouvelle plage de
cellule

je vous joins un fichier xls, qui sera plus simple à comprendre

merci d'avance

http://cjoint.com/?ADoxbANieNC
MichD
Le #23285341
Bonjour,

Utilise cette macro pour obtenir ce que tu désires dans le fichier publié.


Sub test()

Dim Rg As Range, A As Integer, Sh As Worksheet

Set Sh = Worksheets("Feuil2")

On Error Resume Next
Application.ScreenUpdating = False
With Sh
Set Rg = .Range("B2:I8")
A = 2
'Pour chacune des colonnes, tu appliques un filtre auto.
For Each c In Array(6, 7, 8)
With Rg
.AutoFilter field:=c, Criteria1:=4
.Columns(1).SpecialCells(xlCellTypeVisible).Copy Sh.Cells(20, A)
Sh.Cells(20, A) = .Item(1, c)
End With
A = A + 3
.ShowAllData
Next
Rg.AutoFilter
End With
Application.ScreenUpdating = True
End Sub


MichD
--------------------------------------------
magic-dd
Le #23285431
bonjour
merci pour cette reponse, quelle joie au reveil

maintennt je vais etre ch*** mais est il possible de mettre 2 ou 3
criteres

merci de m'expliquer la macro car je ne maitrise pas trop ces filtres

bonne journée

On 14 avr, 23:54, "MichD"
Bonjour,

Utilise cette macro pour obtenir ce que tu désires dans le fichier publ ié.

Sub test()

Dim Rg As Range, A As Integer, Sh As Worksheet

Set Sh = Worksheets("Feuil2")

On Error Resume Next
Application.ScreenUpdating = False
With Sh
    Set Rg = .Range("B2:I8")
        A = 2
        'Pour chacune des colonnes, tu appliques un filtre auto.
    For Each c In Array(6, 7, 8)
        With Rg
            .AutoFilter field:=c, Criteria1:=4
            .Columns(1).SpecialCells(xlCellTypeVisible).Copy Sh.Cells(20, A)
            Sh.Cells(20, A) = .Item(1, c)
        End With
        A = A + 3
        .ShowAllData
    Next
    Rg.AutoFilter
End With
Application.ScreenUpdating = True
End Sub

MichD
--------------------------------------------
MichD
Le #23286081
La macro fait simplement un filtre automatique à tour de rôle sur chaque
colonne des 3 sports utilisant un critère : = 4

Avec un filtre auto, tu es limité à 2 critères... sinon tu dois utiliser le filtre élaboré.
Regarde dans l'aide VBA, tu places le curseur sur autofilter et tu appuies sur F1.

Ceci "For Each c In Array(6, 7, 8)" détermine la colonne de la plage définie par la
variable Rg sur laquelle s'exécute le filtre.

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


bonjour
merci pour cette reponse, quelle joie au reveil

maintennt je vais etre ch*** mais est il possible de mettre 2 ou 3
criteres

merci de m'expliquer la macro car je ne maitrise pas trop ces filtres

bonne journée

On 14 avr, 23:54, "MichD"
Bonjour,

Utilise cette macro pour obtenir ce que tu désires dans le fichier publié.

Sub test()

Dim Rg As Range, A As Integer, Sh As Worksheet

Set Sh = Worksheets("Feuil2")

On Error Resume Next
Application.ScreenUpdating = False
With Sh
Set Rg = .Range("B2:I8")
A = 2
'Pour chacune des colonnes, tu appliques un filtre auto.
For Each c In Array(6, 7, 8)
With Rg
.AutoFilter field:=c, Criteria1:=4
.Columns(1).SpecialCells(xlCellTypeVisible).Copy Sh.Cells(20, A)
Sh.Cells(20, A) = .Item(1, c)
End With
A = A + 3
.ShowAllData
Next
Rg.AutoFilter
End With
Application.ScreenUpdating = True
End Sub

MichD
--------------------------------------------
magic-dd
Le #23286351
merci michD

je vais rester sur mon seul critere en faisant jouer par rapport à une
cellule

merci pour tout et bon week end
Publicité
Poster une réponse
Anonyme