Recopie automatique si compris entre 2 dates

Bonjour,

j'ai un petit blocage pour faire une recopie automatique en fonction de plusieurs paramétres dont des dates.

voir fichier joint

Merci de votre aide

-- 29 Juin 2011, 12:17 --

personne ne saurait m'aider?

71mise-en-forme.xlsx (11.83 Ko)

Bonjour,

Sub A_Faire()
Dim Lg%, Lig%, i%, DcL%, cL%, Plg As Range
    Application.ScreenUpdating = False
    Lg = Cells.Find("*", , , , xlByRows, xlPrevious).Row
    DcL = Range("IV4").End(xlToLeft).Column                                     'dernière colonne mois

    With Sheets("A FAIRE")
            .Columns("b:c").ClearContents
            .Columns("a:b").Insert
            Range("b5:c5").Copy Destination:=Union(.Range("a2"), .Range("d2"))  'en-têtes

        For cL = 2 To DcL Step 4
            Set Plg = Range(Cells(5, cL), Cells(Lg, cL + 2))
            Range("o2") = "=AND(" & Cells(6, cL).Address(RowAbsolute:=False) & _
            ">=$c$1," & Cells(6, cL).Address(RowAbsolute:=False) & _
            "<=$c$2," & Cells(6, cL + 2).Address(RowAbsolute:=False) & "=2)"    'critère

            '--- filtre temporaire ---
            Plg.AdvancedFilter Action:=xlFilterCopy, CriteriaRange:= _
            Range("o1:o2"), CopyToRange:=.Range("a2:b2"), Unique:=False

            '--- range les extractions ---
            Lig = .Range("a65536").End(xlUp).Row + 1
            .Range("a3:b" & Lig).Copy Destination:=.Range("d65536").End(xlUp)(2)
        Next cL
            .Columns("a:b").Delete
    End With
            Range("o2").ClearContents
End Sub

Amicalement

Claude

merci de ton aide, j'avais deja fais d'une autre maniére

le probléme quand tu me fais des belles macros comme ca c'est que je comprends pas trop tout le code alors j'ai du mal à adapter.

donc j'y vais petit à petit ^^

par contre je comprends pas comment on fait pour que nos macros restent correctes meme si on ajoute on enleve de lignes/colonnes dans nos feuilles? les references aux lignes et colonnes ne bougeant pas dans les macros

re,

Si tu ne modifies pas la structure des en-têtes (emplacement, ici lignes 1 à 5)

Lg = Cells.Find("*", , , , xlByRows, xlPrevious).Row

=> dernière ligne utilisée

DcL = Range("IV4").End(xlToLeft).Column 

=> dernière colonne utilisée, ligne 4

Tu peux ajouter des lignes et colonnes sans toucher la macro

Claude

re,

par exemple ici :

    Sheets("Planning 2012").Select
    Application.ScreenUpdating = False
    Range("BA131") = "=ay131<>""""" 'critère janvier"
    Range("ax130:az" & [ax167].End(xlUp).Row).AdvancedFilter Action:=xlFilterCopy, CriteriaRange:= _
    Range("ba130:ba131"), CopyToRange:=Range("ax171:ay171"), Unique:=False
    Range("Ba131").ClearContents

si je rajoute une colonne au début du doc entre E et F par ex , il faudrait que ma macro comprenne toute seule qu'il faille modifier comme suit :

    Sheets("Planning 2012").Select
    Application.ScreenUpdating = False
    Range("BB131") = "=az131<>""""" 'critère janvier"
    Range("ay130:ba" & [ay167].End(xlUp).Row).AdvancedFilter Action:=xlFilterCopy, CriteriaRange:= _
    Range("bb130:bb131"), CopyToRange:=Range("ay171:az171"), Unique:=False
    Range("Bb131").ClearContents

re,

tu parle d'un autre fichier, je ne sais pas comment il et structuré

Rechercher des sujets similaires à "recopie automatique compris entre dates"