Ejecutar macro donde se ven las respuestas

Hola a todos,

tengo una macro que me obliga a estar ubicado en la hoja donde están todos los datos y no en la otra hoja que es la de las respuestas. Mi duda es: como debo hacer para que no me de error ejecutando la macro desde el botón ubicado en la hoja de respuestas.

a quien me pueda ayudar de antemano muchísimas gracias!

este es el código:

Sub TOTAL_DC()
Dim fila As Integer
Dim suma As Long
Sheets("Hoja1").Range("E3").Select
Final = Range("E3").End(xlDown).Row
For fila = 3 To Final
If Trim(Cells(fila, 5)) = "DC" Then
suma = suma + Cells(fila, 19).Value
End If
Next
Sheets("Hoja2").Cells(6, 6) = suma
MsgBox suma
End Sub

1 respuesta

Respuesta
1

¿Aparentemente tu hoja Respuestas es la Hoja2? Y la macro se ejecuta en Hoja1, entonces si el botón está en la 2, agregá esto al inicio de tu macro:

Sub TOTAL_DC()
Dim fila As Integer
Dim suma As Long

Application.ScreenUpdating = False
Sheets("Hoja1").Range("E3").Select
Final = Range("E3").End(xlDown).Row
For fila = 3 To Final
If Trim(Cells(fila, 5)) = "DC" Then
suma = suma + Cells(fila, 19).Value
End If
Next
Sheets("Hoja2").Cells(6, 6) = suma
MsgBox suma
End Sub

Si esto no resuelve tu consulta, aclara bien de qué hojas estamos hablando, para ajustarla.

Hola Elsamatilde,

primero, te agradezco por tu valiosa ayuda.

efectivamente la macro se ejecuta en la hoja1 que es de donde saca los datos a sumar y la respuesta es en la hoja2 donde se encuentra el botón.(las dos primeras hojas del libro de excel).

he copiado y agregado tu linea de código, pero me saca el siguiente error:

'1004' en tiempo de ejecución:

error en el método Select de la clase Range.

ub TOTAL_DC()
Dim fila As Integer
Dim suma As Long
Application.ScreenUpdating = False
Sheets("Hoja1").Range("E3").Select
Final = Range("E3").End(xlDown).Row
For fila = 3 To Final
 If Trim(Cells(fila, 5)) = "DC" Then
 suma = suma + Cells(fila, 19).Value
 End If
Next
Sheets("Hoja2").Cells(6, 6) = suma
 MsgBox suma
End Sub

Pero ese error es de 'tu' línea del Select, tenés que separarla en 2:

Sheets("Hoja1").Select

ActiveSheet.Range("E3").Select

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas