Date

Bonjour,

recl = "" 'Message ouverture fichier pour 5S
Dim CS_Date
CS_Date = DateAdd("m", 1, Date)
For i = 8 To 1200
If CS_Date >= Sheets("Récapitulatif").Range("BF" & i).Value Then
recl = recl & vbNewLine & Range("a" & i)
End If
Next i
MsgBox ("Noms des requalifs 5S à prévoir :" & recl)

Dans ce code, j'ai la date du jour + 1 mois, donc il m'affiche toutes les dates inférieurs à la date du jour.

Moi je voudrais qu'il ne m'affiche que les dates du dernier mois.

Cdlt.

Il m'affiche donc toutes les dates inférieures à la date du jour.

Non, il t'affiche toutes les dates inférieures ou égales à la date du jour + 1 mois.

A ce jour, il s'agit donc des dates antérieures au 04/05/2014.

Concrètement, à ce jour tu souhaiterais afficher les dates comprises entre quelles dates ?

03/04/2014 au 03/05/2014 ?

01/03/2014 au 31/03/2014 ?

ou ????

A+

Bonjour,

frangy a écrit :

Il m'affiche donc toutes les dates inférieures à la date du jour.

Non, il t'affiche toutes les dates inférieures ou égales à la date du jour + 1 mois.

A ce jour, il s'agit donc des dates antérieures au 04/05/2014.

Oui c'est ça.

Moi je voudrais qu'il m'affiche les dates comprises entre le 01/05/2014 et (30 ou 31)/05/2012. (Dépendra du mois).

Cdlt.

Essaie comme cela

Sub Test()
Dim recl As String
Dim i As Long
Dim Date_Min As Date, Date_Max As Date
    recl = "" 'Message ouverture fichier pour 5S
    Date_Min = DateSerial(Year(Date), Month(Date) + 1, 1)
    Date_Max = DateSerial(Year(Date), Month(Date) + 2, 0)
    For i = 8 To 1200
        If Sheets("Récapitulatif").Range("BF" & i).Value >= Date_Min And _
        Sheets("Récapitulatif").Range("BF" & i).Value <= Date_Max Then
            recl = recl & vbNewLine & Range("A" & i)
        End If
    Next i
    MsgBox ("Noms des requalifs 5S à prévoir :" & recl)
End Sub

A+

Re,

Merci frangy, ça fonctionne niquel.

Encore Merci.

RE,

frangy a écrit :
Sub Test()
Dim recl As String
Dim i As Long
Dim Date_Min As Date, Date_Max As Date
    recl = "" 'Message ouverture fichier pour 5S
    Date_Min = DateSerial(Year(Date), Month(Date) + 1, 1)
    Date_Max = DateSerial(Year(Date), Month(Date) + 2, 0)
    For i = 8 To 1200
        If Sheets("Récapitulatif").Range("BF" & i).Value >= Date_Min And _
        Sheets("Récapitulatif").Range("BF" & i).Value <= Date_Max Then
            recl = recl & vbNewLine & Range("A" & i)
        End If
    Next i
    MsgBox ("Noms des requalifs 5S à prévoir :" & recl)
End Sub

Petite question détails, si il n'y a pas de noms, il faudrait qu'il mette "pas de requalifs" dans la MsgBox.

Cdlt.

Il suffit de tester la variable recl

Sub Test()
Dim recl As String
Dim i As Long
Dim Date_Min As Date, Date_Max As Date
    recl = "" 'Message ouverture fichier pour 5S
    Date_Min = DateSerial(Year(Date), Month(Date) + 1, 1)
    Date_Max = DateSerial(Year(Date), Month(Date) + 2, 0)
    For i = 8 To 1200
        If Sheets("Récapitulatif").Range("BF" & i).Value >= Date_Min And _
            Sheets("Récapitulatif").Range("BF" & i).Value <= Date_Max Then
            recl = recl & vbNewLine & Range("A" & i)
        End If
    Next i
    If recl <> "" Then
        MsgBox "Noms des requalifs 5S à prévoir :" & recl
    Else
        MsgBox "Pas de requalif à prévoir."
    End If
End Sub

A+

Oui c'est vrai.

Merci Frangy.

Bonne journée.

Rechercher des sujets similaires à "date"