Re,
A tester en ouvrant la fenêtre 'Exécution' dans VBE (Ctrl + G).
(valeurs à effacer par la suite tout comme les debug.print)
Option Explicit
Public Sub test()
Dim ws As Worksheet, _
recl As String, _
i As Long, _
Date_Precise As Date, Date_Max As Date
Application.ScreenUpdating = False
Set ws = Worksheets("Audit")
recl = Empty
Date_Precise = #7/1/2013#
Debug.Print Date_Precise
Date_Max = DateSerial(Year(Date), Month(Date) + 0, 0) ' fin de mois?
Debug.Print Date_Max
With ws
For i = 6 To 1000
' cette boucle suppose que l'on une seule date en colonne G, sinon recl ?? (nb caractères!)
If IsDate(.Cells(i, "G")) And .Cells(i, "G") >= Date_Precise And .Cells(i, "G") < Date Then
recl = recl & _
vbNewLine & .Range("A" & i) & _
Space(1) & .Range("B" & i) & _
Space(3) & .Range("C" & i) & _
Space(3) & .Range("D" & i) & _
Space(3) & .Range("E" & i)
Debug.Print recl
End If
Next i
End With
If recl <> "" And Not ThisWorkbook.ReadOnly Then
MsgBox _
"Suivi du stagiaire en chaine 6 des mois précédents :" & _
vbNewLine & recl, vbOKOnly, _
"Suivi du stagiaire en chaine 6 des mois précédent, Serrage au Couple"
End If
Set ws = Nothing
End Sub