Sélection de ligne avec données

Bonjour à tous,

Je dois pour faciliter mon travail filtrer de grosses base de données selon des critères précis.

J'ai un problème lorsque je dois sélectionner chaque ligne ayant une valeur de 60 ou plus à la case z et le copier dans la feuille 2 à partir de la case a2.

Peut etre que suprimer ou masquer les ligne ayant une valeur de moins de 60 à la case z serait plus simple

Je précise aussi que chaque semaine ma base de donné aura un nombre de ligne différent. Je colle dans ma feille 1 les données qui me vienne d'un autre département et je filtre selon les groupe et type de dossier. Jusqu'à cette étape aucun problème (merci enregistreur).

Je suis vraiment un débutant mais avec l'enregistreur de macro j'arrive a me débrouiller mais pas pour ce "filtre".

Merci bcp.

Bonjour et bienvenue,

Merci de joindre un petit fichier à ta demande pour illustrer tes propos.

Cdlt.

j'ai un problème lorsque je dois sélectionner chaque ligne ayant une valeur de 60 ou plus à la case z et le copier dans la feuille 2 à partir de la case a2.

est ce que le problème vient du filtre

ou bien vient il de copier le résultat du filtre dans la feuille 2 à partir de la case a2. ?

est ce que la requête sur la base de données est sous format tableaux ?

Le problème viens sourtout du filtre avec la notion de sélection des lignes avec 60 et ples dans la case z.

Je vais joindre un fichier plus tard dans la journée. Je vais devoir inventer des données car ce son des données personnelles de clients.

Bonjour,

Si j'ai bien tout compris, tu veux filtrer ta base sur la colonne Z (26 ème) pour des valeurs supérieures ou égales à 60 et coller le résultat sur une autre feuille ?

Voici un code qui fait ça, il te faut adapter les noms des feuilles (ici Feuil1 pour la base et Feuil2 pour la feuille de récup) :

Sub CopieFiltre()

    Dim Plage As Range

    'la base de données est sur la feuille "Feuil1", adapter le nom
    Set Plage = DefPlage(Worksheets("Feuil1"))

    'filtre sur la colonne Z
    Plage.AutoFilter 26, ">=" & 60

    'copie le résultat du filtrage sur la feuille "Feuil2" à partir de A2, adapter le nom
    Worksheets("Feuil1").AutoFilter.Range.EntireRow.Copy Worksheets("Feuil2").Cells(2, 1)

    'comme les entêtes sont aussi embarquées avec la copie, suppression de la ligne d'entêtes
    Worksheets("Feuil2").Rows(2).Delete

    'suppression du filtre
    Plage.AutoFilter

End Sub

Function DefPlage(Fe As Worksheet, Optional L As Long = 1, Optional C As Long = 1) As Range

    On Error GoTo Fin

    With Fe

        Set DefPlage = .Range(.Cells(L, C), _
                       .Cells(.Cells.Find("*", .[A1], -4123, , _
                       1, 2).Row, .Cells.Find("*", .[A1], -4123, , _
                       2, 2).Column))

    End With

    Exit Function

Fin:

    Set DefPlage = Nothing

End Function

Wow super ça fonctionne merci bcp

Rechercher des sujets similaires à "selection ligne donnees"