Jump to content

Cambio de color al recibir un enfoque


solbete

Recommended Posts

Hola Amigos,

Necesito vuestra ayuda. Tengo un formulario compuesto por Textbox y Combobox. He añadido un procedimiento en el que eligiendo un criterio de búsqueda el cursor se dirige al campo correspondiente (recibe automáticamente el foco) y cambia de color de fondo, de blanco a amarillo (el mismo que tiene el buscador). Si elijo otro diferente, el campo anterior recupera el color original. 

Ahora necesito algo parecido, donde automáticamente  si me sitúo en algún campo (al recibir foco) cambie color de fondo con el mismo color que el buscador(es decir amarillo),  y que al abandonarlo recupere el color original (blanco).

Gracias por vuestra ayuda. 

CambioColorEnfoque.xlsm

Link to post
Share on other sites
Private Sub TextBox1_Enter():  CambiaColor TextBox1: End Sub
Private Sub TextBox2_Enter():  CambiaColor TextBox2: End Sub
Private Sub TextBox3_Enter():  CambiaColor TextBox3: End Sub
Private Sub ComboBox1_Enter(): CambiaColor ComboBox1: End Sub

Private Sub CambiaColor(Control As Control)
TextBox1.BackColor = vbWhite
TextBox2.BackColor = vbWhite
TextBox3.BackColor = vbWhite
Control.BackColor = ComboBox1.BackColor
End Sub

 

Link to post
Share on other sites

Genial Antoni, muchas gracias.

Solo una cosa, ¿es posible hacer lo mismo para todos los Textbox sin necesidad de repetir Private Sub Textbox1_Enter(), tantos como cuadros de texto existan en la hoja?

Con tu permiso he modificado el modulo, unificando de esta manera. Entiendo que el resultado es el mismo. Funcionar funciona, pero como digo, no se si es posible añadir una única linea "..._Enter()  para todos los textbox que hayan en formulario. O tengo que crearlas tantas como existan.

Private Sub CambiaColor(Control As Control)
For u = 1 To 3
Controls("TextBox" & u).BackColor = vbWhite
Next
Control.BackColor = ColorText.BackColor
End Sub

 

Link to post
Share on other sites

Archived

This topic is now archived and is closed to further replies.



  • Posts

    • Hola Antoni, muchísimas gracias por tu tiempo y por ayudarme con este tema.   Me encanta lo de los "nuevos CheckBox", sin duda es más elegante y productivo. Además con la base de datos que trabaja se refresca mejor toda la pantalla.   El archivo que he subido obviamente solo es un pequeño ejemplo, pero en el real hay 700 CheckBox (una locura con la cual es muy fácil meter la pata) Así que si consigo que todo me funcione bien los cambiaré por tu propuesta, pues me parece fantástica, de verdad.   El problema es que aun no consigo que funcione, intentaré explicarme mejor. Tu solución me permite verificar si en el rango de las casillas marcadas, se da una concordancia y eso es genial. Pero la cuestión es que, para que el sistema lo de por correcto, todas las casillas marcadas deben de dar una concordancia, si una de ellas falla, entonces no puede dar "ok" Seguro que es "fácil" de arreglar, pero mis conocimientos son limitados. ¿Me hechas un último cable? Gracias.
    • Hola! Como dice el título, necesito impedir que se puedan introducir datos en algunas celdas de una hoja. A priori parece una cuestión sencilla pero hay que tener en cuenta algunas cosas: La hoja tiene un esquema el cual se debe desplegar y plegar cuando el usuario quiera. No es posible utilizar macros, porque el usuario abrirá el archivo con Excel Online. ¿Alguna idea? Gracias!
    • Nunca usé google sheets, pero supongo que esta fórmula debería funcionar (en la celda O2) Esto no cumple la condición de que "tenga menos selecciones[menos repetidos en las semanas]" (que sí lograba la fórmula de Silvia pero veo que no es compatible con google sheets) pero sí debería generar valores cíclicos. Se podría agregar además dentro de cada segmento la condición de que E2<>"-" F2<>"-" y así sucesivamente para obviar estos valores.  
    • He eliminado todos los checkbox, para lo que quieres es mejor utilizar una fuente con caracteres especiales (Webdings). En esta fuente, la a minúscula simula visualmente un checkbox, con lo cual es mucho más sencillo lo que pretendes. Selecciona cualquier celda de la columna D y alternativamente se irá visualizando/eliminando el "checkbox". Para ello he añadido esta macro en la hoja Hoja1. Private Sub Worksheet_SelectionChange(ByVal Target As Range) 'Exit Sub 'Activar esta insrucción para manipular la columna D If Target.Column = 4 Then If Target(1, 1) = "" Then Target(1, 1) = "a" Else Target(1, 1) = "" End If Target(1, 1).Offset(0, -1).Select End If End Sub He adaptado la macro buscar al nuevo escenario. El resto inténtalo tú.   demo.xlsm
  • Recently Browsing

    No registered users viewing this page.

×
×
  • Create New...

Important Information

Privacy Policy