Trouver dernier jour mois précédent
Résolu
a51432
Messages postés
39
Statut
Membre
-
PlacageGranby Messages postés 402 Statut Membre -
PlacageGranby Messages postés 402 Statut Membre -
Bonjour,
Je cherche à trouver la date du dernier jour du mois dernier (hors week end).
Pour cela, j'ai testé le code suivant (qui ne fonctionne pas) :
la ligne : last = first - 1 ne renvoit pas le jour précédant le premier jour du mois actuel (= le dernier jour du mois précédant).
Auriez-vous une solution ?
Merci d'avance !
Je cherche à trouver la date du dernier jour du mois dernier (hors week end).
Pour cela, j'ai testé le code suivant (qui ne fonctionne pas) :
Dim année
Dim MoisCh As String
Dim first, last As Date
année = Year(Now())
MoisCh = Format(Now(), "mm")
first = "01\" & MoisCh & "\" & année
last = first - 1
If Weekday(last) = 7 Then
last = last - 1
ElseIf Weekday(last) = 1 Then
last = last - 2
End If
la ligne : last = first - 1 ne renvoit pas le jour précédant le premier jour du mois actuel (= le dernier jour du mois précédant).
Auriez-vous une solution ?
Merci d'avance !
A voir également:
- Vba dernier jour du mois
- Mise a jour chrome - Accueil - Applications & Logiciels
- Mise a jour windows 10 - Accueil - Mise à jour
- Dernier iphone - Guide
- Mettre a jour chromecast - Accueil - Guide TV et vidéo
- Comment mettre à jour ses pilotes - Guide
3 réponses
Bonjour,
Quelques petites erreur.
Ne donnera pas une date mais une chaine texte.
Il faut utiliser Cdate() pour convertir la chaine texte en date.
Aussi, un backslash \ n'est pas reconnu comme délimiteur de date dans excel.
C'est soit le slash / ou le tiret -
Donc
Dernière subtilitée
VBA n'assigne pas toute les variable comme étant une énumération du même type.
Ta déclaration, First sera un type variant, et Last sera une date.
Il n'y aura pas d'erreur même si First est un variant, mais j'imagine que le type variant consomme plus de mémoire et ton code est moins optimisé.
Quelques petites erreur.
first = "01\" & MoisCh & "\" & année
Ne donnera pas une date mais une chaine texte.
Il faut utiliser Cdate() pour convertir la chaine texte en date.
Aussi, un backslash \ n'est pas reconnu comme délimiteur de date dans excel.
C'est soit le slash / ou le tiret -
Donc
Dim année Dim MoisCh As String Dim first as date, last As Date année = Year(Now()) MoisCh = Format(Now(), "mm") first = cdate("01/" & MoisCh & "/" & année) last = first - 1
Dernière subtilitée
Dim first, last As Date
VBA n'assigne pas toute les variable comme étant une énumération du même type.
Ta déclaration, First sera un type variant, et Last sera une date.
Il n'y aura pas d'erreur même si First est un variant, mais j'imagine que le type variant consomme plus de mémoire et ton code est moins optimisé.