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

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

  • Crear macros Excel

  • Posts

    • Buenas tardes, expertos solicito una ayuda para concatenar dos columnas una de ellas es en cuanto a la fechas, lo que pasa es que la macro que tengo concatena muy bien, solo tengo un inconveniente con las fechas dicha columna (I) estas formateadas por ejemplo asi: Feb-20 pero al concatenar el resultado asi: O-2AA6220/09/2021, pero asi no quiero, me gustaria concatenar que salga asi: A-234RV44032 los 5 ultimos digitos son de la fecha, bueno asi me gustaria que quede, la macro que estoy usando es: Sub Concatenar() uFila = Range("H" & Cells.Rows.Count).End(xlUp).Row pFila = 1 For fila = pFila + 1 To uFila     Range("O" & fila) = Range("H" & fila) & Range("I" & fila) Next fila End Sub Por favor si me podria dar una ayuda estare muy agradecido. Adjunto el archivo Consolidado.xlsm
    • Con la grabadora Pero son demasiadas filas. Sub Macro1() Range("C3:I7").Select Selection.Copy Range("C12").Select ActiveSheet.Paste Application.CutCopyMode = False Selection.Copy Range("C21").Select ActiveSheet.Paste Application.CutCopyMode = False End Sub Hace tiempo que no entro en el foro y no veo la opcion de subir libro. Un Saludo.
    • Desconozco si por falta de aportación de datos, no me pueden ayudar  o es que no se puede desarrollar esta macro. Gracias.
    • Antoni muchas gracias, eso lo que esperaba. Consegui también estas lineas codigo. Sub Rellenar() Dim uf, fila As Integer uf = Sheets("Consolidar").Range("A" & Rows.Count).End(xlUp).Row fila = 2 While fila <= uf If Sheets("Consolidar").Cells(fila, 2) = Empty Then    Sheets("Consolidar").Cells(fila, 2) = "DIGITAL" End If fila = fila + 1 Wend End Sub
    • Range("B2:B" & ActiveSheet.UsedRange.Rows.Count) = "DIGITAL"  
  • Recently Browsing

    No registered users viewing this page.

×
×
  • Create New...

Important Information

Privacy Policy