Marcar una celda si contiene determinado valor.

Expertos,

Espero que me puedan ayudar a correguir la siguiente macro.

Tengo un reporte donde tengo en la columna C hay algunas celdas con la palabra "Equipo" y otros con la Fecha. Lo que necesito es que la macro recorra la columna C y que cada vez que encuentre "Equipo" o una celda con números (que serian fecha), escriba el valor 1 en la misma fila pero en la columna A, de lo contrario que escriba 0

Basicamente lo que necesito es eliminar las filas donde en la columna C no se encuentren la palaba "Equipo" ni exista fechas.

Estoy trabajando en la siguiente macro, la cual he recopilado de diferentes códigos, pero no logro dar para que me escriba 1 en la columna A.

Sub Macro1()

Dim celda As string
Range("C1:C" & Range("E" & Rows.Count).End(xlUp).Row).Select

For Each celda In Selection
On Error Resume Next
If Val(celda) = "Equipo" Then
ActiveCell.Offset(0, -2).Select
ActiveCell.Value = 1
End If

Next

End Sub

1 Respuesta

Respuesta
1

De acuerdo a esto

Basicamente lo que necesito es eliminar las filas donde en la columna C no se encuentren la palaba "Equipo" ni exista fechas.

Te paso la macro

Sub Eliminar()
    Set h1 = Sheets("Hoja1") 'Nombre de la hoja
    '
    u = h1.Range("C" & Rows.Count).End(xlUp).Row
    For i = u To 2 Step -1
        If Not (IsDate(h1.Cells(i, "C")) Or h1.Cells(i, "C") = "Equipo") Then
        h1.Rows(i).Delete
        End If
    Next i
    MsgBox "Datos Eliminados"
End Sub

Valora la respuesta para finalizar saludos!

¡Gracias!

Oh super ! Muchas gracias

Me di varias vueltas para comenzar a entender este código, logré entender que comienza a recorrer la fila desde abajo hacia arriba.. je je. Hice varios supuestos pensando que era de arriba hacia abajo hasta que logré entender el step -1

u = h1.Range("C" & Rows.Count).End(xlUp).Row
    For i = u To 2 Step -1

Muchas gracias por el conocimiento! 

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas