Imprimir página | Cerrar ventana

Check dependiendo de dato de celda

Impreso de: Foro de Access y VBA
Categoría: Otros de Microsoft: Windows y Office
Nombre del foro: Excel
Descripción del foro: Foro de Excel y VBA de Excel
URL: http://www.mvp-access.com/foro/forum_posts.asp?TID=86380
Fecha de impresión: 26/Marzo/2026 a las 20:58


Tema: Check dependiendo de dato de celda
Publicado por: RobertoCarlos
Asunto: Check dependiendo de dato de celda
Fecha de publicación: 12/Junio/2022 a las 22:27
Buenas tardes colaboradores, quiero usar un CheckBox de VBA ya saben controles de desarrollador de VBA para excel
que es lo que quiero por ejemplo quiero que si en una celda tengo la palabra Enero, que el Checkbox que tengo en otra celda se coloque check o value = True pero no consigo, les muestro lo que he hecho.
Sub Casilla1_Haga_clic_en()
If Range("F2").Value = "Lunes" Then CheckBoxLunes. = True
End Sub

Tal vez me falta algo, o es que solamente se puede hacer a la inversa, me refiero que cuando el Checkbox.Value = True en una celda se ponga algo?

agradezco toda la ayuda que me puedan dar.

Gracias

Roberto


-------------
Roberto



Respuestas:
Publicado por: AnSanVal
Fecha de publicación: 13/Junio/2022 a las 10:00


1.- Los CheckBox VBA (Casillas de verificación VBA), NO se colocan en celdas. En celdas se colocan Casillas (control de formulario) o Casillas (control ActiveX) de la cinta de opciones.


2.- El código If Range("F2").Value = "Lunes" Then CheckBoxLunes. = True  nunca tendrá efecto. No tiene ninguna relación ese código con que en [F2] tengas «Enero».





-------------
Saludos desde Tenerife.


Publicado por: RobertoCarlos
Fecha de publicación: 15/Junio/2022 a las 22:19
Acabo de Darme cuenta.

Muchas gracias


-------------
Roberto


Publicado por: AnSanVal
Fecha de publicación: 15/Junio/2022 a las 23:21

► Siendo así y suponiendo las casillas, vinculadas con misma fila y columna A:


VERDADERO
Casilla 1
(control de formulario) Lunes
FALSO
(control ActiveX) Martes


En un módulo ordinario (para: Casilla control de formulario):

Sub Casilla2()

  If [A2].Value = True Then [F2].Value = "Lunes" Else [F2].ClearContents

End Sub


En el módulo de la hoja (para: Casilla Control ActiveX y evento Change):

Private Sub CheckBox1_Click()

  If [A3].Value = True Then [F3].Value = "lunes" Else [F3].ClearContents

End Sub


Private Sub Worksheet_Change(ByVal Target As Range)

  Select Case Target.Column

    Case 6

'con «LCase» es igual: lunes, LUNES o Lunes.

      Target.Offset(0, -5).Value = LCase(Target) = "lunes"

  End Select

End Sub







-------------
Saludos desde Tenerife.


Publicado por: RobertoCarlos
Fecha de publicación: 17/Junio/2022 a las 16:54
Muy bien muchisimas gracias.
gracias por el tiempo, y las ideas


Cierro el hilo por favor 


-------------
Roberto



Imprimir página | Cerrar ventana