creation de feuilles selon condition

belyazid

XLDnaute Nouveau
salut et bon week-end
j'ai une base de données qui contient une seule feuille(global).
je voudrais à l'aide d'une macro créer 4feuille :
_ feuil1 (bureau1) contenant tous les gra(1,2,3 et4) pour les etab(youss,oubo,hass,deleg)
_ feuil2 (bureau2) contenant tous les gra(1,2,3 et4) pour les etab(cadi,biran,amir,khal)
_ feuil3(bureau3) contenant tous les gra(1,2,3 et4) pour les etab(ibni,inbia,hafs,lalla)
_ feuil4 (bureau4) contenant tous les gra(1,2,3 et4) pour les etab(wahd,mokh,charif)
ma base est plus grande que celle de fichier joint et je pourais ajouter d'autre etab
merci
 

vbacrumble

XLDnaute Accro
Re : creation de feuilles selon condition

Re


Voici un exemple de code généré par le macro recorder
(que j'ai testé le fichier que tu as joint à ton post

Code:
Sub Macro1()
[COLOR="Green"]'
' Macro16 Macro
' Macro enregistrée le 08/05/2009 par VBACrumble
[/COLOR]
Application.ScreenUpdating = False
    Range("A12:F172").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range _
        ("tri1"), CopyToRange:=Range("H12"), Unique:=False
    ActiveWindow.SmallScroll ToRight:=4
    Range("A12:F172").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range _
        ("tri2"), CopyToRange:=Range("O12"), Unique:=False
    Range("A12:F172").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range _
        ("tri3"), CopyToRange:=Range("V12"), Unique:=False
    Range("A12:F172").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range _
        ("tri4"), CopyToRange:=Range("AC12"), Unique:=False
    Range("H12:M48").Select
    Selection.Sort Key1:=Range("L13"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
    Range("O12:T67").Select
    Selection.Sort Key1:=Range("S13"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
    Range("V12:AA33").Select
    Selection.Sort Key1:=Range("Z13"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
    ActiveWindow.SmallScroll ToRight:=7
    Range("AC12:AH172").Select
    Selection.Sort Key1:=Range("AG13"), Order1:=xlAscending, Header:=xlGuess _
        , OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
    ActiveWindow.ScrollColumn = 1
    Range("A12").Select
    Application.ScreenUpdating = True
End Sub
 

belyazid

XLDnaute Nouveau
Re : creation de feuilles selon condition

re salut
j'ai teste mais ca debugue sur la ligne

Range("A12:F172").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range _
("tri1"), CopyToRange:=Range("H12"), Unique:=False
salutation
 

vbacrumble

XLDnaute Accro
Re : creation de feuilles selon condition

Re


C'est normal

Car ce sont des zones nommées contenant les critères pour le filtre
élaboré.


(PS: ce code VBA est une adaptation/simplification du code généré par le macro recorder.
C'est ce qui fait tout l'intérêt de l'enregistreur de macro )


Regarde la pièce jointe et lance la macro nommée : main

(Ne gère pas les erreurs, exemple si l'on relance une 2ème fois la macro
comme les feuilles bureau1, bureau2, bureau3, bureau4 existent déjà )

Je te laisse t'occuper de cela puisqu'il y a déjà la fonction idoine dans le module 1 de ton fichier original (que j'ai laissé dans cette PJ )
 

Pièces jointes

  • finalOK.zip
    21.6 KB · Affichages: 42

Statistiques des forums

Discussions
312 177
Messages
2 085 972
Membres
103 073
dernier inscrit
MSCHOE16