Jump to content

Cambiar color de fondo automaticamente de un cuadro de texto normal (no es control de formulario) al color que tenga de fondo una celda


Recommended Posts

Buenas,

necesito ayuda, no soy capaz de que el color de un cuadro de texto normal, no el que se añade desde la pestaña programador, sea igual al color de una celda que se encuentra en otra hoja, y este cambie automaticamente el color de la celda.

una ayudita porfa

muchas gracias!

Link to comment
Share on other sites

Te adjunto un ejemplo

La celda A1 de la hoja2 tiene color de fondo, mismo que va tomar el textbox de la hoja1, cuando la hoja sea la activa

Y si seleccionas el textbox, también va tener el mismo efecto, y si seleccionas una celda, se va quitar dicho color

 

Saludos 

 

Textbox en hoja_GP.xlsm

Link to comment
Share on other sites

Muchas gracias por la respuesta pero no es exactamente lo que necesito, en primer lugar yo no tengo un textbox, yo tengo un cuadro de texto que se añade desde la pestaña insertar>texto>cuadro de texto, y busco que dicho cuadro de texto cambie de color automaticamente al color de una celda que esta en otra hoja, sea o no la hoja activa. Les adjunto unas fotos.

Quiero que en los Cuadros de Texto de la primera imagen aparezcan del mismo color que las celdas de color de la segunda imagen y que cuando yo cambie el color de la celda de la segunda imagen el color del cuadro de texto cambie también de forma automática sin ser necesario que sea la hoja principal.

espero haberme explicado bien, a ver si podéis ayudarme

ayuda1.JPG

ayuda2.JPG

Link to comment
Share on other sites

De forma automática, no va a poder ser, pero si a través de una macro que tendrías que ejecutar de forma manual. (Botón, short key o escogiéndola de la lista de macros (Alt+F8),etc...)

Pero es necesario el archivo Excel, con solo las imágenes, no hacemos nada.

Link to comment
Share on other sites

Activa cualquier hoja objetivo y ejecuta esta macro.

Se supone que el color se asigna a través de formato condicional.

Sub ActualizarColor()
Application.ScreenUpdating = False
For Each motor In ActiveSheet.Shapes
    motor.Select
    If Selection.Formula <> "" Then
       fórmula = Replace(Selection.Formula, "'", "")
       i = InStr(fórmula, "!")
       hoja = Left(fórmula, i - 1)
       rango = Trim(Mid(fórmula, i + 1))
       Set celda = Sheets(hoja).Range(rango).Offset(3)
       Selection.ShapeRange.Fill.ForeColor.RGB = celda.DisplayFormat.Interior.Color
     End If
Next
ActiveCell.Select
End Sub

 

Link to comment
Share on other sites

Un poco mas ortodoxo.

Sub ActualizarColor()
Application.ScreenUpdating = False
For Each motor In ActiveSheet.Shapes
    motor.Select
    If Selection.Formula <> "" Then
       Selection.ShapeRange.Fill.ForeColor.RGB = _
       Range(Selection.Formula).Offset(3).DisplayFormat.Interior.Color
     End If
Next
ActiveCell.Select
End Sub

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Crear macros Excel

  • Posts

  • Recently Browsing

    No registered users viewing this page.

×
×
  • Create New...

Important Information

Privacy Policy