A esta macro, no variar fecha y cambiar escritura al volver a escribir

En esta macro cuando escribo por primera vez en la columna "D", perfecta :

Private Sub Worksheet_Change(ByVal Target As Range)
'Por.Dante Amor
If Not Intersect(Target, Range("B10:E6000")) Is Nothing Then
Application.EnableEvents = False
ActiveSheet.Unprotect Password:="1"
For Each c In Target
If Not Intersect(c, Range("D10:D6000")) Is Nothing Then
If Range("B" & c.Row) = "" Then fbold = False Else fbold = True
Range("B" & c.Row) = Date - 1
End If
c.Value = UCase(c.Value)
Next
Application.EnableEvents = True
ActiveSheet.Protect Password:="1"
End If
End Sub

Y necesitaria, que cuando escribo por segunda vez en la columna "D" :
1º/ Que no me cambie la fecha
2º/ Que me cambie de color de la letra a BLANCA en el Range("B:E")
3º/ Que me cambie a negrita la letra en el Range("B:E")
4º/ Que me cambie de color las celdas a ROJO en el Range("B:E")

Range("B" & c.Row & ":E" & c.Row).Font.Bold = fbold
Range("B" & c.Row & ":E" & c.Row).Interior.ColorIndex = 3
Range("B" & c.Row & ":E" & c.Row).Font.ColorIndex = 2

1 respuesta

Respuesta
1

H o l a:

Realiza pruebas con la siguiente y me comentas si le falta algo:

Private Sub Worksheet_Change(ByVal Target As Range)
'Por.Dante Amor
    If Not Intersect(Target, Range("D10:D6000")) Is Nothing Then
        Application.EnableEvents = False
        ActiveSheet.Unprotect Password:="1"
        For Each c In Target
            If Range("B" & c.Row) = "" Then
                Range("B" & c.Row) = Date - 1
            Else
                Range("B" & c.Row & ":E" & c.Row).Font.Bold = True
                Range("B" & c.Row & ":E" & c.Row).Interior.ColorIndex = 3
                Range("B" & c.Row & ":E" & c.Row).Font.ColorIndex = 2
            End If
            c.Value = UCase(c.Value)
        Next
        Application.EnableEvents = True
        ActiveSheet.Protect Password:="1"
    End If
End Sub

s aludos

Hola Dante

Perfecto, con un pero, que en las columnas "C" y "E", no me las pone en mayúsculas.

Un Saludo

Listo!

Private Sub Worksheet_Change(ByVal Target As Range)
'Por.Dante Amor
    If Not Intersect(Target, Range("B10:E6000")) Is Nothing Then
        Application.EnableEvents = False
        ActiveSheet.Unprotect Password:="1"
        For Each c In Target
            If Not Intersect(c, Range("D10:D6000")) Is Nothing Then
                If Range("B" & c.Row) = "" Then
                    Range("B" & c.Row) = Date - 1
                Else
                    Range("B" & c.Row & ":E" & c.Row).Font.Bold = True
                    Range("B" & c.Row & ":E" & c.Row).Interior.ColorIndex = 3
                    Range("B" & c.Row & ":E" & c.Row).Font.ColorIndex = 2
                End If
            End If
            c.Value = UCase(c.Value)
        Next
        Application.EnableEvents = True
        ActiveSheet.Protect Password:="1"
    End If
End Sub

s aludos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas