Poner color a texto

Hola que tal. Te doy las gracias de antemano.
Bueno, lo que quiero hacer es lo siguiente:
Tengo una hoja con nombre y números y conceptos, bien en los conceptos es para poner "DAR DE BAJA", y esta celda cuando le pongo ese concepto, con formato condicional se pone con fondo rojo y testo en blanco.
Bien, lo que pretendo ahora es que cuando en concepto ponga "DAR DE BAJA", el nombre del socio, y su número, se pongan también automáticamente con los mismos colores.
Te agradecería me indicaras si se puede hacer y cómo.
Un saludo
1

1 respuesta

1
Respuesta de
Puedes usar un código de este estilo a nivel de página:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim nuevoColor As Integer
    ' Comprobamos que en la celda B5 aparezca el texto DAR DE BAJA
' si es así, el nuevo color será el 3 (rojo), en caso contrario el 0 (negro)
    If Me.Cells(5, 2) = "DAR DE BAJA" Then nuevoColor = 3 Else nuevoColor = 0
    ' Ponemos del nuevo color las celdas del nombre, número de socio y las que sean
    Me.Cells(1, 2).Font.ColorIndex = nuevoColor ' Pone del nuevo color B1
    Me.Cells(2, 2).Font.ColorIndex = nuevoColor ' Pone del nuevo color B2
    Me.Cells(3, 2).Font.ColorIndex = nuevoColor ' Pone del nuevo color B3
    Me.Cells(4, 2).Font.ColorIndex = nuevoColor ' Pone del nuevo color B4
End Sub
Espero que te funcione
Hola, mira me he perdido con lo que me pones, por lo que observo eso debe ser para programar una macro, desgraciadamente ese compo no lo domino.
Hay alguna otra forma de hacerlo, si por el ocntrario es no. Me podrías explicar como poder escribir lo que me indicas.
Gracias
Un saludo
Tienes que entrar en el editor de Visual Basic (con las teclas <Alt><F11> o en herramientas - macros - editor de visual basic).
En la parte izquierda (normalmente) de la pantalla te aparecerá el explorador de "Proyectos". Si no está, en el menú 'ver' puedes hacer que se presente o bien pulsando <Ctrl><R>.
Tendrás que seleccionar (doble click en la ventana del explorador de proyectos) la página donde quieres que te funcione el código. Se trata de un procedimiento que funciona a nivel de página, por lo que si lo escribes en una página que no corresponde... no te funcionará.
Cuando selecciones la página sólo te aparecerá la línea de 'Option Explicit'. Copia el texto que te puse antes y recuerda que cuando abras el libro tienes que pinchar en 'habilitar macros' para que te funcione.
Un saludo
Hola, que tal.
Bueno, he probado lo que me has dicho en una hoja nueva y sunciona, pero no como yo esperaba. Te explico
En mi caso donde aparece el texto DAR DE BAJA es en la columna X, y las columnas C, D, y E, son las que sedeberán poner de color rojo y a ser posible en negrita, pero sólo en aquellas filas donde en X aparezca DAR DE BAJA.
Esto ha sido lo que he copiado
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim nuevoColor As Integer
    ' Comprobamos que en la celda B5 aparezca el texto DAR DE BAJA
' si es así, el nuevo color será el 3 (rojo), en caso contrario el 0 (negro)
    If Me.Cells(5, 2) = "DAR DE BAJA" Then nuevoColor = 3 Else nuevoColor = 0
    ' Ponemos del nuevo color las celdas del nombre, número de socio y las que sean
    Me.Cells(1, 2).Font.ColorIndex = nuevoColor ' Pone del nuevo color B1
    Me.Cells(2, 2).Font.ColorIndex = nuevoColor ' Pone del nuevo color B2
    Me.Cells(3, 2).Font.ColorIndex = nuevoColor ' Pone del nuevo color B3
    Me.Cells(4, 2).Font.ColorIndex = nuevoColor ' Pone del nuevo color B4
End Sub
Por favor indicame que debo cambiar.
Gracias un saludo
Si quieres que se ejecute para todas las celdas de la columna POR (columna nº 24), prueba con este código:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim i As Integer
    Dim aux As String
    Dim snBaja As Boolean
    For i = 1 To Me.Cells.SpecialCells(xlCellTypeLastCell).Row
        snBaja = Me.Cells(i, 24) = "DAR DE BAJA"
        aux = "C" & Format$(i) & ":E" & Format$(i) ' Rango de celdas Cxx:Exx
        If snBaja Then
            Me.Range(aux).Font.ColorIndex = 3
          Else
            Me.Range(aux).Font.ColorIndex = 0
        End If
        Me.Range(aux).Font.Bold = snBaja
    Next i
End Sub
Un saludo
Hola, Bueno después de introducir lo que me indicas, funciona muy bien.
Antes de finalizar la pregunta, me podrías indicar donde puedo conseguir un buen libro sobre la programación de Visual Basic para Excel, manual, etc.
Gracias por tu ayuda.
Un salu 2 :)
Siento no poder ayudarte en esa última pregunta. No conozco nada de libros sobre Visual Basic ni de Excel.
Yo aprendí Basic hace más de 25 años y el trabajo me ha obligado a ingeniármelas muchas veces.
Siempre que tengo dudas busco las cosas por internet. La página que más suelo consultar es la de Visual Basic de "El Guille", pero también la de Microsoft ayuda bastante. Eso sí, siempre que sepas lo que estás buscando y tengas claro lo que quieres hacer.
Un saludo
Muchas gracias por tu ayuda.
Buscaré por internet aver si hay alguna cosa, por lo menos para poder empezar.
Gracias de nuevo y un cordial saludo
No se si volveré a preguntarte otra cosa si se me vuelve a plantear otra duda, si no es así, y adelantándome un poco a las fiestas navideñas, tedeseo una feliz navidad y un prospero año nuevo.
(xxxxxx).
Añade un comentario a esta respuesta
Añade tu respuesta
Haz clic para o
Escribe tu mensaje
¿No es la respuesta que estabas buscando? Puedes explorar otras preguntas del tema Microsoft Excel o hacer tu propia pregunta: