Creer une feuille en fonction du nombre de jour du mois

excelman

XLDnaute Occasionnel
Bonjour à tous,

J'ai un classeur avec un nombre de feuilles égal au nombre de jour du mois.
Je souhaite en fin de mois automatiser l'enregistrement de ce classeur pour le mois
d'après tout en le vidant et son contenu et en ajoutant une feuille ou en en supprimant
une en fonction du mois suivant.
Pour ce qui est de l'enregistrement et de l'effacement tout va bien mais pour l'ajout ou
la suppression d'une feuille je cale. Pourriez vous me donner un coup de main.

J'essaye de joindre un fichier.

Par exemple dans le fichier joint, à la fin du mois d'aout je vais l'enregistrer sous le mois de septembre tout en effaçant
son contenu. Mais normalement je devrais supprimer la feuille 31. Si c'est moi qui le fais ce n'est pas compliqué mais
si je dois le faire faire par quelqu'un il faudrait que cela soit automatique.

Cordialement
 

Pièces jointes

  • TEST1.xls
    736 KB · Affichages: 88
  • TEST1.xls
    736 KB · Affichages: 96
  • TEST1.xls
    736 KB · Affichages: 91
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Creer une feuille en fonction du nombre de jour du mois

Bonsoir


Sers toi de cette fonction personnalisée
Function NBJOURMOIS(d As Date)
Code:
MOIS = Month(d)
NBJOURMOIS = Day(DateSerial(Year(d), MOIS + 1, 1) - 1)
End Function
Code:
Sub test()
MsgBox NBJOURMOIS(Date)
End Sub
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Creer une feuille en fonction du nombre de jour du mois

Re

Un exemple pour créer des feuilles journalières
Code:
Function NBJOURMOIS(d As Date)
MOIS = Month(d)
NBJOURMOIS = Day(DateSerial(Year(d), MOIS + 1, 1) - 1)
End Function
Code:
Sub CREAFEUILLEJOURS()
Dim NBJOUR, i%
NBJOUR = NBJOURMOIS(Date)
For i = 1 To NBJOUR
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = Format(i & "/" & Month(Date), "d-mmm")
Next
End Sub
 

Staple1600

XLDnaute Barbatruc
Re : Creer une feuille en fonction du nombre de jour du mois

Re


Essaies les codes de mon précédent message dans un classeur vierge
Tu auras alors 31 feuilles car nous sommes en aout

Si tu testes ces même macros en septembre, tu auras 30 feuilles

PS : LA fonction personnalisée est déjà créée (elle est dans mon précédent message)
 

excelman

XLDnaute Occasionnel
Re : Creer une feuille en fonction du nombre de jour du mois

Merci JM j'ai trouvé pour la fonction. J'ai testé ta formule mais ce n'est pas tout à fait ce que je souhaite faire. Je vais essayer de
manipuler tes propositions. Mais pour le moment je vais me coucher..

Merci encore JM
Cdt
 

ROGER2327

XLDnaute Barbatruc
Re : Creer une feuille en fonction du nombre de jour du mois

Bonsoir à tous


Plutôt que créer ou supprimer une, deux ou trois feuilles, il suffit de les afficher ou de les cacher. Voyez un essai de ce principe dans le classeur joint : j'ai ajouté la procédure ChoisirLeMois.​
VB:
Sub ChoisirLeMois()
Dim x$
    x = InputBox("Donner une date dans le mois choisi (j/m/a) :")
    If IsDate(x) Then
        m = Month(CDate(x)): a = Year(CDate(x))
        d = DateSerial(a, m, 0)
        For i = 1 To 31
            With Worksheets(CStr(i))
                If m = Month(d + i) Then .[C1].Value = d + i: .Visible = xlSheetVisible Else .[C1].Value = "": .Visible = xlSheetHidden
            End With
        Next
    End If
End Sub
J'ai également modifié la procédure ViderFeuilles.​
VB:
Sub ViderFeuilles()
Dim i%
    For i = 1 To 31
        Worksheets(CStr(i)).Range("A4:F30").ClearContents
    Next
End Sub


Bonne nuit !


ROGER2327
#6240


Mardi 3 Phalle 139 (Zebb, passe - partout - fête Suprême Quarte)
26 Thermidor An CCXX, 9,6616h - myrthe
2012-W33-1T23:11:16Z
 

Pièces jointes

  • copie de TEST.xls
    572 KB · Affichages: 108
  • copie de TEST.xls
    572 KB · Affichages: 103
  • copie de TEST.xls
    572 KB · Affichages: 100

