Autres macros Excel

Cheminotbelgiantrain

XLDnaute Nouveau
Bonjour tout le monde , tout d'abord je vous remercie pour ce forum pour résoudre différents problèmes confrontés lors de création des macros en Excel . je viens de m'inscrire aujourd'hui car je voulais comprendre beaucoup mieux ce programme pour trouver des solutions avec vos soutiens bien sûr à des questions sur les macros.
ma question d'aujourd'hui est la suivante:
je cherche à créer automatiquement un onglet à partir d'une première feuille et lui donner le nom avec la date du jour sous la forme jj-mm-aaaa.
le contenu de la feuille jj-mm-aaaa doit être sauvegardé et recopié dans la feuille jj+1-mm-aaaa.
ce travail est journalier !!
d'avance merci pour votre aide !
 

Cheminotbelgiantrain

XLDnaute Nouveau
Avec ce que j'ai compris, un essai en PJ avec :
VB:
Sub CopieFeuilles()
Dim F, J%, Jour, PremierJour
' Figeage écran et inhibition alertes
Application.ScreenUpdating = False
Application.DisplayAlerts = False
' A modifier par premier janvier de l'année désirée
PremierJour = "1/1/2025"
Sheets("PageType").Visible = True
' Suppression de toutes les feuilles
For Each F In Worksheets
    If F.Name <> "PageType" Then Sheets(F.Name).Delete
Next F
' On cherche le premier mundi de l'année
For J = 0 To 7
    If Application.Weekday(CDate(PremierJour) + J) = 2 Then
        Jour = CDate(PremierJour) + J
        Exit For
    End If
Next J
' On duplique les feuilles jusqu'à atteindre fin décembre.
While Year(Jour) <= Year(CDate(PremierJour))
    Sheets("PageType").Copy After:=Worksheets(Sheets.Count): ActiveSheet.Name = Format(Jour, "dd-mm-yyyy")
    [A3] = Jour
    Jour = Jour + 1
Wend
Application.DisplayAlerts = True
Sheets("PageType").Visible = False
Sheets(2).Select
End Sub
Pour modifier la page type, faire Afficher Page type, puis lancer la macro par F8.
J'ai mis le fichier en xlsb moins lourd ( 800ko au lieu de 1.3Mo ) vous pouvez le renommer en xlsm, ou le garder ainsi si vous ne travailler pas sous Android.
je viens d'ouvrir le fichier , mon problème est : de ne pas avoir toutes les feuilles directement au lancement de la macro ! je voulais avoir chaque jour la feuille correspondante à la date du jour actuel càd : on est le 17 /11/2024 alors je n'ai que les feuilles du 01/01/2024 jusqu'au 17/11/2024 par exemple.
 

TooFatBoy

XLDnaute Barbatruc
j'ai mis le fichier en pièce jointe : ça va alourdir tu penses ?
Même s'il n'y a que très peu de données pour chaque jour, je ne pense pas que multiplier les onglets facilite l'accès à la feuille souhaitée.

Je pensais plutôt à :
- une sauvegarde dans une feuille unique servant de Base De Données,
- une autre feuille permettant d'afficher une (ou plusieurs) journée(s).
 

TooFatBoy

XLDnaute Barbatruc
j'ai mis le fichier en pièce jointe : ça va alourdir tu penses ?
Le fichier de #12 du camarade Sylvanu te montre exactement ce que je te disais : le fichier devient lourd, aussi bien en volume (même si ce n'est pas gênant, il est passé de 15 ko à plus de 1300 ko), qu'en nombre d'onglets et tu vois la galère que c'est pour retrouver la bonne feuille.

On peut certes ajouter encore un peu de code VBA pour afficher la bonne feuille en saisissant simplement la date, mais je ne suis pas certain qu'il soit très utile d'avoir 366 feuilles par an (une feuille par jour), ni même 53 (une par semaine), vu qu'on ne peut en afficher qu'une seule à la fois. ;)
 
