Eliminar contenido celdas con macro

Tengo una hoja con una tabla con datos en tres columnas con el siguiente encabezamiento:
Primera columna encabezamiento en celda B4= DIA
Segunda columna encabezamiento en celda C4= FECHA
Tercera columna encabezamiento en celda D4= HORAS
Los datos comienza en la fila 5 y llegan hasta la fila 30 (aunque el final me da lo mismo)
Busco una macro que cuando en la celda de la columna A de cada uno de los registros que contienen datos tenga valor "X" u otro símbolo, borre los datos de esos registros, solo deseo que borre los datos de fecha y horas pues los de día es un dato automático y no necesito que se borre.
Una vez que los datos estén borrados, necesito que esta macro llame a otra macro ("ordenar") que tengo preparada y que a la vez que me ordena los datos, me realiza un filtro de los registros que no están vacios.

1 respuesta

Respuesta
1

[Hola 

Te paso la macro 

Private Sub Worksheet_Change(ByVal Target As Range)
'
'**Por Adriel Ortiz
'
    If Not Intersect(Target, Range("A4:A30")) Is Nothing Then
        If Target.Count > 1 Then Exit Sub
        If Target.Row < 4 Then Exit Sub
            If Cells(Target.Row, "A") = "X" Then
                Cells(Target.Row, "C") = ""
                Cells(Target.Row, "D") = ""
            End If
    End If
    'aquí pones la macro para ordenar...
    '
    '
End Sub

Valora la respuesta como Excelente o bueno saludos!

No entiendo muy bien esta macro.

La he colocado en un modulo y no me aparece en la lista de opciones para ejecutar macro

La he colocado también en thisworkbook por si era un error mio pero tampoco aparece.

Donde debería colocar esta macro?

Un saludo

Solucionado, la he colocado en la hoja tecleando click derecho y dentro de "ver código" y va perfecto,

Muchas gracias

Hola Adriel.

Una consultita mas.

He conseguido hacer funcionar la macro, pero tengo un pequeño problema, solo me funcionar cuando la "X"  es mayúscula, desearía que aceptara también en minúscula, es posible?

y que me pida confirmación para borrar el contenido, es decir, cuando coloco la "X"  y de intro, salga un mensaje indicando "Esta seguro de eliminar el registro?"

Ahora elimina el contenido al colocar la "X" y pasar a otra celda, sin tener que dar "intro".

Es normal pues se queda grabada la "X".

Y ya para terminar, es posible que cuando al teclear "X" se borre el contenido de las otras dos celdas y que posteriormente se borre también la "X".

Gracias por adelantado

Macro actualizada, cambia todo por esto

Private Sub Worksheet_Change(ByVal Target As Range)
'
'**Por Adriel Ortiz
    valor = "x"
    If Not Intersect(Target, Range("A4:A30")) Is Nothing Then
        If Target.Count > 1 Then Exit Sub
        If Target.Row < 4 Then Exit Sub
            If UCase(Cells(Target.Row, "A")) = UCase(valor) Then
                If MsgBox("Esta seguro de eliminar el registro??", vbYesNo) = vbYes Then
                    Cells(Target.Row, "C") = ""
                    Cells(Target.Row, "D") = ""
                    Cells(Target.Row, "A") = ""
                End If
            End If
    End If
    'aquí pones la macro para ordenar...
    '
    '
End Sub

Hola de nuevo.  Me da error de sintaxis en valor = "x"

Es la imagen que me sale

gracias

Va

Private Sub Worksheet_Change(ByVal Target As Range)
'
'**Por Adriel Ortiz
    If Not Intersect(Target, Range("A4:A30")) Is Nothing Then
        If Target.Count > 1 Then Exit Sub
        If Target.Row < 4 Then Exit Sub
            If LCase(Cells(Target.Row, "A")) = "x" Then
                If MsgBox("Esta seguro de eliminar el registro??", vbYesNo) = vbYes Then
                    Cells(Target.Row, "C") = ""
                    Cells(Target.Row, "D") = ""
                    Cells(Target.Row, "A") = ""
                End If
            End If
    End If
    'aquí pones la macro para ordenar...
    '
    '
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas