J'essaie de comprendre comment archiver des feuilles de calcul d'une semaine.Création de feuilles de travail quotidiennes, archivage des feuilles de travail des semaines précédentes
Un peu de fond sur mon projet:
Je crée deux nouvelles feuilles chaque jour qui abritent des résumés de rapports quotidiens et les calculs que je critique sur une base quotidienne. À l'heure actuelle, il y a beaucoup trop de feuilles de calcul ouvertes dans le fichier Excel, il faut donc une éternité pour les ouvrir et les envoyer aux gens. En fin de compte, je voudrais savoir comment enregistrer les feuilles de calcul qui ont été créées la semaine précédente dans un autre fichier. Je voudrais les enregistrer tous dans un classeur séparé (single), ou créer un dossier pour chaque classeur pour chaque jour de la semaine. Ainsi, par exemple, je crée 10 feuilles de travail pour la semaine en cours (2 pour chaque jour de la semaine, du lundi au vendredi). Puis, quand je viendrai le lundi suivant et que je commencerai à créer les feuilles de travail pour cette semaine, les anciennes feuilles seront placées dans un autre classeur.
Le code que j'utilise actuellement pour créer les fiches de travail tous les jours:
TD = Format(Date, "yyyy.mm.dd")
On Error GoTo Make_Sheet
Sheets("Open_" & TD).Activate
Sheets("Open_" & TD).Select
Cells.Select
Selection.Delete Shift:=x1Up
Exit Sub
Make_Sheet:
Worksheets.Add(After:=Sheets("Print")).Name = "Open_" & TD
ActiveSheet.Name = "Open_" & TD
With ActiveWorkbook.Sheets("Open_" & TD).Tab
.Color = 5296274
.TintAndShade = 0
End With
Le code vérifiera si la feuille de date existe déjà (en utilisant la date comme le titre de la feuille de calcul), si elle cela efface-t-il. Sinon, il créera la nouvelle feuille de calcul. Il va également coder en couleur l'onglet (puisque j'en crée 2 chaque jour). J'ai un autre ensemble identique de code pour créer la deuxième feuille de travail quotidienne.
Merci à l'avance,
-Tuques
Ce sont tous ces 'Activate's et' Select's qui le rendent lent. Restructurer le code pour ne pas utiliser ces choses ... exemple .. 'Cells.Delete Shift: = x1Up' fait la même chose que de l'avoir sur 2 lignes en utilisant select. – braX
Sans rapport avec votre question, mais changez 'Shift: = x1Up' en' Shift: = xlUp' – YowE3K