excelman

XLDnaute Occasionnel
Re : Creer une feuille en fonction du nombre de jour du mois

Bonjour le forum, bonjour JM, Roger...

En fait ta solution (Roger) est intéressante mais cela ne conviendra pas vraiment car en fait après ces feuilles j'en ai d'autres (que je n'ai pas mis dans le fichier test) qui me servent a faire un récap du mois en cours. Je vais joindre le fichier final.

Cdt
 

Staple1600

XLDnaute Barbatruc
Re : Creer une feuille en fonction du nombre de jour du mois

Bonjour à tous


Essaies avec ceci
Code:
Function NBJOURMOIS(d As Date)
mois = Month(d)
NBJOURMOIS = Day(DateSerial(Year(d), mois + 1, 1) - 1)
End Function
Code:
Sub Masque()
Dim NBJOUR$
NBJOUR = NBJOURMOIS(Date)
Select Case NBJOUR
Case Is <= "30"
Sheets("31").Visible = xlSheetHidden
Case Is = "31"
On Error Resume Next
Sheets("31").Visible = 1
End Select
End Sub

En l'état, cela semble fonctionner (mais il ne faudra lancer cette macro en février durant une année bissextile ou pas ;) )

Je te laisse compléter pour le cas du mois de février ?
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Creer une feuille en fonction du nombre de jour du mois

Bonjour excelman

Vu qu'il semble que tu n'as pas tester mon dernier code (cf dernier message), je mets directement la macro qui gère février ;)
Code:
Function NBJOURMOIS(d As Date)
mois = Month(d)
NBJOURMOIS = Day(DateSerial(Year(d), mois + 1, 1) - 1)
End Function
Code:
Sub Masque()
Dim NBJOUR$
NBJOUR = NBJOURMOIS(Date)
Select Case NBJOUR
Case Is = 28
On Error Resume Next
Sheets("29").Visible = xlSheetHidden
Sheets("30").Visible = xlSheetHidden
Sheets("31").Visible = xlSheetHidden
Case Is = 29
On Error Resume Next
Sheets("29").Visible = 1
Sheets("30").Visible = xlSheetHidden
Sheets("31").Visible = xlSheetHidden
Case Is = "30"
On Error Resume Next
Sheets("29").Visible = 1
Sheets("30").Visible = 1
Sheets("31").Visible = xlSheetHidden
Case Is = "31"
On Error Resume Next
Sheets("29").Visible = 1
Sheets("30").Visible = 1
Sheets("31").Visible = 1
End Select
End Sub

PS: Ce serait plus efficace de joindre dés le départ un fichier exemple qui illustre concrètement et exactement ta problématique, non ? :rolleyes:
 
Dernière édition:

excelman

XLDnaute Occasionnel
Re : Creer une feuille en fonction du nombre de jour du mois

re..

Oui Roger j'ai essayé votre formule. Elle fonctionne parfaitement bien. Je vais essayer d'adapter tout ça.
Merci pour le temps que vous avez passé avec moi.
Cordialement
 

excelman

XLDnaute Occasionnel
Re : Creer une feuille en fonction du nombre de jour du mois

Re..

Oui JM je les ais vu. J'ai essayé tes macros et elles fonctionnent aussi parfaitement.
Je suis en train de voir pour mettre en place la tienne ou celle de Roger.
Mais je fais ça entre deux car je suis au boulot.
Et puis finalement ça fait parti d'un tout.
En fait en général c'est moi qui utilise ce fichier alors ça ne pose pas de problème car je fais les changements manuellement.

Mais je vais peut être changer de travail alors je voudrais que la personne qui est avec moi puisse l'utiliser aussi mais elle ne connait rien à Excel. C'est pour cela que je voudrais automatiser toutes les tâches de fin de mois. Et ces tâches sont :

1 - Enregistrer le fichier sous un répertoire nommé comme le mois suivant (en l’occurrence Septembre 2012) * ça c'est fait
2 - Effacer le contenu du fichier sauf les 3 dernières feuilles * ça c'est fait aussi.
3- Ajouter ou supprimer une feuille (cacher ou afficher d'après vous) en fonction du mois. * En cours.

Alors tout ça est un peu long car il y a en plus des liaisons avec un facturier, une caisse et un fichier accessoire.
C'est un peu compliqué mais ça se fait quand même..

En tous cas merci pour les infos.

Cdt
 

Discussions similaires

Réponses
14
Affichages
794

Statistiques des forums

Discussions
312 489
Messages
2 088 855
Membres
103 979
dernier inscrit
bderradji