Bonjour,
Désolé pour le délai, j'étais absent du Forum depuis mi-février...
Il m'apparaît que si rien n'est coché, il n'y a pas de Vrai, donc v sera =0, et dans ce cas la procédure s'arrête et ne reporte rien sur la feuille 2.
Sur la feuille 1 elle reproduit la situation existante avec cette ligne :
.Range("B4:C" & n).Value = RQFaux
On peut éviter d'exécuter cette ligne, inutile si rien de coché, en la déplaçant dans la condition qui suit, ou mieux dans la pratique, en déplaçant la condition dans le bloc With pour y insérer cette ligne sans avoir à la modifier...
Sub Tchouss()
Dim RQVrai(), RQFaux(), v%, f%, n%, i%
With ActiveSheet
Application.ScreenUpdating = False
n = .Cells(.Rows.Count, 2).End(xlUp).Row
ReDim RQFaux(n - 4, 1)
For i = 4 To n Step 2
If .Cells(i, 5) = True Then
ReDim Preserve RQVrai(1, v)
RQVrai(0, v) = .Cells(i, 2): RQVrai(1, v) = .Cells(i, 3)
.Cells(i, 5) = False: v = v + 1
ElseIf .Cells(i, 5) = False Then
RQFaux(f, 0) = .Cells(i, 2): RQFaux(f, 1) = .Cells(i, 3)
f = f + 2
End If
Next i
If v > 0 Then
.Range("B4:C" & n).Value = RQFaux
Application.OnTime Now + TimeValue("00:30:00"), "Tchouss"
Else
Exit Sub
End If
End With
With Worksheets("Feuil2")
f = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
.Range("A" & f).Resize(v, 2).Value = WorksheetFunction.Transpose(RQVrai)
End With
End Sub
Cordialement.