Archiver feuilles

Bonjour,

Dans le fichier ci-joint, certaines feuilles ont un nom de type date "AAAAMMJJ" (20220910 par exemple) et d'autres feuilles un nom plus commun Data, Analayse,... Le tout commence à prendre pas mal de place avec le temps...

J'aimerais donc prévoir un bouton dans la feuille DATA qui me permette lorsque je clique dessus d'archiver les feuilles dans d'autres dossiers à l'exception des 7 dernières feuilles qui elles resteront dans le fichier Excel de base. Les autres feuilles Data, Analyse,... elles demeurent toujours dans le fichier principal.

Le code regroupera donc toute les feuilles de Septembre dans un dossier nommé "Septembre 2022" situé sur un disque ( j'adapterai le code pour l'emplacement), les feuilles de aout "Aout 2022", ...

2fichier-type.xlsx (16.71 Ko)

Quelq'un pourrait-il m'aider pour le code ? Je pense qu'avec une boucle ça ne devrait pas être trop long mais je ne m'en sors pas.

Merci d'avance pour votre aide

VBABEGINNER

Salut VBAgeginner

Voici ton fichier avec le code créé

Le principe, le code parcours les feuilles, pour chaque feuille il récupère le numéro du mois et l'année
il déplace la feuille dans un nouveau classeur nommée "mm-aaaa.xlsx"

Si un nouveau mois est trouvé, il ferme l'ancien classeur et en créé un nouveau, etc..

A+

Salut BrunoM45

Merci pour ton code ! Je viens de le tester et il fonctionne assez mais avec un petit bémol. Le fichier type contenait une feuille 20220801 et pourtant il n' créé que 09-2022 dans le dossier Temp. Tu sais pourquoi ?

Edit : après 2eme tentative 08-2022 est bien créé ! Mea Culpa. J'ai dû faire une mauvaise manipulation.

De plus j'avais signalé vouloir garder les 7 dernières feuilles (exemple) dans le fichier pour conserver un petit historique. Là toute les feuilles sont archivées.

Encore une très grand merci !!

Bonne journée,

Vbabeginner

Re,

Désolé, j'ai lu

d'autres feuilles un nom plus commun Data, Analyse,...
et
J'aimerais donc prévoir un bouton dans la feuille DATA qui me permette lorsque je clique dessus d'archiver les feuilles dans d'autres dossiers à l'exception des 7 dernières feuilles qui elles resteront dans le fichier Excel de base

J'en avais conclu, certainement trop hâtivement qu'il y avait un ensemble de 7 feuilles avec des noms autre que des dates.

Du coup les 7 dernières c'est y compris les feuilles "Data, Analyse, ..." ou pas

Sinon, il suffit d'ajouter un test

    ' Parcourir les feuilles du classeurs
  For Each Sht In ThisWorkbook.Sheets
    ' Si le nom de la feuille est celui d'une à garder, on passe
    If InStr(1, AGarder, Sht.Name) > 0 Then GoTo SuiteSht
    ' Si le nombre de feuille des de 7
    If ThisWorkbook.Sheets.Count = 7 then Exit For

Le problème c'est que le classeur pour le mois en cours aura été créé, il faut donc tester s'il existe...

A+

Salut,

Non c'est les 7 dernières de type AAAMMJJ. Les autres au nom commun y demeurent toutes ( ce qui fonctionne nickel :) )

Ha oui juste c'est vrai que ça va poser problème si le classeur existe et que je refais l'opération d'archivage je n'y avais pas pensé.

Merci bien ! Je teste le nouveau code et je reviens dès que possible.

VBABEGINNER

Re,

Voici le fichier modifié avec ce qui a été dit
il restera 10 feuilles (à modifier si nécessaire) les 3 au nom commune + les 7 de date

Dans le code, je vérifie si le fichier "mm-aaaa.xlsx" existe ou non
s'il existe je l'ouvre et le définis comme nouveau Wbk et j'ajoute les feuilles

A+

Merci BRUNOM45.

C'est parfait ! Milles mercis pour cette solution clés en main !

Bonne fin de journée et à bientôt.

Vbebeginner.

Rechercher des sujets similaires à "archiver feuilles"