Necesito que al escribir en una celda, se rellenen otras celdas contiguas

Desde un formulario yo relleno una fila con 8 columnas, Con una macro copiada de DANTE AMOR, he conseguido que al escribir en una celda se ponga la fecha y la hora y que no se pueda borrar. Ahora necesito que al escribir un dato en una celda (de la misma columna y sin usar el formulario), se rellenen las otras celdas contiguas a ésta, con los datos del último registro. Ejemplo: en la fila 1 escribo datos en 6 columnas en la A escribo "A", en la B escribo "22", en la C escribo "23R" y en la D escribo "Gloria1".

La macro debe volver a colocar los datos en las columnas A, B, C, cuando escriba "Gloria1" en la celda D de la fila 100, entre la fila 2 y la 100 el dato "Gloria1" es la primera vez que se escribe.

Respuesta
2

H o l a:

Te anexo la macro, va en los eventos de la hoja.

Private Sub Worksheet_Change(ByVal Target As Range)
'Por.Dante Amor
    ActiveSheet.Unprotect
    If Not Intersect(Target, Range("C:C")) Is Nothing Then
        Range("A" & Target.Row) = Date
        Range("B" & Target.Row) = Format(Now, "hh:mm")
    End If
    u = Range("A" & Rows.Count).End(xlUp).Row
    On Error Resume Next
    Range("A5:Z" & u).SpecialCells(xlCellTypeBlanks).Locked = False
    Range("A5:Z" & u).SpecialCells(xlCellTypeConstants, 23).Locked = True
    On Error GoTo 0
    ActiveSheet.Protect
    If Not Intersect(Target, Range("F:F")) Is Nothing Then
        Set r = Range("F4:F" & Target.Row - 1)
        Set b = r.Find(Target.Value, lookat:=xlWhole, SearchDirection:=xlPrevious)
        If Not b Is Nothing Then
            'C, D, E, G y H.
            Cells(Target.Row, "C") = Cells(b.Row, "C")
            Cells(Target.Row, "D") = Cells(b.Row, "D")
            Cells(Target.Row, "E") = Cells(b.Row, "E")
            Cells(Target.Row, "G") = Cells(b.Row, "G")
            Cells(Target.Row, "H") = Cells(b.Row, "H")
        End If
    End If
End Sub

' : )
'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias
' : )

¡Gracias! Señores Todo expertos,

Gracias Sr Dante Amor, La macro que me ha enviado funciona correctamente conforme a lo que necesitaba. Le doy Gracias a mi Padre Dios por darte esos dones tan maravillosos en programación VBA. Que el Dios omnipotente te bendiga.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas