(Résolu) message si dernier jour ouvré du mois

Macpoy

XLDnaute Impliqué
Bonjour le forum,
première info: ma semaine commence le mardi et se finie le samedi soir.
j'aimerais intégrer dans une macro, (que j'ai déjà créer) un message m'avertissant que c'est le dernier jour ouvré du mois.
cette demande est loin d'être simple puisqu'il faut prendre en compte que le dernier jour du mois peut être un dimanche ou un lundi (jours ou je ne travailles pas ) que ce peut être le 28, le 29 (année bisextile) le 30 ou le 31.
bon j'imagine que cela commence comme cela :

If (ActiveCell.FormulaR1C1 = "=DAY(A1)" = 28) Then
MsgBox "c'est la fin du mois"
End If

toutes vos idées pour y arriver ou contourner sont les bienvenues.
je continus à chercher en même temps que vous
cordialement
jacques
après quelques essais :
If (Day(A1) = 28) Then
MsgBox ("c'est la fin du mois")
End If
bon on s'y remet !!
 
Dernière édition:

pascal21

XLDnaute Barbatruc
une astuce sans macro pour indiquer dans une cellule le dernier jour ouvrable
ensuite à toi de l'intégrer dans la macro
d'ailleurs je vais m'en servir dans un de mes classeurs pour indiquer l'avant dernier vendredi de chaque mois
je n'aurai pas perdu mon temps lol
 

Pièces jointes

  • recherche dernier jour ouvrable.xlsx
    15.9 KB · Affichages: 27

Macpoy

XLDnaute Impliqué
???????? y à comme un truc que je comprend pas ??? pierre, j'ouvre ton classeur rédigé avec excel 2010 et j'arrive à "manipuler" tes formules mais si je les mets dans mon classeur d'excel 2003 elles ne sont pas reconnues ??????
je ne souhaites pas migrer vers 2010 (due à l'origine de mon 2003 !!)
 

JCGL

XLDnaute Barbatruc
Bonjour à tous,
Bonjour aux amis,

Une formule avec une date en A1 :
Code:
=SI(JOURSEM(FIN.MOIS(DATE(ANNEE($A1);MOIS($A1);1);0);2)=1;
FIN.MOIS(DATE(ANNEE($A1);MOIS($A1);1);0)-2;
SI(JOURSEM(FIN.MOIS(DATE(ANNEE($A1);MOIS($A1);1);0);2)=7;
FIN.MOIS(DATE(ANNEE($A1);MOIS($A1);1);0)-1;
SI(JOURSEM(FIN.MOIS(DATE(ANNEE($A1);MOIS($A1);1);0);2)<7;
FIN.MOIS(DATE(ANNEE($A1);MOIS($A1);1);0);"")))

A+ à tous
 

JHA

XLDnaute Barbatruc
Bonjour à tous,

Si joursem(date;12) fonctionne sur ton PC et sans fin.mois(date) , tu peux essayer avec la date en "A2":
Code:
=SI(JOURSEM(DATE(ANNEE(A2);MOIS(A2)+1;1)-1;12)<6;DATE(ANNEE(A2);MOIS(A2)+1;1)-1;SI(JOURSEM(DATE(ANNEE(A2);MOIS(A2)+1;1)-1;12)=6;DATE(ANNEE(A2);MOIS(A2)+1;1)-2;DATE(ANNEE(A2);MOIS(A2)+1;1)-3))

JHA
 

JCGL

XLDnaute Barbatruc
Bonjour à tous,

Avec des Noms Définis :

upload_2017-4-17_8-52-58.png


Code:
=SI(JS=1;FM-2;SI(JS=7;FM-1;SI(JS<7;FM;"")))
A+ à tous
 

Macpoy

XLDnaute Impliqué
bonjour à tous,
je ne sais pas ou j'avais la tête ????
j'ai oublié que grâce à VBA ont pouvait créer des fonctions ce qui fait que n'avait pas copier le module.
avec cela je vais progresser.
mais travaillant sous 2003 je tente d'installer le SP3 d'office mais : "la mise à jour n'a pas été installée " ???
 

Macpoy

XLDnaute Impliqué
bon ben voila discussion finie et résolue.
avec la déclaration de fonction de PierreJean et ce que j'ai bidouillé cela donne:

Sub derjouvr()
'
If Date = Sheets("RECAP FICHE").Range("n7") Then 'en N7 j'ai la fonction =dernier_jour_ouvre(o7) ,en O7 la date du jour
MsgBox ("c'est la fin du mois")
finmois ' macro permettant de faire des stats pour comparer chaque mois

End If

End Sub

merci à tous et bonne continuation.
 

Statistiques des forums

Discussions
311 724
Messages
2 081 936
Membres
101 844
dernier inscrit
pktla