¿Cómo vincular masivamente por columnas casillas de verificación con vba?

Tengo una base datos en las que en las columnas E, F, G Tengo checkbox a partir de la fila 2 y hasta donde termine(fila variable) necesito vincular masivamente a las columna L, M, N a partir de la fila 2 y hasta donde termine los datos((fila variable))

Encontré esta rutina en la red y quise adaptarlo a mis necesidades

Lo intenté vincular la primera columna pero honestamente no pude

Alguien me puede ayudar de favor

Gracias

Sub LinkChecks()
'Update by Extendoffice
I = 2
For Each cb In ActiveSheet.Cells(I, "E")..CheckBoxes
cb.LinkedCell = Cells(I, "L").Address
I = I + 1
Next cb
End Sub

Respuesta
1

Pero qué quieres vincular, ¿el checkbox?

¿Qué tipo de checkbox tienes?

Explica qué quieres hacer, es decir, si activas el checkbox, quieres seleccionar una hoja, ¿cómo se llama la hoja? ¿En cuál celda?

Si el checkbox está activado y lo desactivas, ¿qué quieres hacer?

Control de formulario

pues pretendo para llevar control de documentacion , es decir en la columna "E" voy a control que cada salida de dinero del banco tenga su comprobante impreso(spei) en la segunda columna ("F" pretendo controlar que tenga su formato de" solicitud de pago" y en la tercera columna que tenga su factura 

para finalmente meter una condicional si tiene activado el checkbox se coloree de  verde de lo contrario de amarillo

Gracias

Sigo sin entender, quieres vincularlo a otra hoja o simplemente poner un color en la celda.

A qué le llamas vincular, a lo mejor yo tengo otro concepto. Mejor explica qué quieres hacer.

Podrías poner imágenes y describir paso a paso qué quieres hacer.

O comparte tu archivo en google drive y en la hoja explica qué necesitas.

Así es lo que pretendo más o menos para saber que tengo y que hace falta

Considera lo siguiente, los checkbox y en general cualquier imagen u objeto no pertenece a una celda o no tiene un objeto Range como lo tiene cada celda; la ubicación de los objetos es posicional, entonces debes guiarte por su posición para saber en cuál celda se encuentra.

Por lo tanto, es muy IMPORTANTE!, que la esquina superior izquierda del CheckBox se encuentre dentro de su celda.

En el siguiente ejemplo, el CheckBox seleccionado, su esquina superior izquierda está dentro de la celda E3.

Si la esquina superior izquierda no está dentro de la celda, entonces no va a funcionar.

Primero, debes ajustar todos los checkbox, o borrarlos y crearlos masivamente para que estén dentro de la celda que les corresponda.


Ya que están dentro de su celda. Ejecuta la siguiente macro.

Sub LinkChecks()
  Dim cb As Object
  For Each cb In ActiveSheet.DrawingObjects
    If TypeName(cb) = "CheckBox" Then
      cb.LinkedCell = cb.TopLeftCell.Address
    End If
  Next
End Sub

Lo siguiente es arreglar con formato condicional el valor de la celda. Te recomiendo que utilices la misma celda para hacer el "enlace".


Estas son las reglas de formato condicional que puse en mi ejemplo:

El formato de la celda y del texto tienen el mismo color, por eso no se ven los textos "VERDADERO" o "FALSO".

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas