OVH Cloud OVH Cloud

Création automatique de feuilles en fonction d'un modèle

2 réponses
Avatar
mac tom
Bonjour,
je ne suis pas un pro d'excel mais j'essaye d'apprendre et l=E0, j'avoue
que c'est difficile pour moi. Je m'explique : avec une macro, je sais
cr=E9er un classeur contenant une feuille par jour du mois que je choisi
et la mettre en forme. Chaque feuille est nomm=E9e 01.01.06, 02.02.06
etc jusqu'au dernier jour du mois. Pour mon travail, je souhaiterais
pouvoir cr=E9er un classeur mensuel avec une feuille par jour, mais ces
feuilles auraient une mise en page diff=E9rente en fonction du jour de
la semaine. Par exemple, les lundis certaines cellules seraient
coch=E9es, d'autres en bleu. Les mardi d'autres cellules seraient
coch=E9es (diff=E9rentes du lundi) avec d'autres couleurs... Croyez vous
que cela soit possible ? Merci de vos (=E9ventuelles) r=E9ponses ;)

2 réponses

Avatar
Norvi
Bonjour,

En rajoutant ce code après avoir créé ta feuille :

Select Case Application.Weekday(creafeuille, 2)'creafeuille est le nom
que tu donne a tes feuilles. Si tu veux un code plus complet, envois
tout le code de ta procédure.
Case 1 'LUNDI
'APPLIQUER LA MISE EN FORME SOUHAITEE
Case 2 'MARDI
'APPLIQUER LA MISE EN FORME SOUHAITEE
Case 3 'MERCREDI
'APPLIQUER LA MISE EN FORME SOUHAITEE
Case 4 'JEUDI
'APPLIQUER LA MISE EN FORME SOUHAITEE
Case 5 'VENDREDI
'APPLIQUER LA MISE EN FORME SOUHAITEE
Case 6 'SAMEDI
'APPLIQUER LA MISE EN FORME SOUHAITEE
Case 7 'DIMANCHE
'APPLIQUER LA MISE EN FORME SOUHAITEE
End Select

Bonne journée
Avatar
mac tom
Merci de ta réponse Norvi, voici le code de ma macro :

'créer dans un classeur une feuille pour chaque jour
'd'un mois donné.
Sub CreationClasseur()

Dim MaDate As Variant
Dim Sh As Worksheet
Dim LastDay As Integer
Dim Annee As Integer
Dim LeMois As Integer
Dim A As Integer

On Error Resume Next
Sheets("Aide").Visible = False
Sheets("Modèle").Visible = True
Application.ScreenUpdating = False
ActiveWindow.Zoom = 100
'Demande à l'usager le mois.
Do
MaDate = InputBox("Entrez une date du mois pour lequel il faut" &
vbLf & _
"créer une feuille pour chacun des jours." & vbLf &
vbLf & _
"Exemple : 01/11/2006", "Une feuille par jour")
'Si l'usager annule l'opération
If MaDate = "" Then Exit Sub
Loop While InStr(1, MaDate, "/") = 0

Annee = Year(MaDate)
LeMois = Month(MaDate)

'Détermine la dernière journée du mois choisi.
LastDay = Day(DateSerial(Annee, LeMois + 1, 0))

'Ajoute les feuilles.
Err = 0
For A = LastDay To 1 Step -1

ActiveSheet.Copy Before:=Sheets(1)
ActiveSheet.Name = Format(DateSerial(Annee, LeMois, A),
"dd-mm-yyyy")

'Mise en forme de la feuille
Range("A1").Value = Format(DateSerial(Annee, LeMois, A), "dddd")
Range("A2").Value = Format(DateSerial(Annee, LeMois, A), "dd mmm
yyyy")
Range("B3").Select
ActiveWindow.FreezePanes = True
Range("B3").Select

If Err <> 0 Then
Application.DisplayAlerts = False
Err = 0
End If
Next

Application.DisplayAlerts = True
Sheets("Aide").Visible = True
Sheets("Modèle").Visible = False

End Sub

Je ne saisi pas bien le code que tu me proposes. Pourrais-tu l'inclure
dans la macro ce qui me permettrais de mieux comprendre.
Merci beaucoup.