¿Cómo saber si una columna o una fila esta oculta desde visual basic?

Respuesta de
a
Usuario
Hola...

¿Cómo saber si una columna o una fila esta oculta desde visual basic?...

Encontré un ejemplo así:

Worksheets("Sheet1").Columns("C").Hidden = True

Pero esto es para ocultar la columna, yo necesito saber cuando esta oculta, ya que al pasar los datos la columna oculta la escribe igual pero encima de la otra columna, por ejemplo si tengo oculta la columna C y ejecuto el programa para pasar la tabla a AutoCAD, la columna C también pasa pero encima de la siguiente columna, es por eso que necesito saber cuando esta oculta y si es posible pasarla por alto...

Con respecto a la pregunta anterior de actualizar el dato, yo se que es difícil, pero agradeceré alguna idea, pero por el momento me interesa más esta pregunta...

Hasta luego colega...

Un saludo de SpeedCAD... :-)
Avatar
Experto

Hola, colega!

Estuve algunos días sin acceso a Internet. Así que estoy tratando de ponerme al día.

Estás cerca de la solución:

Worksheets("Sheet1").Columns("C").Hidden

(sin = true)

devolverá FALSE si está visible y TRUE si está oculta.

Puedes usar la sentencia como está o cargarle su resultado a una variable:

ColStat = Worksheets("Sheet1").Columns("C").Hidden

Es decir que dentro de un loop puedes hacer que salte al registro siguiente:

For cols = 1 to 30
If Worksheets("Sheet1").Columns("C").Hidden Then GoTo 88:
'<tu código si no está oculta>
88: Next Cols

Ahora bien si está copiando y pegando una tabla con columna ocultas, tal vez te convendría seleccionar la tabla y luego usar este comando:
SpecialCells(xlCellTypeVisible)

por ejemplo:

Range("B13:C115").Select
Selection.SpecialCells(xlCellTypeVisible).Copy


Espero que estas alternativas te ayuden.

Un abrazo!
Fernando


Usuario
Gracias de nuevo...

La solución era esa...

For cols = 1 to 30
If Worksheets("Sheet1").Columns("C").Hidden Then GoTo 88:
'<tu código si no está oculta>
88: Next Cols

Pero le tuve que hacer una modificacion como esta:

columna = MyArea.Columns(a_cols).Hidden
If columna = True Then
GoTo OtraColumna
End If

Y columna la declare como Boolean y resulto...

Muchas gracias, lo que estaba haciendo antes era activar las columnas ocultas ya que no me quedaba otra...

Ahora con respecto a la pregunta anterior de vincular el dato, te voy a dar la página para que veas un ejemplo de como lo hace, yo baje el programa y lo probé y realmente cambia el dato... pero bueno creo que también pasa por algo de AutoCAD que ya me imagino que puede ser...

La pagina es la siguiente:

http://www.cadstudio.cz/img/xlinkanim.gif

Me gustaria que lo vieras y me mandaras comentarios a eliasunoARROBAhotmail.com (ARROBA = @) si no fuera mucha la molestia...

Bueno espero el comantario y hasta la próxima...

Un saludo de SpeedCAD... :-)