MSG de fin d'année

ascal44

XLDnaute Occasionnel
Bonjour ,
Je voudrais afficher un messagebox chaque fin d'année entre le 30 décembre et le 2 janvier.
Comment le déclancher pour ces dates ? S44 est la cellule = à aujourd'hui

Code:
If Sheets("Z").Range("S44") = [COLOR="Blue"]DATES[/COLOR] Then
    MsgBox " Changer le calendrier commercial ", vbInformation + vbOKOnly
    End If
 

tototiti2008

XLDnaute Barbatruc
Re : MSG de fin d'année

Bonjour ascal44,

peut-être :

Code:
If Cdate(Sheets("Z").Range("S44").value) > dateserial(year(date),12,29) _ 
 or Cdate(Sheets("Z").Range("S44").value) < dateserial(year(date),1,3)  Then
    MsgBox " Changer le calendrier commercial ", vbInformation + vbOKOnly
    End If
 
G

Guest

Guest
Re : MSG de fin d'année

Bonjour,

Ceci devrait le faire:

Code:
Sub TestDate()
Dim dt1 As Date
dt1 = DateSerial(Year(Date), 12, 30)
If Date() >= dt1 And Date <= dt1 + 3 Then
    MsgBox "Nous somme entre le 30 décembre(iclus) et le 2 janvier (inclus)" & vbcrlf & " Changer le calendrier commercial ", vbInformation + vbOKOnly
End If
End Sub

A+
[Edit] Hello tototiti, content de te croisé à nouveau:)
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : MSG de fin d'année

Bonjour ascal44
essaie ceci
Code:
Private Sub Workbook_Open()
If Day(Date) = 30 And Month(Date) = 12 Then
MsgBox " Changer le calendrier commercial ", vbInformation + vbOKOnly
End If
If Day(Date) = 31 And Month(Date) = 12 Then
MsgBox " Changer le calendrier commercial ", vbInformation + vbOKOnly
End If
If Day(Date) = 1 And Month(Date) = 1 Then
MsgBox " Changer le calendrier commercial ", vbInformation + vbOKOnly
End If
If Day(Date) = 2 And Month(Date) = 1 Then
MsgBox " Changer le calendrier commercial ", vbInformation + vbOKOnly
End If
End Sub
il y a certainement moyen de rassemnler tous ces If......... en un seul pour faire plus élégant

Edit:
Bonjour Hasco Tototiti
 
G

Guest

Guest
Re : MSG de fin d'année

re,
tototiti (l'oeil vif et acéré;))a raison j'ai oublié le '-1'

Code:
Sub TestDate()
Dim dt1 As Date
dt1 = DateSerial(Year(Date[SIZE=3][COLOR=red][COLOR=black])[/COLOR]-1[/COLOR][/SIZE], 12, 30)
If Date() >= dt1 And Date <= dt1 + 3 Then
    MsgBox "Nous somme entre le 30 décembre(inclus) et le 2 janvier (inclus)" & vbcrlf & " Changer le calendrier commercial ", vbInformation + vbOKOnly
End If
End Sub

A+
 
G

Guest

Guest
Re : MSG de fin d'année

Re,

Eh oui, c'est bien, tu réfléchis pour moi:D On voit ceux qui possèdent les neurones de la logique et ceux qu'en ont pas....

et avec ça?

Code:
dt1 = IIf(Month(Date)< 12, dateDateSerial(Year(Date) - 1, 12, 30), dateDateSerial(Year(Date), 12, 30))

A+
 

eriiic

XLDnaute Barbatruc
Re : MSG de fin d'année

Bonjour tout le monde,

heuuu il ne manque pas les 1 et 2 janvier là ? :)
Ma proposition s'inspirant d'une précédente :
Code:
Private Sub Workbook_Open()
    If Date >= DateSerial(Year(Date), 12, 30) Or Date <= DateSerial(Year(Date), 1, 2) Then
        MsgBox "Nous somme entre le 30 décembre(inclus) et le 2 janvier (inclus)" & vbCrLf & " Changer le calendrier commercial ", vbInformation + vbOKOnly
    End If
End Sub
et pourquoi pas compléter en testant si le changement a eu lieu et ne plus le proposer ensuite, voir même contrôler à chaque ouverture si le calendrier commercial est le bon si qcq'un l'a changé le 25/06 (?)
eric
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 538
Messages
2 089 398
Membres
104 158
dernier inscrit
obad