Bonjour à tous,
Pourquoi n'utilisez-vous pas l'aide en ligne concernant la fonction RGB.
Chez moi tout fonctionne correctement avec ce code :
Sub GénérerPropositionsMMR()
Dim Lig As Long, Col As Long, NM As Long, J As Long
Dim DatJ As Date
Application.ScreenUpdating = False
DatJ = WorksheetFunction.WorkDay(DateSerial(Range("Année_En_Cours") - 1, 12, 31), 1)
NM = 1
With Worksheets("Propositions menus midi retrait")
.Range("B:H").UnMerge
.Range("B:H").ClearContents
.Range("B:H").ColumnWidth = 25
Range("A1").Resize(532, 8).Borders.Weight = xlThick
For Lig = 1 To 532 Step 14
.Cells(Lig + 0, 1) = "Propositions menus midi retraite"
.Cells(Lig + 0, 1).Resize(1, 8).HorizontalAlignment = xlCenterAcrossSelection
.Cells(Lig + 0, 1).Resize(1, 8).Interior.Color = RGB(180, 180, 180)
.Cells(Lig + 1, 1) = "Numéro du menu"
'Couleur fond première colonne.
.Cells(Lig + 1, 1).Resize(13, 1).Interior.Color = RGB(230, 230, 230)
.Cells(Lig + 2, 1) = "Date du menu"
.Cells(Lig + 3, 1) = "Référence légume)"
.Cells(Lig + 4, 1) = "Légume"
.Cells(Lig + 5, 1) = "Quantité légume"
.Cells(Lig + 6, 1) = "Référence viande"
.Cells(Lig + 7, 1) = "Viande"
.Cells(Lig + 8, 1) = "Quantité viande"
.Cells(Lig + 9, 1) = "Référence dessert"
.Cells(Lig + 10, 1) = "Dessert"
.Cells(Lig + 11, 1) = "Quantité dessert"
.Cells(Lig + 12, 1) = "Référence jour férié"
.Cells(Lig + 13, 1) = "Jour férié"
For Col = 2 To 8
'En tête. Va remplir les lignes et les colonnes avec le contenu des guillemets. Si con _
tenu guillets vide, alors je devrais remplir la ligne moi-même. Ceci est valable pour _
En tête, Légume, Viande, Dessert et Fériés.
.Cells(Lig + 1, Col) = "MMR" & Format(NM, "00")
.Cells(Lig + 2, Col) = Format(DatJ, "dddddd")
'Légume.
.Cells(Lig + 3, Col) = "LMR"
.Cells(Lig + 4, Col) = ""
.Cells(Lig + 5, Col) = ""
'Viande.
.Cells(Lig + 6, Col) = "VMR"
.Cells(Lig + 7, Col) = ""
.Cells(Lig + 8, Col) = "100,00"
'Dessert.
.Cells(Lig + 9, Col) = "DMR01"
.Cells(Lig + 10, Col) = "Pomme"
.Cells(Lig + 11, Col) = "1,00"
'Fériés.
For J = 1 To 13
If DatJ = Range("TabJoursFériés").ListObject.ListColumns("Date jour férié").DataBodyRange(J) Then
.Cells(Lig + 12, Col) = "JF" & Format(J, "00")
.Cells(Lig + 13, Col) = Range("TabJoursFériés").ListObject.ListColumns("Nom jour férié").DataBodyRange(J)
End If
Next J
NM = NM + 1
DatJ = WorksheetFunction.WorkDay(DatJ, 1)
If Year(DatJ) > Range("Année_En_Cours").Value Then Exit For
Next Col
Next Lig
End With
End Sub
Maintenant je serais tenté de poser une question. A quoi cela vous sert-il de créer 261 propositions de menus qui sont tout à fait identiques ?
Je me rends compte que seulement la date change. Vous devriez avoir une base de donnée avec tous les plats, une recherche aléatoire sur une entrée, un légume, une viande,et un dessert; Vous permettrait de construire la quantité de menus que vous voulez ; Pour la semaine, ou trois quatre repas mais sûrement pas 261 menus; Qui prévoit 261 repas à l'avance ?