contar celdas vacias o en blanco

20/03/2009 - 13:50 por eva | Informe spam
Saludos al grupo.
Necesitaba contar cuantas celdas en blanco o vacias existen en distintos
rangos a la vez:
Me explico: Tengo varios rangos A1:A10;B2:B7;H1:H14 ... en los cuales hay
celdas con nº, texto, y vacias; La función contar.blanco sólo me admite un
único rango.
De forma sencilla existe alguna posibilidad de contar cuantas celdas en
blanco existe en esos rangos en una única función?

Gracias: Eva

Preguntas similare

Leer las respuestas

#1 Juan Español
21/03/2009 - 21:19 | Informe spam
Ya advierto que de excel se poco, pero que de código menos...
Eva, suponiendo que (siguiendo el ejemplo de Hector Miguel) el nombre
definido es MIRANGO
esta macro te da un mensaje con la información que quieres

Sub Macro1()
Dim cdvac As Long
Application.Goto Reference:="MIRANGO"
Selection.SpecialCells(xlCellTypeBlanks).Select
cdvac = Selection.Count
MsgBox "El rango MIRANGO contiene " & cdvac & " celdas vacias",
vbOKOnly, "CONTAR CELDAS VACIAS"
[A5].Select ' por quitar la seleccion a MIRANGO
End Sub

pero como tu pregunta era como hacer una función, pues le paso la patata a
quien entienda de código que nos explique porqué no funciona esto:

Function CTVACIAS(NOMBREXX As Range) As Long
Application.Goto Reference:=Chr(34) & NOMBREXX & Chr(34)
Selection.SpecialCells(xlCellTypeBlanks).Select
CTVACIAS = Selection.Count
End Function

que explicación tendrá, pero yo no se la encuentro...

Saludos.-

"eva" escribió en el mensaje de noticias
news:
Gracias a todos por responder.
La cuestión era saber si existía simplemente una función directa tipo
CONTAR..ALGO que me permitiese contar el nº de celdas vacias en varios
rangos o en su defecto el nº total de celdas de varios rangos.

De todas formas muchas gracias a todos: Eva




"Juan Español" escribió en el mensaje
news:
Hola Eva:
Para quien domine el código es sencillo, contando las celdas que tiene
cada singleArea del Conjunto de areas que es un NOMBRE.
Pero como ese no es mi caso, te expongo una solución sencilla sin código.

En la columna A, por ejemplo del A2 para abajo pones los rangos, sin
comillas ni signo = , ni na de na a palo seco
vg.
C5:J7
F2:G21
D8:H42
..
En B2
=FILAS(INDIRECTO(A2))*COLUMNAS(INDIRECTO(A2))
arrastras para abajo hasta donde tengas rangos en la columna A

En A1
=SUMA(B:B)
te dará la totalidad de celdas de todos los rangos puestos, que en
ejemplo de estos 3 rangos es 239

Mira a ver si en la columna B no tengas puestos valores que se sumen a lo
que nos interesa, no la fastidiemos.

Y ya está...


"eva" escribió en el mensaje de noticias
news:
Gracias por responder.

Pero como calcular el nº de celdas de varios rangos asociados a un
nombre?

Un salud: Eva

"Juan Español" escribió en el mensaje
news:
Si los rango agrupados en el NOMBRE son siempre los mismos, es fácil.
Calculas las celdas de la totalidad del NOMBRE y le restas
CONTARA(NOMBRE)

"eva" escribió en el mensaje de noticias
news:OTr4%
Saludos al grupo.
Necesitaba contar cuantas celdas en blanco o vacias existen en
distintos rangos a la vez:
Me explico: Tengo varios rangos A1:A10;B2:B7;H1:H14 ... en los cuales
hay celdas con nº, texto, y vacias; La función contar.blanco sólo me
admite un único rango.
De forma sencilla existe alguna posibilidad de contar cuantas celdas
en blanco existe en esos rangos en una única función?

Gracias: Eva















Respuesta Responder a este mensaje
#2 Juan Español
21/03/2009 - 21:40 | Informe spam
Mi analfabetismo "codigil" es vasto, cuasi infinito...
Mi sentido común me hace entender que una función no hace "acciones" como
seleccionar, copiar, etc, al contrario de las macro que si lo hacen,
perdonar mi atrevimiento al aventurarme en el proceloso mundo del código.

"Juan Español" escribió en el mensaje de noticias
news:%
Ya advierto que de excel se poco, pero que de código menos...
Eva, suponiendo que (siguiendo el ejemplo de Hector Miguel) el nombre
definido es MIRANGO
esta macro te da un mensaje con la información que quieres

Sub Macro1()
Dim cdvac As Long
Application.Goto Reference:="MIRANGO"
Selection.SpecialCells(xlCellTypeBlanks).Select
cdvac = Selection.Count
MsgBox "El rango MIRANGO contiene " & cdvac & " celdas vacias",
vbOKOnly, "CONTAR CELDAS VACIAS"
[A5].Select ' por quitar la seleccion a MIRANGO
End Sub

pero como tu pregunta era como hacer una función, pues le paso la patata a
quien entienda de código que nos explique porqué no funciona esto:

Function CTVACIAS(NOMBREXX As Range) As Long
Application.Goto Reference:=Chr(34) & NOMBREXX & Chr(34)
Selection.SpecialCells(xlCellTypeBlanks).Select
CTVACIAS = Selection.Count
End Function

que explicación tendrá, pero yo no se la encuentro...

Saludos.-

"eva" escribió en el mensaje de noticias
news:
Gracias a todos por responder.
La cuestión era saber si existía simplemente una función directa tipo
CONTAR..ALGO que me permitiese contar el nº de celdas vacias en varios
rangos o en su defecto el nº total de celdas de varios rangos.

De todas formas muchas gracias a todos: Eva




"Juan Español" escribió en el mensaje
news:
Hola Eva:
Para quien domine el código es sencillo, contando las celdas que tiene
cada singleArea del Conjunto de areas que es un NOMBRE.
Pero como ese no es mi caso, te expongo una solución sencilla sin
código.

En la columna A, por ejemplo del A2 para abajo pones los rangos, sin
comillas ni signo = , ni na de na a palo seco
vg.
C5:J7
F2:G21
D8:H42
..
En B2
=FILAS(INDIRECTO(A2))*COLUMNAS(INDIRECTO(A2))
arrastras para abajo hasta donde tengas rangos en la columna A

En A1
=SUMA(B:B)
te dará la totalidad de celdas de todos los rangos puestos, que en
ejemplo de estos 3 rangos es 239

Mira a ver si en la columna B no tengas puestos valores que se sumen a
lo que nos interesa, no la fastidiemos.

Y ya está...


"eva" escribió en el mensaje de noticias
news:
Gracias por responder.

Pero como calcular el nº de celdas de varios rangos asociados a un
nombre?

Un salud: Eva

"Juan Español" escribió en el mensaje
news:
Si los rango agrupados en el NOMBRE son siempre los mismos, es fácil.
Calculas las celdas de la totalidad del NOMBRE y le restas
CONTARA(NOMBRE)

"eva" escribió en el mensaje de noticias
news:OTr4%
Saludos al grupo.
Necesitaba contar cuantas celdas en blanco o vacias existen en
distintos rangos a la vez:
Me explico: Tengo varios rangos A1:A10;B2:B7;H1:H14 ... en los cuales
hay celdas con nº, texto, y vacias; La función contar.blanco sólo me
admite un único rango.
De forma sencilla existe alguna posibilidad de contar cuantas celdas
en blanco existe en esos rangos en una única función?

Gracias: Eva


















Respuesta Responder a este mensaje
#3 Juan Español
21/03/2009 - 21:46 | Informe spam
La macro mejor así por los cortes de línea..


Sub Macro1()
Dim cdvac As Long
Application.Goto Reference:="MIRANGO"
Selection.SpecialCells(xlCellTypeBlanks).Select
cdvac = Selection.Count
MsgBox "El rango MIRANGO contiene " & cdvac & " celdas vacias", _
vbOKOnly, "CONTAR CELDAS VACIAS"
[A5].Select ' por quitar la seleccion a MIRANGO
End Sub
Respuesta Responder a este mensaje
#4 Héctor Miguel
21/03/2009 - 21:47 | Informe spam
hola, Juan !

hay algunas "cosillas" que excel les tiene "prohibido" a las funciones usadas en hoja de calculo
en resumen, una funcion (incluso personalizada) SOLO "puede" devolver un valor como resultado de sus calculos
dentro de las "cosillas" que NO PUEDE hacer, esta el modificar las propiedades de otros objetos/rangos/...
y cuando excel "ve" que una funcion pretende hacer uso de "cosillas prohibidas" (simplemente) la funcion NO "funciona" :-((
tal es el caso del uso de la propiedad "SpecialCells" (cuando excel detecta su uso por una UDF, el codigo se termina) :-((

si lo requieres como funcion personalizada, prueba con algo +/- como lo siguiente:
como argumento le pasas el nombre del rango delimitado por comillas dobles, p.e. =cuenta_vacias("mirango")

Function Cuenta_vacias(rango As String) As Integer
Application.Volatile
Dim Area As Byte, Vacias As Integer
For Area = 1 To Range(rango).Areas.Count
Vacias = Vacias + Evaluate("sumproduct(--(len(" & _
Range(rango).Areas(Area).Address & ")=0))")
Next
Cuenta_vacias = Vacias
End Function

saludos,
hector.

__ OP __
esta macro te da un mensaje con la informacion que quieres

Sub Macro1()
Dim cdvac As Long
Application.Goto Reference:="MIRANGO"
Selection.SpecialCells(xlCellTypeBlanks).Select
cdvac = Selection.Count
MsgBox "El rango MIRANGO contiene " & cdvac & " celdas vacias", vbOKOnly, "CONTAR CELDAS VACIAS"
[A5].Select ' por quitar la seleccion a MIRANGO
End Sub

pero como tu pregunta era como hacer una funcion
pues... paso la patata a quien... nos explique porque no funciona esto:

Function CTVACIAS(NOMBREXX As Range) As Long
Application.Goto Reference:=Chr(34) & NOMBREXX & Chr(34)
Selection.SpecialCells(xlCellTypeBlanks).Select
CTVACIAS = Selection.Count
End Function

que explicacion tendra, pero yo no se la encuentro...
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida