Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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
 

tototiti2008

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

Re,

tiens, j'avais pas vu mais j'ai peur que la solution de Hasco ne fonctionne pas en début d'année...
si on est le 1/1/2010 par exemple,
dt1 va renvoyer 30/12/2010.. et le message ne s'affiche pas.
 
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 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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…