Dernière édition:

TooFatBoy

XLDnaute Barbatruc
je viens d'ouvrir le fichier , mon problème est : de ne pas avoir toutes les feuilles directement au lancement de la macro !
Ca veut dire quoi ???
C'est un problème de ne pas avoir toutes les feuilles, ou le problème est que tu n'as pas toutes les feuilles mais tu voudrais les avoir ?


je voulais avoir chaque jour la feuille correspondante à la date du jour actuel càd : on est le 17 /11/2024 alors je n'ai que les feuilles du 01/01/2024 jusqu'au 17/11/2024 par exemple.
Pas clair ça non plus... 🤔


[edit]
OK, je crois que j'ai compris la globalité du message. ;)
En fait, tu dis que tu veux que les feuilles s'ajoutent automatiquement à l'ouverture du classeur : une nouvelle feuille pour la nouvelle journée en cours.
J'ai bon ?
Tu sais que tu peux aussi n'afficher que certaines feuilles et donc masquer les autres ?
[/edit]
 

Cheminotbelgiantrain

XLDnaute Nouveau
Ca veut dire quoi ???
C'est un problème de ne pas avoir toutes les feuilles, ou le problème est que tu n'as pas toutes les feuilles mais tu voudrais les avoir ?



Pas clair ça non plus... 🤔


[edit]
OK, je crois que j'ai compris la globalité du message. ;)
En fait, tu dis que tu veux que les feuilles s'ajoutent automatiquement à l'ouverture du classeur : une nouvelle feuille pour la nouvelle journée en cours.
J'ai bon ?
Tu sais que tu peux aussi n'afficher que certaines feuilles et donc masquer les autres ?
[/edit]
c'est tout a fait cela !!!
masquer les autres feuilles aussi est une bonne idée !!! comme ça on peut afficher les feuilles dont on a besoin seulement !!
je vais exposer le problème d'une façon très simple , mais avant tout le fichier que @sylvanu m'a proposé mais toutes les feuille de l'année en une fois ( en plus je viens de remarquer que les feuilles ont bien le nom avec la date du jour "jj-mm-aaaa" mais dans la feuille même les dates changent par rapport aux jours de la semaine càd : feuille06-01-2025 lundi 06/01/2025 mardi 07/01/2025 etc .... mais la feuille 07-01-2025 = lundi 07/01/2025 et mardi 08/01/2025 etc ... donc elle garde pas le 06/01/2025 pour le lundi !!!!) .
récapitulatif :
dans mon fichier je dois avoir une nouvelle feuille avec le nom de la date du jour jj-mm-aaaa le jour de cette date càd : exemple de mon attente = on est le dimanche 17/11/2025 donc la dernière feuille que je dois avoir sur mon écran est la feuille 17-11-2024 ; demain quand je prends mon fichier j'aurai la feuille 17-11-2024 avec ses données sauvegardées ( et celles des jours avant !!) + ma nouvelle feuille18-11-2024 avec les mêmes données de la feuille17-11-2024 où je vais encoder les quelques modifications du jour.et ainsi de suite.
j'espère que c'est claire .
 
Dernière édition:

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re,
Donc chaque jour on duplique la feuille du jour précédent auquel sera ajouté les données du jour présent.
Admettons que chaque jour on ajoute seulement 1ko (nouvelle feuille + données). (Voir figure ci dessous)

Donc 1er jour 1ko, 2eme jour 3ko ( 1ko jour J-1 + 2ko jour J ) ....
Cela correspond à une progression 0.5N (N+1)
Si N vaut 365 jours, la taille du fichier au 31 décembre fera 66.975Mo.

Donc à mon humble avis, cette solution n'est guère gérable.

Poids données + mise en forme : 1.98ko. On prendra de façon très optimiste 1ko par jour.
1731862464793.png
 

Discussions similaires

Statistiques des forums

Discussions
314 653
Messages
2 111 582
Membres
111 207
dernier inscrit
max008