Insertion de données filtrées

Dépose ton fichier allégé au juste nécessaire et précise quelles manip (actions dans l'ordre, filtres, ...) tu fais.

Voilà le fichier (macro dans le module 2)

Comme il s'agit d'un copié multiple (plusieurs plages) on ne peut plus insérer les lignes copiées, on peut juste les coller.

Il faut donc d'abord les compter et en insérer le nombre nécessaire.

Et comme Insérer emmène le format de la ligne 1, il faut plutôt copier la 2 et l'insérer.

De plus il faut désactiver tous tes filtres au début. Si tu en as un d'actif il risque de te manquer des ligne voulues.

Sub MacroGR1F()
    Dim WsS As Worksheet, WsC As Worksheet, nbL&, Source$
    Set WsC = ThisWorkbook.Worksheets("Feuil3")
    Set WsS = ThisWorkbook.Worksheets("Feuil1")

    Application.ScreenUpdating = False
    'Les trois filtres souhaités: (pour qu'il ne reste que des Groupe 1, F du mois de juin (06) )
    With WsS
        If .AutoFilterMode And .FilterMode Then .ShowAllData    ' désactiver tous les filtres
        .Range("$A1").AutoFilter Field:=1, Criteria1:="1"
        .Range("$A1").AutoFilter Field:=2, Criteria1:="F"
        'Modifier le mois si besoin
        .Range("$A1").AutoFilter Field:=15, Criteria1:="6"
        ' compter
        nbL = .AutoFilter.Range.Columns(1).SpecialCells(xlCellTypeVisible).Cells.Count - 1
    End With
    ' insérer les lignes nécessaires
    With WsC
        .Rows(2).Copy
        .Rows(2).Resize(nbL).Insert Shift:=xlDown
    End With
    'copier
    With WsS
        .Range("_FilterDataBase").Offset(1, 0).Resize(Range("_FilterDataBase").Rows.Count - 1) _
                .SpecialCells(xlCellTypeVisible).Copy
    End With
    ' coller
    WsC.[A2].PasteSpecial xlPasteValues
    Application.CutCopyMode = False
End Sub

D'accord, je vais essayer ça, merci

Effectivement, tout roule comme sur des roulettes

Merci beaucoup pour ces propositions et pour ton aide!!

Cordialement,

R.

Rechercher des sujets similaires à "insertion donnees filtrees"