Ejecutar código en cualquier hoja

Como puedo cambiar la línea de código "resultados" en estos dos códigos para que se ejecute en cualquier hoja

Sub buscacuadro2()
Dim n As Integer
'--
Application.ScreenUpdating = False
'--
If [H1] = "@" Then Exit Sub
Valor = [H1]
For i = 1 To Sheets.Count
Sheets(i).Activate
For n = 1 To Len(Valor)
BuscarÁrea n, Mid(Valor, n, 1), 3, 12
BuscarÁrea n, Mid(Valor, n, 1), 16, 25
Next
Next
Sheets("resultados").Activate
Marcar Range("w28:Qw33"), Left([H1], 1)
Marcar Range("x28:x33"), Mid([H1], 2, 1)
Marcar Range("y28:y33"), Mid([H1], 3, 1)
Marcar Range("z28:z33"), Right([H1], 1)
Marcar Range("aa28:aa33"), Left([H1], 1)
Marcar Range("ab28:ab33"), Mid([H1], 2, 1)
Marcar Range("ac28:ac33"), Mid([H1], 3, 1)
Marcar Range("ad28:ad33"), Right([H1], 1)
End Sub
Sub Marcar(Rango As Range, Valor As String)
For Each Celda In Rango
x = CStr(Celda)
If x = Valor Then
Celda.Font.color = vbRed
Else
Celda.Font.color = vbBlack
End If
Next
End Sub
Sub buscaCuadro()
Dim nrop As String
'busca la combinación de nros en los cuadros de pista
Set hopi = Sheets("pista")
Sheets("resultados").Select
'limpiar pista de colores anteriores 'opcional
hopi.Range("E2:AV40").Interior.PatternColor = xlNone
'se recorre col AR de hoja resultado
For x = 2 To Range("O" & Rows.Count).End(xlUp).Row '2da lista
nrop = Range("O" & x)
For i = 2 To 50 'filas
For j = 5 To 45 Step 5 'col
If hopi.Cells(i, j) = Val(Left(nrop, 1)) And hopi.Cells(i, j + 1) = Val(Mid(nrop, 2, 1)) And hopi.Cells(i, j + 2) = Val(Mid(nrop, 3, 1)) And hopi.Cells(i, j + 3) = Val(Mid(nrop, 4, 1)) Then
filx = i: colf = j
hopi.Range(hopi.Cells(i, j), hopi.Cells(i, j + 3)).Interior.ColorIndex = 6
Exit For
End If
Next j
If hopi.Cells(i + 1, 5) = "" Then i = i + 2
Next i
Next x
End Sub

1 Respuesta

Respuesta
1

Pues si lo estás llamando desde la hoja donde quieres que se ejecute, entonces al principio del código podrías poner algo como:

Sub buscacuadro2()
Dim n As Integer
Dim hojaActual as String
'--
Application.ScreenUpdating = False
hojaActual = ActiveSheet.Name
'--
...

y luego en lugar de 

Sheets("resultados").Select

Poner

Sheets(hojaActual).Select

me sigue ejecutando solo como hoja actual y la idea es que se ejecute en cualquier hoja del libro excel

Es que justamente lo que te dije es para que lo ejecute en la hoja actual en lugar de la hoja "resultados". Estando en la hoja X, ¿cómo le indicarías que lo ejecute en la hoja Y? Para saber como modificar el código, ya que sino hay que poner un combo o algo para que te permita elegir en que hoja querés seleccionarlo

es que la idea es que se ejecute en cualquier hoja sin importar su nombre algo como activesheet 

La modificación que te pasé al código serviría para que se ejecute desde cualquier hoja. No entiendo donde tienes el problema

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas