Bonjour le forum,
J'ai la ligne 5 figée
Je ne peux faire Range ("A1").Select et .Range("A1").Select.
Donc j'ai fait Range("B6").Select et .Range("B6").Select
Voyez-vous une possibilité pour incorporer un code ou "morceau" de code dans le Thisworkbook ci-dessous?
Merci pour vos éventuelles réponses
Cordialement
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46 Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) Dim NombreJour As Integer Dim Ladate As Date Dim MoisSuivant As String If Target.Count > 1 Then Exit Sub Application.EnableEvents = False ' On recherche si la page est surveillée If InStr(1, "JanvierFévrierMarsAvrilMaiJuinJuilletAoûtSeptembreOctobreNovembreDécembre", _ Split(Sh.Name, " ")(0), vbTextCompare) Then ' Calcul du nombre de jour dans le mois indiqué par le nom de la feuille NombreJour = Day(DateAdd("m", 1, DateValue(Sh.Name)) - 1) If Target.Row - 5 > Day(Date) Then Beep MsgBox "PAS LE BON JOUR" Target = "" Else ' Surveille la plage du 1er au dernier jours du mois If Not Intersect(Range("B6:C" & 5 + NombreJour), Target) Is Nothing Then ' Reconstruit la date de fonction du nom de la feuille et du numéro de ligne sélectionnée Ladate = DateSerial(Split(Sh.Name, " ")(1), Month(DateValue(Sh.Name)), Target.Row - 5) ' Si la colonne B et la colonne C est vide on efface la date Range("A" & Target.Row) = IIf(Range("B" & Target.Row) & Range("C" & Target.Row) = "", "", Ladate) ' si la ligne modifiée est la dernière du mois et que la colonne est la C If Target.Row = NombreJour + 5 And Target.Column = 3 Then ' On construit le nom de la feuille du mois suivant MoisSuivant = MonthName(Month(DateAdd("m", 1, DateValue(Sh.Name)))) & " " & Year(DateAdd("m", 1, DateValue(Sh.Name))) ' On va vérifier si la feuille existe If FeuilleExiste(MoisSuivant) = False Then Exit Sub Range("B6").Select ' La feuille existe With Sheets(MoisSuivant) 'On la rend visible .Visible = xlSheetVisible ' On masque celle que l'on vient de finir ActiveSheet.Visible = xlSheetHidden ' et on la sélectionne .Select .Range("B6").Select End With End If End If End If End If Application.EnableEvents = True End Sub