Casilla de verificación asignada a celda sobre la que está.

14/10/2004 - 19:09 por Donca | Informe spam
Hola:

Quiero hacer lo siguiente, y debido a que estoy a cero absoluto en comandos
de VB, no sé cómo hacerlo.

Sitúo una casilla de verificación, sobre la celda B2, y quiero que cuando la
casilla esté activada, en B2 me aparezca "VERDADERO". Hasta ahí llego :). El
problema viene cuando selecciono la celda B2, y la arrastro hacia abajo, con
la intención de que la casilla de verificación, vaya cambiando de celda
vinculada a medida que arrastro. Es decir, que quisiera que después de
arrastrar la celda B2 con su casilla de verificación hacia abajo, la casilla
de verificación que se ha creado sobre la celda B13, esté vinculada a la
celda B13, y no a la B2. He quitado los singos "$" de dirección absoluta
antes de arrastrar, pero el resultado no es correcto.

Gracias por llegar hasta aquí, y me decís si es que no he sido capaz de
explicar una cosa que supongo que será muy sencilla.
Saludos,
Donca.
 

Leer las respuestas

#1 Héctor Miguel
15/10/2004 - 08:17 | Informe spam
hola, Donca !

... una casilla de verificacion, sobre la celda B2
... selecciono ... B2, y la arrastro hacia abajo ... que la casilla ... vaya cambiando de celda vinculada [...]



[seguramente] la casilla la incrustaste usando la barra de herramientas 'formularios'
[si es de 'cuadro de controles'... necesitaras estar en 'modo de diseño' para poder 'copiarlas' con las celdas]
[hasta donde se] se requiere codigo para modificar la propiedad 'linkedcell' usando la propiedad 'topleftcell'
suponiendo que el borde superior del control 'coincide' con [o queda 'dentro' de] la celda a la que se 'vincula'...
en un modulo de codigo 'normal' ==Sub VincularCasillas()
Dim Casilla As CheckBox
For Each Casilla In ActiveSheet.CheckBoxes
Casilla.LinkedCell = Casilla.TopLeftCell.Address
Next
End Sub

o... si fue con la barra de herramientas 'cuadro de controles'...
Dim ChkBox As OLEObject
For Each ChkBox In ActiveSheet.OLEObjects
If ChkBox.ProgId = "Forms.CheckBox.1" Then
ChkBox.LinkedCell = ChkBox.TopLeftCell.Address
End If
Next

-> si el borde superior del control [realmente] esta 'sobre' la celda superior...
cambia la propiedad 'topleftcell' a... TopLeftCell.Offset(1).Address

saludos,
hector.

Preguntas similares