détection du prochain mois

abd.gh

XLDnaute Nouveau
Bonjour le forum
je dois détecter l'arrivée du mois suivant en vba , à l'ouverture de mon fichier excel

sub auto_open
if month(now)= month(now)+1 then
décaler une plage de variable de 9 cellules
end if
end sub

exemple concret: là, nous sommes en juillet,
quand Aout arrive, il y aura un décalage automatique dans le but de p prévoir que les couts du mois en cours !



merciiii
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : détection du prochain mois

Bonjour abd.gh,
if month(now)= month(now)+1 then
cette condition ne sera jamais vérifiée car le mois actuel ne sera jamais égal au mois suivant

pour cela il faut mettre le mois dans une cellule et tester cette cellule à la prochaine ouverture du fichier
( en A1 par exemple )
Code:
Private Sub Workbook_Open()
If Month(Now) = [A1] Then
MsgBox ("il n'y a pas de changement de mois")
Else
MsgBox ("nous venons de changer de mois")
' ----------------------------------------------
' et c'est ici qu'il faut mettre la procédure
' pour décaler de 9 cellules
' ----------------------------------------------
End If
End Sub
à+
Philippe
 
Dernière édition:

Softmama

XLDnaute Accro
Re : détection du prochain mois

bonjour,

en aucun cas, Month(Now) ne peut être égal à Month(Now)+1.
Pour vérifier qu'il y a changement de mois tu peux faire ainsi (avec la date de comparaison en A1, par exemple) : (fonction datediff("m"...) fait la différence en mois entre 2 dates : celle qui correspond au 1er du mois de A1 avec le 1er du mois en cours)

Code:
if DateDiff("m", DateSerial(Year([A1]), Month([A1]), 1), DateSerial(Year(Now), Month(Now), 1)) > 0 then msgbox "Nouveau mois"

ensuite pour décaler de 9 cellules, tout dépend de la structure de ta feuille... un exemple serait à ce stade le bienvenu
 

abd.gh

XLDnaute Nouveau
Re : détection du prochain mois

grrrrrrr

1)-- ça veut dire je dois l'utilisateur dois entrer manuellement la date dans [A1] , ?
2)--- quand j'essaye de comparer la case [A1] et la date actuel , il me sort des chiffres bizaroiques,
à rappeler que A1 doit contenir le mois et l'année
et la date actuel aussi
la différence sera une difference par rapport au mois : ex :
A1: 11/2011
dateActuel : 03/2012
DateDiff = 4

merciiii
 

abd.gh

XLDnaute Nouveau
Re : détection du prochain mois

re,
je préférai que le 11/2011 se mets automatiquement en A1 !
l'idéal : à chaque entrée d'un nouveau projet, en A1 vient la date d'enregistrement du projet
comme ça la mise à jour se fait par rapport à cette date
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : détection du prochain mois

Re,

avec ces deux codes,
le premier pour mettre la date du jour en A1 au moment de la sauvegarde
le second pour tester le changement de mois à chaque ouverture du fichier
Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
[A1] = (Date)
End Sub

Private Sub Workbook_Open()
If Month(Date) <> Month([A1]) Then
MsgBox ("Nous venons de changer de mois")
' -------------------------------
' mettre ici le code pour décaler
' -------------------------------
End If
End Sub
à+
Philippe
 

abd.gh

XLDnaute Nouveau
Re : détection du prochain mois

re
merci phillipe, ça correspond bien à se que je cherche
MAIS
j'ai d'autres problème, ( comparaison des mois = 1339,...)
je veux essayer de s'en sortir et je vous tiens au courant

merci bien ,
bonne journée
 

Discussions similaires

Statistiques des forums

Discussions
312 848
Messages
2 092 788
Membres
105 534
dernier inscrit
EmilieG60