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
 

ChTi160

XLDnaute Barbatruc
Re
je me suis amusé a faire ceux-ci ,bien que cela ne réponde pas a ce que tu veux !
un peu comme @sylvanu
je crée les feuilles en vérifiant quelles n'existent pas déjà ensuite je ne crée que les Semaines semaines Nécessaire pour Moi Lol
je mets les mêmes jours de semaine dans Chaque Jours de la Semaine .
mais ca pourrait être différent
donc je crée La semaine actuelle plus une Semaine .
à voir donc !
il faudrait peut être un peu plus d'explications sur la façon dont tu Travaille sur la feuille du Jour et Comment aujourd'hui , tu récupères les données qui te sont nécessaires dans cette feuille?
pour teste tu Cliques sur le Bouton "LANCER" puis ensuite tu supprimes les Jours de la Dernière Semaine et tu re Cliques sur "LANCER" . normalement seule cette semaine (sera recréer)
Cordialement
Jean marie
 

Pièces jointes

  • suiviHVprojet-Chti160.xlsb
    159.2 KB · Affichages: 3

Cheminotbelgiantrain

XLDnaute Nouveau
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.
Regarde la pièce jointe 1207299
je comprends bien ce que tu m'expliques , mais pour te dire j'ai des collaborateurs qui utilisent des classeurs dans la même forme càd avec des feuilles journalières tout en gardant les feuilles précédentes et avec plus d'info à compléter le jour j !! en plus dans mon cas c'est quasi la même feuille qui se répète car toutes les cellules ne seront jamais complétées en totalité comme tu l'as déjà constaté sur la feuille de départ + les week-ends vides à part deux cellules sur la colonne jaune .
pour moi du moment ou j'ai cette macro : elle sera en essai sur ce qui reste de 2024 puis je verrai si ça répond pas à mes attentes.
merci beaucoup pour vos aides !!! 👍 et je compte sur vos interventions pour accomplir l'idée de ce petit projet !!


voici un exemple que mes collaborateurs utilise !: capture d'écran juste le bas de l'écran du dossier.
1731928480622.png
 
Dernière édition:

Cheminotbelgiantrain

XLDnaute Nouveau
Re
je me suis amusé a faire ceux-ci ,bien que cela ne réponde pas a ce que tu veux !
un peu comme @sylvanu
je crée les feuilles en vérifiant quelles n'existent pas déjà ensuite je ne crée que les Semaines semaines Nécessaire pour Moi Lol
je mets les mêmes jours de semaine dans Chaque Jours de la Semaine .
mais ca pourrait être différent
donc je crée La semaine actuelle plus une Semaine .
à voir donc !
il faudrait peut être un peu plus d'explications sur la façon dont tu Travaille sur la feuille du Jour et Comment aujourd'hui , tu récupères les données qui te sont nécessaires dans cette feuille?
pour teste tu Cliques sur le Bouton "LANCER" puis ensuite tu supprimes les Jours de la Dernière Semaine et tu re Cliques sur "LANCER" . normalement seule cette semaine (sera recréer)
Cordialement
Jean marie
Ok !! je vais essayer et voir ce que ça donne !! Merciiiiiiii
je reviens vers toi : possible d'avoir directement le programme en VB car je n'arrive pas à l'ouvrir avec la macros !! le pc n'autorise pas son ouverture avec macros ( pc du boulot !!)
d'avance merciii
 
Dernière édition:

TooFatBoy

XLDnaute Barbatruc
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 .
Tu te rends bien compte que ce n'est pas clair du tout. Non ?

Fais-nous un classeur avec trois feuilles (avant-hier, hier et aujourd'hui), histoire qu'on voit ce que tu veux exactement, parce que là on a l'impression que chaque feuille contient les données de toutes les feuilles précédente depuis le début de l'année, plus les données du jour.
 

Cheminotbelgiantrain

XLDnaute Nouveau
Tu te rends bien compte que ce n'est pas clair du tout. Non ?

Fais-nous un classeur avec trois feuilles (avant-hier, hier et aujourd'hui), histoire qu'on voit ce que tu veux exactement, parce que là on a l'impression que chaque feuille contient les données de toutes les feuilles précédente depuis le début de l'année, plus les données du jour.
non pas les données de toutes les feuilles depuis le début de l'année car il y a des entrées et des sorties tous les jours ( pas le week-end mais autre choses à compléter : une cellule ou deux max) et l'entrée (colonne: prévues pour ce jour) reste +-5 ou 6 jours puis elle sort pour laisser la place pour la suivante !!
voici un exemple sur 3 jours : 18 , 19 , & 20/11/2024 en Pièce jointe: dans cet exemple comme si on était mercredi 20/11/2024 et donc hier et avant hier : mardi et lundi = la feuille 20-11-2024 est la dernière feuille qui s'est créée le mercredi 20/11/2024 , elle est complétée et on est fin de journée.
si d'autres questions n'hésitez pas ! un tout grand merciiiiiiiiiii
 

Pièces jointes

  • suiviHVprojet.xlsm
    32.4 KB · Affichages: 6

ChTi160

XLDnaute Barbatruc
Bonjour ,
il faudrait si je comprends bien , que lorsque l'on ouvre la feuille du Jour (de la semaine en Cours) , les données des Jours précédents de la semaine en cours , soient Chargées sur la feuille du Jour (de la semaine en Cours).
Est ce cela ?
Que doit il ce passer lorsque le Jour actuel est un Lundi ?
Bonne Journée
Jean marie
 

Cheminotbelgiantrain

XLDnaute Nouveau
Bonjour ,
il faudrait si je comprends bien , que lorsque l'on ouvre la feuille du Jour (de la semaine en Cours) , les données des Jours précédents de la semaine en cours , soient Chargées sur la feuille du Jour (de la semaine en Cours).
Est ce cela ?
Que doit il ce passer lorsque le Jour actuel est un Lundi ?
Bonne Journée
Jean marie
Bonjour,
1- oui c'est bien cela .
2- si on est lundi de la semaine en cour vu qu'on a reporté la feuille du dimanche de la semaine passée alors je garde les données du dimanche pour les mettre pour le lundi en cour et effacer le reste.
sauf si on peut l'automatiser par une modification dans la macros.
bonne journée et un grand merci pour le suivi 👊
 

ChTi160

XLDnaute Barbatruc
Re
Ou alors prévoir le cas du Dimanche sur Lundi en mettant dans la feuille "PageType" les Lignes nécessaires à l'importation du Dimanche de la semaine Précédente sur la feuille de la semaine en cours !

Jean marie
 

Pièces jointes

  • Page_Type-1.gif
    Page_Type-1.gif
    68.6 KB · Affichages: 9

Cheminotbelgiantrain

XLDnaute Nouveau
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.
Regarde la pièce jointe 1207299

Re
Ou alors prévoir le cas du Dimanche sur Lundi en mettant dans la feuille "PageType" les Lignes nécessaires à l'importation du Dimanche de la semaine Précédente sur la feuille de la semaine en cours !

Jean marie
Re !
oui possible aussi!
 

Discussions similaires

Statistiques des forums

Discussions
314 863
Messages
2 113 644
Membres
111 929
dernier inscrit
YJM