Bonjour à tous,
Je me suis relancé dans les calendriers, mais tous sur la même ligne, mais je n'arrive pas à fusionner le n° de la dernière semaine du mois, soit dans mon cas pour le mois de mai le 31, que la fusion de cellule se termine en "AG"
J'espère que c'est assez clair.
Pour l'instant ça donne ça :
Mais je voudrais ça :
et voici le code à mettre dans un module
Là c'est plus que simplifié, j'aurai d'autre choses à rajouter
En vous remerciant d'avance.
Nicolas
Je me suis relancé dans les calendriers, mais tous sur la même ligne, mais je n'arrive pas à fusionner le n° de la dernière semaine du mois, soit dans mon cas pour le mois de mai le 31, que la fusion de cellule se termine en "AG"
J'espère que c'est assez clair.
Pour l'instant ça donne ça :
Mais je voudrais ça :
et voici le code à mettre dans un module
VB:
Sub test1()
Agenda1 2024, 5 'année puis mois
End Sub
Function Agenda1(année, Mois)
Dim i As Long, col As Long, lig As Long, lig2 As Long, nbjour As Long
Dim derlig As Long, dercol As Long, j As Integer, difeuro As Long
Application.DisplayAlerts = False: Application.ScreenUpdating = False
nbjour = Day(DateSerial(année, Mois + 1, 0)) ' te donne le nombre de jour dans le mois en parametre
If Weekday(DateSerial(année, 1, 1), vbMonday) > 4 Then difeuro = 1 ' 1 si semaine commence apres jeudi
With Worksheets("Feuil1")
Cells.Delete
lig = 2: col = 3
For i = 1 To nbjour
.Cells(lig, col) = WorksheetFunction.Proper(Format(DateSerial(année, Mois, i), "dddd"))
.Cells(1, 3) = "Semaine " & " " & val(Format(DateSerial(année, Mois, 1), "WW", vbMonday)) - difeuro ' numero semaine
.Cells(lig - 1, col) = IIf(.Cells(lig, col) Like "Lundi", "Semaine " & " " & val(Format(DateSerial(année, Mois, i), "WW", vbMonday)) - difeuro, "") ' numero semaine
.Cells(lig + 1, col) = (Format(DateSerial(année, Mois, i), "dd" & " " & "mmmm" & " " & année))
col = col + 1
Next
''''''''''''''''''''''''''''''''''''''''Fusion cellule''''''''''''''''''''''''''''''''''''''''''''
derlig = .Range("A" & Rows.Count).End(xlUp).Row: dercol = .Cells(2, Columns.Count).End(xlToLeft).Column
col = 3
For m = 3 To dercol
If .Cells(2, col) Like "*Dimanche*" Then
.Range(Cells(1, col + 1), Cells(1, col + 7)).MergeCells = True
.Range(Cells(1, col + 1), Cells(1, col + 7)).HorizontalAlignment = xlCenter
End If
col = col + 1
Next m
col = 3
For n = 3 To 10
If .Cells(2, col) Like "*Dimanche*" Then
.Range(Cells(1, 3), Cells(1, col)).MergeCells = True
.Range(Cells(1, 3), Cells(1, col)).HorizontalAlignment = xlCenter
End If
col = col + 1
Next n
End With
End Function
Là c'est plus que simplifié, j'aurai d'autre choses à rajouter
En vous remerciant d'avance.
Nicolas
Dernière édition: