Macro pour copier coller automatique à partir de Filtre ?

incubus20851

XLDnaute Occasionnel
Bonjour à toutes et à tous !

Je vous expose mon petit problème :
J'ai dans un onglet qui s'appel "Tout" toutes mes informations, j'ai les numéros de semaines en colonne A. Et j'ai d'autres onglets "Sem 2" et "Sem 3" ainsi de suite pour mettre ainsi les informations découpé par semaine.

Je mets à jour l'onglet "Tout" chaque semaine du coup arrivé à la semaine 31 de l'année j'vais avoir beaucoup de copier coller à faire dans les onglets et j'aimerais l'automatiser par un bouton macro.

Voici le déroulement de la macro, il fait fonctionner le filtre automatique en colonne A pour choisir le numéro de la semaine "2" ou "3" etc..
Il séléctionne la 1ère ligne filtré, vas le plus à droite et le plus en bas pour prendre toute la liste, et après va dans l'onglet correspondant à la semaine et colle les informations en A2.

Le problème c'est que quand je fais la séléction avec le filtre automatique pour la semaine "3" il commence en ligne A133, mais ça ne va pas toujours être à ce numéro que commence les données de la semaine 3.

Quel code mettre pour qu'il prenne la 1ère ligne filtré sans prendre en compte le numéro de la ligne ??

Le problème se trouve à la ligne Range("A133").Select

Si vous avez des idées ? Merci beaucoup d'avance..
A bientôt
Vincent

Code:
Sheets("Tout").Select
    Selection.AutoFilter Field:=1, Criteria1:="3"
    Range("A133").Select
    Range(Selection, Selection.End(xlToRight)).Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy
    Sheets("Sem 3").Select
    Range("A2").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("A2").Select
    Sheets("Tout").Select
    Selection.AutoFilter Field:=1
    Range("A2").Select
End Sub
 
Dernière édition:

ChTi160

XLDnaute Barbatruc
Re : Macro pour copier coller automatique à partir de Filtre ?

Salut incubus20851
Bonjour le Fil
Bonjour le Forum

il faudrait que tu nous mettes un extrait de ton fichier (quelques lignes), sans données confidentielles, ainsi que le résultat escompté (un exemple quoi)

merci d'avance
Bonne journée
 

incubus20851

XLDnaute Occasionnel
Re : Macro pour copier coller automatique à partir de Filtre ?

Merci beaucoup, ça marche nickel.

J'ai quand même une question.

Comment je pourrais faire pour mettre à jour plusieurs semaines rapidement ?
Car arrivée à la semaine 15 je devrais faire 15 fois l'opération suivante :

Mettre le numéro de semaine en A8, cliquez sur le bouton, mettre le numéro de la semaine suivante en A8 et recliquez sur le bouton, et ainsi de suite...

Une petite idée ?
Je sais je chipote, mais comme je remets toute les semaines à jour, chaque fois... c'est juste pour savoir si ça serait possible ?

Merci
A bientôt
Vincent
 

incubus20851

XLDnaute Occasionnel
Re : Macro pour copier coller automatique à partir de Filtre ?

Petite question encore,
Dans un autre tableau qui est construit de la même façon, j'aimerais faire la même chose mais le filtre doit se faire sur B1, le numéro de semaine se trouve dans la colonne B maintenant en gros. J'ai fais plusieurs test pour changer les lettres de colonne, mais même à la fin en remplaçant tout les "A" par "B", ça ne marche pas.

Voici ci-dessous le code a adapter

Quelqu'un a une idée ?
Merci d'avance
A bientôt
Vincent

Code:
Sub Decoupe()
    ThisWorkbook.Worksheets("Tout").Activate
    For i = Application.WorksheetFunction.Min(ActiveSheet.Range("A1:A65536")) To Application.WorksheetFunction.Max(ActiveSheet.Range("A1:A65536"))
        ActiveSheet.Range("A1").AutoFilter Field:=1, Criteria1:=i
        On Error Resume Next
        ThisWorkbook.Worksheets("Sem " & i).Range("A1:H65536").ClearContents
        ActiveSheet.Range("A1").CurrentRegion.Copy ThisWorkbook.Worksheets("Sem " & i).Range("A1")
        On Error GoTo 0
    Next i
    ActiveSheet.Range("A1").AutoFilter
End Sub
 

tototiti2008

XLDnaute Barbatruc
Re : Macro pour copier coller automatique à partir de Filtre ?

Re,

je crois qu'il faut modifier comme ça :

Code:
Sub Decoupe()
    ThisWorkbook.Worksheets("Tout").Activate
    For i = Application.WorksheetFunction.Min(ActiveSheet.Range("[COLOR=red]B[/COLOR]1:[COLOR=red]B[/COLOR]65536")) To Application.WorksheetFunction.Max(ActiveSheet.Range("[COLOR=#ff0000]B[/COLOR]1:[COLOR=red]B[/COLOR]65536"))
        ActiveSheet.Range("A1").AutoFilter Field:=[COLOR=red]2[/COLOR], Criteria1:=i
        On Error Resume Next
        ThisWorkbook.Worksheets("Sem " & i).Range("A1:H65536").ClearContents
        ActiveSheet.Range("A1").CurrentRegion.Copy ThisWorkbook.Worksheets("Sem " & i).Range("A1")
        On Error GoTo 0
    Next i
    ActiveSheet.Range("A1").AutoFilter
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
314 210
Messages
2 107 304
Membres
109 798
dernier inscrit
NAJI2005