Welcome to the Board!
First, this code will speed up your process on your original ranges:
Code:
Sub DataUpdate()
With Application
.ScreenUpdating = False
Range("D3:N3").Copy
With Range("D2")
.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End With
Range("D6:N6").Copy
With Range("D5")
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End With
Range("D4:N4, D7:O7") = "0"
.CutCopyMode = False
.ScreenUpdating = True
End With
End Sub
For the random copy, what criteria do you want for the copy to take place? Input box or select a range then invoke the code?
Post back and someone can modify the code to accomodate your needs depending on how you want it.
Hope that helps,
Smitty