Try something along these lines:Sub Cache() Dim NoOfCrew As Long NoOfCrew = Sheets("Cache").Cells(Rows.Count, "A").End(xlUp).Row NoOfCrew = NoOfCrew + 1 Sheets("Hotel Booking").Range("Q10:U19").Copy Sheets("Cache").Range("A" & NoOfCrew).PasteSpecial Sheets("Hotel Booking").Range("X10:X19").Copy Sheets("Cache").Range("F" & NoOfCrew).PasteSpecial myName = "Range" & Timer 'invent a random-ish name Sheets("Cache").Range("A" & NoOfCrew).Resize(10, 6).Name = myName 'give the range that's just been copied to that name Application.CutCopyMode = False DelayMacro myName 'pass that name onto the DelayMacro macro End Sub Sub Delete(theRange) Range(theRange).Delete shift:=xlUp 'deletes the range itself Names(theRange).Delete 'deletes the Name End Sub Sub DelayMacro(myStr) Application.OnTime Now() + TimeValue("00:00:10"), "'Delete """ & myStr & """'" 'sets up a timed call of the Delete macro passing the name of the named range so it knows what to delete End Sub





Reply With Quote
