Macro pour détecter journée manquante

anasimo

XLDnaute Occasionnel
Bonjour

je cherche 1 macro pour me détecter une journée manquante (journée non saisie par omission)... bien sur sauf samedi et dimanche (journée non comptabilisée) . la date de la journée se trouve dans la colonne B

je vous met en PJ à quoi ressemble le fichier (par confidentialité, j'ai supprimé les autres colonnes et le contenu de autres cellules)...la date de la journée se trouve dans la colonne B de la feuille "Compta".

Un msgbox m’indiquant s'il y a une journée manquante ou à vous d'imaginer ...ou peut être un msgbox m'indiquant nbr de journées matérialisées....etc

Il s'agit de noter que je dois chaque mois faire cette vérif

Merci de votre aide.
 

Pièces jointes

  • journée.xlsx
    25.7 KB · Affichages: 9

patricktoulon

XLDnaute Barbatruc
tiens tu l'a en msgbox et debug et ca s'arrete a aujourd'hui
VB:
Sub test()
   Dim c As Range, plage As Range
    firstdate = CDate("31/12/" & Year(Date) - 1)
    Set plage = Range("B1:B" & Cells(Rows.Count, "B").End(xlUp).Row)
    For j = 1 To 360
        Set c = plage.Find(CDate(firstdate + j), LookIn:=xlValues)
         If c Is Nothing Then If Weekday(firstdate + j, vbUseSystemDayOfWeek) < 6 Then texte = texte & "Manquants!!: " & CDate(firstdate + j) & Format(CDate(firstdate + j), " dddd dd mm yyyy") & vbCrLf
       If firstdate + j > Date Then Exit For
       Next

MsgBox texte ' une partie
Debug.Print texte 'liste complete
End Sub

demo3.gif
 

patricktoulon

XLDnaute Barbatruc
re

adapte "dd mm yyyy dddd dd mm yyyy" a ta convenance
VB:
Sub test()
   Dim c As Range, plage As Range
    firstdate = CDate("31/12/" & Year(Date) - 1)
    Set plage = Range("B1:B" & Cells(Rows.Count, "B").End(xlUp).Row)
    For j = 1 To 360
        Set c = plage.Find(CDate(firstdate + j), LookIn:=xlValues)
         If c Is Nothing Then If Weekday(firstdate + j, vbUseSystemDayOfWeek) < 6 Then texte = texte & "Manquants!!: " & Format(CDate(firstdate + j), "dd mm yyyy  dddd dd mm yyyy") & vbCrLf
       If firstdate + j > Date Then Exit For
       Next

MsgBox texte ' une partie
Debug.Print texte 'liste complete
End Sub
;)
 

Robert

XLDnaute Barbatruc
Repose en paix
Bonjour le fil, bonjour le forum,

Il n'y a pas photo le code de Patrick est indéniablement mieux que le mien. Donc je te conseille vivement d'utiliser le sien. Mais...


y a kelk chose ki marche pas....quand je supprime une journée pour tester...ça me sort pas que comme koi cette journée est manquante dans le msgbox

Je suis agacé par cette affirmation. Si tu supprimes toutes les lignes concernant une journée et tu relances la code, il me semble que cette journée apparaîtra comme manquante... Je souhaiterais que tu me montres un exemple où ça ne fonctionne pas.
 

Discussions similaires

Statistiques des forums

Discussions
311 725
Messages
2 081 941
Membres
101 846
dernier inscrit
Silhabib