Ejecutar VBA a una hoja de excel diferente a la activa.
Sub aleatorio() 'Por Dante Amor Dim num As New Collection On Error Resume Next For Each cadafila In Selection.Rows Set num = Nothing fila = cadafila.Row ini = Columns("A").Column 'rango inicial fin = ini + Cells(fila, "U").Value - 1 'rango final col = Columns("Z").Column 'columna resultados n = Cells(fila, "W").Value 'valor cant aleatorios ' Do While num.Count < n columna = WorksheetFunction.RandBetween(ini, fin) valor = Cells(fila, columna).Value num.Add Item:=valor, Key:=CStr(valor) Loop For i = 1 To num.Count Cells(fila, col).Value = num(i) col = col + 1 Next Next End Sub
buenas tardes, tengo la siguiente macro, realmente me la proporcionaron por aqui hace tiempo asi que no se muy bien su estructura, solo modifico ciertos valores q necesito como son rangos y valores de acuerdo a la tabla donde la utilize.
El tema es que la macro funciona bien, lo que hace es que donde dice "valor cant aleatorios" si en esa celda dice 5, entonces busca 5 números entre el "rango inicial" y "rango final" y pega los resultados a partir de la columna donde dice "columna resultados"
La macro trabaja de acuerdo a la fila donde este seleccionado o activo, y funciona de maravilla.
PERO necesito ahora que la macro funcione en otra hoja diferente a la que tengo activa.
EJEMPLO: estoy activo en la hoja2 fila 5, al darle ejecutar, la macro se ejecute en segundo plano en la hoja3, ya que los datos los tengo en esa hoja, pero que mi hoja actual donde estoy activa, siga intacta y no me cambie de hoja, que toda la macro se ejecute en segundo plano en la hoja 3, ya que allí esta el rango, la celda donde dice cuantos números aleatorios y que también pegue los resultados en esa hoja3.
¿Se puede hacer eso?