Ya te envié el libro así que dejo solamente aquí el ajuste de la macro... no creo que le sirva a nadie ya que es muy especial tu modelo, pero para evitar suspicacias ;)
Sub AsignarAleatorio()
'ajustada x Elsamatilde
Application.ScreenUpdating = False
col = Application.WorksheetFunction.RandBetween(1, 519) 'COL nro 520 = 4683
Sheets("patron").Select
colx = Cells(2, "XFD").End(xlToLeft).Column
On Error Resume Next
Range(Cells(2, 4), Cells(2, colx)).Select
Set busco = Selection.Find(What:=col, LookIn:=xlValues, LookAt:=xlWhole)
If busco Is Nothing Then Exit Sub
busco.Select
If ActiveCell.Offset(0, 1) = "" Then
Range(Cells(3, ActiveCell.Column), Cells(26, ActiveCell.Column - 7)).Copy
ElseIf ActiveCell.Offset(0, -1) = "" Then
Range(Cells(3, ActiveCell.Column), Cells(26, ActiveCell.Column + 7)).Copy
End If
Sheets("Hoja1").Select
Range("G3:N26").Select
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Selection.Copy
Range("P3:W26").Select
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Range("G3").Select
obtiene_numeros ("G4:N13")
obtiene_numeros ("P4:W13")
obtiene_numeros ("G17:N26")
obtiene_numeros ("P17:W26")
End Sub
Sdos.
Elsa
http://aplicaexcel.com/manuales