Importation automatique de données d'un onglet à un autre avec critères

Bonjour,

Je connais un peu excel mais je suis novice dans les macros et je pense que c'est ce qu'il est souhaitable de réaliser pour mes besoins.

Voilà mon problème :

J'ai un fichier avec une table de données (onglet ZTV) que je souhaite retraiter de manière automatique par les informations du champ "Type"

Je souhaite rapatrier dans les différents onglets les différentes lignes associées à une liste de type.

Ainsi :

  • dans l'onglet "Type A", je souhaite rapatrier les lignes de données ayant le type AG/AI et AB, mais je souhaite également pouvoir ajouter d'autres types si besoin par exemple AV même si à l'heure actuelle ce type n'est pas dans la table de données.
  • dans l'onglet "Type B", je souhaite rapatrier les lignes de données ayant le type GG/GT et GH si ma table de données comporte ce type.
  • dans l'onglet "Type I", je souhaite rapatrier les lignes de données ayant le type IC/II
  • dans l'onglet "Type P", je souhaite rapatrier les lignes de données ayant le type PI/PR
  • dans l'onglet "Type R", je souhaite rapatrier les lignes de données ayant le type RP/RT.

J'ai mis en lien un fichier test avec les données.

Je vous remercie de l'aide que vous pourriez m'apporter

Merci à tous

Amicalement

10test.xlsx (17.50 Ko)

Bonjour,

Un exemple.

Cdlt.

11gadgot.xlsm (25.48 Ko)
Public Sub Create_Worksheets()
Dim wsData As Worksheet, wsCriteria As Worksheet, wsNew As Worksheet
Dim rngData As Range
Dim arrCriteria()
Dim lastCol As Long, lastRow As Long, lCol As Long, lRow As Long, k As Long

    Application.ScreenUpdating = False

    Set wsData = Worksheets("ZTV")
    Set wsCriteria = Worksheets("Types")

    With wsData
        If .AutoFilterMode Then .AutoFilter.ShowAllData
        Set rngData = .Cells(1).CurrentRegion
    End With

    With wsCriteria
        lastCol = .Cells(1, .Columns.Count).End(xlToLeft).Column
        For lCol = 1 To lastCol
            lastRow = .Cells(.Rows.Count, lCol).End(xlUp).Row
            k = 0
            ReDim arrCriteria(1 To lastRow - 1)
            For lRow = 2 To lastRow
                k = k + 1
                arrCriteria(k) = .Cells(lRow, lCol)
            Next lRow
            rngData.AutoFilter field:=1, Criteria1:=arrCriteria, Operator:=xlFilterValues
            Set wsNew = Worksheets.Add(after:=Worksheets(Worksheets.Count))
            wsNew.Name = wsCriteria.Cells(lCol)
            rngData.Copy wsNew.Cells(1)
            ActiveWindow.DisplayGridlines = False
        Next lCol
    End With

End Sub

Merci bien pour le code.

Par contre est-il possible d'avoir un code afin de rapatrier dans des onglets différents automatiquement les données de type A, type B,.... afin d'avoir un onglet pour chaque type de manière à pouvoir faire des retraitements dans chaque onglet ?

Encore merci

Amicalement

Rechercher des sujets similaires à "importation automatique donnees onglet criteres"