Macro para sumar un rango

Hola buenos días,

Tengo una macro para que me sume un rango especifico (solo filas), pero cuando la ejecuto en el libro que tengo con otras macros me genera un error de no coinciden los tipos, pero cuando la tengo en otro libro funciona bien. Te copio el código para que me ayudes por favor.

Dim H_Corte2 As Double
H_Corte2 = 0
For i = 56 To dia + 68
 H_Corte2 = H_Corte2 + Cells(i, "H")
Next i
Range("j2") = H_Corte2

1 Respuesta

Respuesta
1

Ese mensaje se debe a que algún valor en la columna H no es un número, puedes tener un espacio o una letra

Revisa los datos

Saludos. Dam

Si es lo que necesitas.

No mira el resultado de la columna H son el resultado de una resta que hago con otra macro, en esta se resta una hora de entrada vs hora de salida, pero si hay algunos campos que son decimales, por eso cree la variable como Double.

Muchas gracias.

¿Pero si te regresa valores numéricos u horas?, también revisa que no te genere un error, si restas una hora menor a una hora mayor.

Hola te envíe el archivo para que lo puedas revisar, de igual forma escucho cualquier sugerencia que quieras hacer, ya que me interesa mucho aprender VBA pero no soy muy diestro en esto tengo la idea en cuanto a lógica y el manejo de ciertas sentencias.

Gracias.

Tal como te había comentado, Si tienes espacios en las celdas, por eso te envía error.

Del archivo que me enviaste Revisa la celda H56, presiona F2 sobre la celda H56, notarás que el cursor no está en el extremo izquierdo de la celda, porque hay un espacio, si borras el espacio con backspace, ahora sí la celda esta completamente vacía

En general, en tu archivo, varias celdas que se ven "vacías", tienen un espacio que deberás borrar o ajustar la macro para que los lea sin problema, por ejemplo:

Function Calcular_Horas_Porcorte() As Double
Dim H_Corte1 As Integer
Dim H_Corte2 As Double
H_Corte2 = 0
For i = 56 To dia + 68
If Left(Cells(i, "H"), 1) <> " " Then _
H_Corte2 = H_Corte2 + Cells(i, "H")
Next i
Range("j2") = H_Corte2
End Function

Saludos.Dam

Muchas gracias, una respuesta sencilla para un error simple, no lo había visto, de nuevo muchas gracias y que pena molestar por este tipo de proguntas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas