RECHERCHEV pour rechercher plusieurs ligne ?

Bonjour à tous, et meilleurs vœux pour 2020 !

Je m'adresse à vous pour tenter de résoudre le problème suivant :

Je gère des données sur des tableaux comportant des milliers de lignes et une vingtaine de colonnes. (j'ai créé un fichier "exemple" en PJ).

Je dois organiser ces données à partir de la colonne "centre financier", mon critère de tri, avec les lignes entières, que je vais envoyer par mail à des gestionnaires qui doivent suivre l'état de leurs commandes.

J'ai donc un document "source" et des onglets par centre financier. Je voudrais automatiser la procédure de tri, pour que dans chaque onglet, figurent les lignes entières qui correspondent à chaque centre financier.

J'ai essayé avec la fonction RECHERCHEV, qui fonctionne, mais ne me ramène qu'une seule ligne. Comment faire pour que toutes les lignes concernées par un seul centre financier alimentent un onglet , sans passer par des copier/coller périlleux ?

Merci de votre aide,

Marie

5exemple.xlsx (560.35 Ko)

Bonjour

Tu l'envoie comment ?

Pas le classeur complet j'imagine...

Bonjour,

Chaque centre financier correspond à un gestionnaire, j'envoie le contenu de chaque onglet à 1 personne par mail.

RE

Oui mais comment : par VBA, par copier coller ?

Jusqu'à présent je faisais des couper/coller dans des onglets et j'envoyais un tableau Excel à mon gestionnaire et il faut que je continue à leur envoyer sous Excel.

RE

Donc a priori une boucle VBA pour filtrer par centre financier et copier coller les lignes dans un nouveau classeur, me parait la marche à suivre.

A adapter

Sub Ventilation()
    Dim CFI
    Dim y As Long

    Dossier = "T:\TEMP\"

    Sheets.Add After:=Sheets(Sheets.Count)
    [A1] = "Centre financier"
    Sheets("source").Range("A:T").AdvancedFilter Action:=xlFilterCopy, _
    CopyToRange:=ActiveSheet.Columns("A:A"), Unique:=True
    y = WorksheetFunction.CountA(Range("A:A"))
    CFI = Range("A2:A" & y)
    Application.DisplayAlerts = False
    ActiveSheet.Delete
    Application.DisplayAlerts = True
    With Worksheets("Source")
        y = WorksheetFunction.CountA(.Range("A:A"))
        For Each CF In CFI
            .Range("$A$1:$T$" & y).AutoFilter Field:=1, Criteria1:=CF
            .[A1].CurrentRegion.Copy
            Workbooks.Add
            ActiveSheet.Paste
            Application.CutCopyMode = False
            ActiveWorkbook.SaveAs Filename:=Dossier & CF & ".xlsx", FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
        ActiveWindow.Close
        Next
        .ShowAllData
    End With
End Sub

Merci beaucoup ! j'essaierai lundi et te dirai ce que ça donne

Bon WE,

Rechercher des sujets similaires à "recherchev rechercher ligne"