¿Cómo quitar el error "#¡DIV/0!" de una celda en la que se realiza una fórmula?

Tengo un botón creado con un macro el cual haya la media de una serie de casillas cuando es pulsado.

Si se pulsa y no hay ningún dato en las casillas sale el error "#¡DIV/0!" en la casilla donde tiene que mostrar el resultado del promedio.

Este es el resultado:

El señor Dante Amor me ha dado una posible solución para esto, pero no sé como adaptar adaptar esa posible solución a mi fórmula.

Esta es la solución que me ha dado Dante:

=si.error(tu fórmula, "")

y esta es mi formula:

Range("C6") = Application.Average(Range(Cells(6, "E"), Cells(6, uc))) 

¿Como puedo solucionar este problema?

Respuesta
1

La respuesta que de ha dado Dante es para ponerla en la celda en cuestión, entiendo que tu fórmula se ejecuta desde VBA y no desde la barra de fórmulas de excel.

Mi duda es porque usas una macro para realizar una operación, no se si seria más fácil colocar en la columna MEDIA la fórmula correspondiente para que cuando varíes el valor aparezca esa media al instante.

Por ejemplo:

=si.error(promedio(6e;6x);"Error)

Si esta opcion no te convence y quieres seguir usando VBA (macro) puedes desactivar todos estos errores en la configuracion de Excel.

Ves a opciones de excel>fórmulas>normas de comprobación de errores

Ahí puedes desactivar los errores que no quieres que se muestren, junto cada tipo de error tienes una i dentro de un circulo que te indica que errores activas o desactivas.

Piensa que esto afectara todo el libro.

¡Gracias! Por tu respuesta, he probado lo que me pones y me va de fábula. Seguramente haya hecho macros de más en mi aplicación, pero veía que era la forma más sencilla, aunque si hubiese hecho las cosas a base de fórmulas posiblemente me hubiese liado menos.

Como dijo uno... -Todos los caminos conducen a roma, y dijo el otro... -De donde crees que vengo yo ahora. je je.

En serio Gracias.

1 respuesta más de otro experto

Respuesta
1

Cambia tu línea por esto

If Not IsError(Application.Average(Range(Cells(6, "E"), Cells(6, uc)))) Then
    Range("C6") = Application.Average(Range(Cells(6, "E"), Cells(6, uc)))
Else
    Range("C6") = 0
End If

Cualquier duda avísame.

Saludos. Dante Amor

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas