en un rango saber si hay celdas vacías

03/03/2008 - 10:32 por chiri | Informe spam
1º Como puedo saber mediante código si en un rango hay celdas vacías

Con esto tengo suficiente pero por ir más allá

2º podría saber cuales están vacías.

gracias

Preguntas similare

Leer las respuestas

#6 Ivan
03/03/2008 - 13:29 | Informe spam
hola Fernando,


He aprovechado la primera y me da error de tipos simplemente con poner

MsgBox HayVacias("M2:M38")

El error me lo da en M2:M38



debes pasar el rango, no su referencia. Prueba asi:

MsgBox HayVacias(Range("M2:M38"))

a ver que tal

en cuanto a la prueba que comentas con el codigo de Juan (y en tanto
vuelve el), aunque no lo he probado, hay algo que salta a primera
vista en el codigo que 'tu' expones =>

Application.WorksheetFunction.Count(Range("m2:M38"))

hay una importante diferencia con el comentado por Juan =>

=> donde tu usas => Count <=> Juan pone => CountBlanck

no se si ira por ahí

un saludo
Ivan
Respuesta Responder a este mensaje
#7 Ivan
03/03/2008 - 13:39 | Informe spam
perdon =>

Juan pone CountBlank
Respuesta Responder a este mensaje
#8 chiri
03/03/2008 - 14:20 | Informe spam
En la primera no, en la segunda sí, yo usaba la primera pero y sólo pero
quizá... en esta primera lo puso mal.

Comprobado, estaba mal y mi pequeñas entendederas no me había hecho darme
cuenta

GRACIAS IVAN Y JUAN AHORA TODO FUNCIONA PERFECTO
ME GUARDO TODOS LOS CÓDIGOS PARA OTRAS SON MUY BUENOS.

"Ivan" escribió en el mensaje
news:
perdon =>

Juan pone CountBlank
Respuesta Responder a este mensaje
#9 Juan M
03/03/2008 - 14:39 | Informe spam
Hola Ivan,

Tu propuesta empleando SpecialCells era la posible optimización/mejora en
función de las necesidades ya que solo recorrería las celdas necesarias y no
todo el rango.

Un saludo,
Juan

PD:
parece que vuelvo a entrar un poco tarde




mejor tarde que nunca. ;-)


"Ivan" escribió
hola chicos (Juan, parece que vuelvo a entrar un poco tarde - se debe
estar actualizando el antivirus y me trae por el camino de la amargura
con las conexiones-)

aunque ya lo ha respondido Juan, ya que esta hecho, aqui van otras
propuestas

en un modulo normal pega estos codigos y dependiendo de lo que quieras
te podria valer una funcion u otra.

'*************** pegar en un modulo normal *********
'
' para saber si existen celdas vacias
Function HayVacias(Rango As Range) As Boolean
On Error Resume Next
HayVacias = IIf(Rango.Cells.Count > 1, _
Rango.SpecialCells(xlCellTypeBlanks).Count > 0, _
Rango.Cells(1).Value = "")
End Function
'
' para saber el nº de celdas en blanco
Function NumeroVacias(Rango As Range) As Long
On Error Resume Next
NumeroVacias = IIf(Rango.Cells.Count > 1, _
Rango.SpecialCells(xlCellTypeBlanks).Count, _
-1 * (Rango.Cells(1).Value = ""))
End Function
'
' para obtener las referencias de las celdas vacias
Function CeldasVacias(Rango As Range) As String
Dim refs As String, Celda As Range
On Error Resume Next
If Rango.Cells.Count > 1 Then
For Each Celda In Rango.SpecialCells(xlCellTypeBlanks)
refs = refs & ";" & Celda.Address(0, 0)
Next
CeldasVacias = Right(refs, Len(refs) - 1)
Else
If Rango.Value = "" Then _
CeldasVacias = Rango.Address(0, 0)
End If
End Function
' **************************************************
' para probarlos puedes llamar a este procedimiento desde la hoja
'
Sub ComprobarVacias()
Dim msj As String
msj = _
InputBox("Introduce el rango para comprobar vacias", _
"Ver vacias", Range("a1").CurrentRegion.Address(0, 0))
If msj = "" Then msj = ActiveSheet.UsedRange.Address(0, 0)
If HayVacias(Range(msj)) Then
If MsgBox("se han encontrado " & NumeroVacias(Range(msj)) _
& " celdas vacias en el rango " & vbCr & msj & vbCr & _
vbCr & "¿Quieres saber cuales?", vbQuestion + vbYesNo, _
"ATENCION: celdas vacias") = vbYes Then _
MsgBox "Las siguientes celdas estan vacias:" & vbCr _
& vbCr & CeldasVacias(Range(msj))
Else
MsgBox "No se han encontrado celdas vacias en el rango:" _
& vbCr & msj
End If
End Sub
' ******************************************************************

un saludo
Ivan
Respuesta Responder a este mensaje
#10 Juan M
03/03/2008 - 14:50 | Informe spam
Hola,

Cada fórmula hace una cosa, no son dos alternativas,
La primera cuenta las que hay llenas, la segunda las vacías que era el
objeto de la primera parte de la consulta.
el nombre de la variable intenté que fuera claro No blancos, pero parece que
se interpretó como N(umer)o de blancos.

Espero que esto aclare las cosas.

Un saludo,
Juan


"chiri" escribió
En la primera no, en la segunda sí, yo usaba la primera pero y sólo pero
quizá... en esta primera lo puso mal.

Comprobado, estaba mal y mi pequeñas entendederas no me había hecho darme
cuenta

GRACIAS IVAN Y JUAN AHORA TODO FUNCIONA PERFECTO
ME GUARDO TODOS LOS CÓDIGOS PARA OTRAS SON MUY BUENOS.

"Ivan" escribió
perdon =>

Juan pone CountBlank




Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida