XL 2013 VBA répartir 1 feuille sur 12 onglets MOIS, selon la date indiquée dans une colonne

Nougatine95

XLDnaute Occasionnel
Bonsoir Le Forum,

J'ai tenté avec l'enregistreur de macros. Le transfert est très long (voir code dans fichier joint).

Après moult recherches j'ai trouvé LE Code VBA qui va bien.
Merci JCG (https://www.excel-downloads.com/threads/recopie-dans-les-onglets.218674/)

Code adapté à mes 11 colonnes, l'onglet principal "BASE" pourra contenir jusqu'à 3000 lignes.
Seul problème la longueur d'exécution. Mais est-ce améliorable?

Certes l'on pourrait effectuer un tri directement sur la feuille BASE, mais sachant que pour chaque mois, il y aura de nombreux calculs avec comparaison entre feuilles, ce n'est pas cool :(

Ci-joint un petit fichier bricolé de 11 colonnes et à peine 1000 lignes.

Je vous remercie pour votre aide.
 

Pièces jointes

  • VENTILATION_12_Onglets_12_Mois.xlsm
    188.3 KB · Affichages: 38

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : VBA répartir 1 feuille sur 12 onglets MOIS, selon la date indiquée dans une colo

Bonsoir,

Je ne suis pas sûr d'avoir compris la question
On peut faire + rapide mais pour 3000 lignes, cela devrait suffire.

Code:
Sub Extrait()
  Set f = Sheets("Base")
  Application.DisplayAlerts = False
  Application.ScreenUpdating = False
  [m2].Formula = "=MONTH(G2)=$l$1"
  For m = 1 To 12
    f.[L1] = m
    On Error Resume Next
    nf = Format(DateSerial(2015, m, 1), "mmmm")
    Sheets(nf).Delete
    On Error GoTo 0
    Sheets.Add After:=Sheets(Sheets.Count) ' création
    ActiveSheet.Name = nf
    f.[A1:k10000].AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=f.[m1:m2], CopyToRange:=[A1]
  Next m
End Sub

jb
 

Pièces jointes

  • VENTILATION_12_Onglets_12_Mois2.xlsm
    232 KB · Affichages: 55
Dernière édition:

Nougatine95

XLDnaute Occasionnel
Re : VBA répartir 1 feuille sur 12 onglets MOIS, selon la date indiquée dans une colo

Bonsoir Boisgontier

Gloups, c'est génial, c'est instantané !
Ouaaaah, Merci Boisgontier. Vraiment trop fort !

En effet je n'avais pas précisé, le but étant de dispatcher sur les onglets Janvier, Février, etc...
selon le contenu de la colonne G dans laquelle figurent des dates de livraisons.
 

Statistiques des forums

Discussions
312 199
Messages
2 086 159
Membres
103 145
dernier inscrit
lea.