Macro: mostrar fila, si celda""

11/11/2008 - 23:11 por CARLOS CARNERO | Informe spam
Tengo de B6:B15 algunos datos numéricos, que a su vez están ocultos y
protegida la hoja. Entonces, necesito una macro que ejecute mostrar la
fila al encontrar una celda <>"" en este rango.

Se agradece de antemano.

Saludos desde el Perú,

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
12/11/2008 - 01:56 | Informe spam
hola, Carlos !

Tengo de B6:B15 algunos datos numericos, que a su vez estan ocultos y protegida la hoja.
Entonces, necesito una macro que ejecute mostrar la fila al encontrar una celda <>"" en este rango...



si suponemos que la causa/razon/motivo/circunstancia/... por la cual "una celda" (dentro de ese rango)
pudiera reflejar un valor/contenido/... de <>"" o ="" es por efectos de alguna formula...

podrias utilizar el evento '_calculate' en el modulo de codigo de "esa" hoja DESPUES DE...
(re)proteger la hoja con "solo la intefase con el usuario" en el evento '_open' de tu libro +/- como sigue:

1) en el modulo de codigo de tu libro (This"orkbook)

Private Sub Workbook_Open()
Worksheets("hoja1").Protect "abc", 1, 1, 1, 1
End Sub

2) en el modulo de codigo de "esa" hoja

Private Sub Worksheet_Calculate()
Dim Celda As Range
Application.ScreenUpdating = False
For Each Celda In Range("b6:b16")
Celda.EntireRow.Hidden = Celda = ""
Next
End Sub

hay otras alternativas que dependeran de algun detalle que dejaras "en el tintero" -?-
saludos,
hector.
Respuesta Responder a este mensaje
#2 CARLOS CARNERO
12/11/2008 - 17:59 | Informe spam
Hola Héctor un gusto volver a saludarte:
Me sale una ventana con el siguiente mensaje: “Se ha producido el
error ‘-2147417848 (80010108)’ en tiempo de ejecución: Error en el
método ‘Hidden ‘ de objeto ‘Range’ “
Cuando le doy clic en, Depurar se sombrea el texto de la sintaxis:
Celda.EntireRow.Hidden = Celda = "" … y luego se cuelga. Del mismo
modo cuando le doy Finalizar.

Gracias por tu atención,

Carlos
Respuesta Responder a este mensaje
#3 Héctor Miguel
12/11/2008 - 18:40 | Informe spam
hola, Carlos !

Me sale una ventana con el siguiente mensaje:
“Se ha producido el error ‘-2147417848 (80010108)’ en tiempo de ejecucion:
Error en el metodo ‘Hidden ‘ de objeto ‘Range’ “
Cuando le doy clic en, Depurar se sombrea el texto de la sintaxis:
Celda.EntireRow.Hidden = Celda = "" … y luego se cuelga.
Del mismo modo cuando le doy Finalizar...



comprueba si tienes alguna libreria marcada como FALTA:xxx o MISSING:xxx
desde el editor de vba en (menu) herramientas / referencias...

y comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
#4 CARLOS CARNERO
12/11/2008 - 21:08 | Informe spam
Héctor, sólo tengo marcada las siguientes:
Visual Basic For Applications
Microsoft Excel 12.0 Object Library
OLE Automation
Microsofot Office 12.0 Object Library

Luego he buscado librería FALTA:xxx o MISSING:xxx, pero no la
encuentro; ya que la que le antecede y continua a la primera en
referencia es Export 1.0 Type Library y FaxControl 1.0 Type Library
respectivamente, asi como en la segunda le antecede MimeDir 1.0 Type
Library y le continua mmAEPlugIn 1.0 Type Library.

Saludos,

Carlos
Respuesta Responder a este mensaje
#5 Héctor Miguel
13/11/2008 - 01:43 | Informe spam
hola, Carlos !

... solo tengo marcada las siguientes:
Visual Basic For Applications
Microsoft Excel 12.0 Object Library
OLE Automation
Microsofot Office 12.0 Object Library
...



en office 2007, excel cambia su maquinaria de (re)calculo :-(

cambia el procedimiento en el modulo de codigo de "la hoja" a lo siguiente:

Private Sub Worksheet_Calculate()
Dim Celda As Range
Application.ScreenUpdating = False
Application.EnableEvents = False
On Error GoTo Salida
For Each Celda In Range("b6:b15")
Celda.EntireRow.Hidden = Celda = ""
Next
Salida:
Application.EnableEvents = True
End Sub

saludos,
hector.
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida