Si no selecciono la hoja no funciona la macro

Al correr esta macro no funciona si no selecciono la hoja Ejecutivo.

¿Me pueden ayudar por favor?

H2.Cells(h2row, 42) = Application. WorksheetFunction. Sum(Sheets("Ejecutivo"). Range(Cells(h2row, 13), Cells(h2row, 41)))

3 Respuestas

Respuesta
3

[Hola

Es un poco complicado ayudarte si solo muestras una línea de código y no una macro, línea en la que además hay variables que solo tú conoces. Además, no mencionas si te da algún error, qué error y en qué línea o en todo caso qué sucede y que querrías y/o crees que debería ocurrir.

Abraham Valencia

Hola,

Antes que nada, una disculpa. Tienes razón.

La macro es muy grande y toma valores de una hoja para colocarlos en otra.

Quiero sumar desde la columna M hasta la AO de el renglón en que se encuentre, que es la variable h2row. 

Si antes de correr la macro selecciono la hoja a donde van los datos (Ejecutivo), al final en la columna AP aparece la suma y todo marcha bien. Si corro la Macro desde otra hoja donde tengo el botón que la activa, aparece toda la información pero la suma final no aparece.

Si al inicio de la macro selecciono la hoja de esta manera

Worksheets("Ejecutivo).Activate

La suma aparece no importando si corro la macro desde VB o desde otra hoja.

Hay manera de evitar el tener que activar esta hoja?

Muchas gracias!!!

[Hola

Solo hacía falta agregar las refeencias a la hoja. Si no las colocas, el VBA asume que tiene que usar las de la hoja activa, por eso el dilema.

h2.Cells(h2row, 42) = Application.WorksheetFunction.Sum(h2.Range(h2.Cells(h2row, 13), h2.Cells(h2row, 41)))

Saludos]

Abraham Valencia

¡Gracias! 

Como todo un EXPERTO!!!

Lo haces ver tan sencillo y llevo cerca de cuatro horas tratando de solucionarlo.

Muchísimas gracias!!!

Respuesta
3

Te falta hacer referencia a la hoja en los objetos Cells

Debería ser así:

H2.Cells(h2row, 42) = Application. WorksheetFunction. Sum(Sheets("Ejecutivo"). Range(Sheets("Ejecutivo"). Cells(h2row, 13), Sheets("Ejecutivo"). Cells(h2row, 41)))

O también así:

Set he = Sheets("Ejecutivo")
H2.Cells(h2row, 42) = Application. WorksheetFunction. Sum(he. Range(he. Cells(h2row, 13), he. Cells(h2row, 41)))

De esa forma, puedes estar en otra hoja y hacer referencia a la hoja "Ejecutivo"


¡Gracias! 

De hecho la la tenía con nombre:

h2.Cells(h2row, 42) = Application.WorksheetFunction.Sum(h2.Range(h2.Cells(h2row, 13), h2.Cells(h2row, 41)))

Lo agregué y funcionó como todo en lo que me ayudas.

Muchísimas gracias!!! 

Es un caso similar a este, por eso me acordé:

Error en código contar blancos VBA para excel

Sal u dos

Respuesta
1

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas