Borrar celdas de un rango según condición de una cerda fuera del rango borrado.

Quiero crear una macros con la cual: si el valor de la celda de la columna F es igual a un condicionante, entonces las celdas de las columnas J a V se limpien.

Si F3="masa", entonces J3:V3 Clean 

Lo que llevo hasta el momento, y no me sirve, es:

Sub Limpiar ()

Dim Celda In Range ("J:V")

If (Celda.Value= "Masa") Then Celda ClearContents

End sub

2 Respuestas

Respuesta
1

H o  la :

Si lo quieres hacer para todas las filas de la columna F que contienen datos:

Sub Limpia_A()
'Por.Dante Amor
    For i = 3 To Range("F" & Rows.Count).End(xlUp).Row
        If Cells(i, "F") = "masa" Then
            Range(Cells(i, "J"), Cells(i, "V")).ClearContents
        End If
    Next
End Sub

Si solamente lo quieres hacer para la celda F3

Sub Limpia_B()
'Por.Dante Amor
    If Range("F3") = "masa" Then
        Range("J3:V3").ClearContents
    End If
End Sub

Revisa que el contenido de la celda esté en minúsculas, de lo contrario tienes que comparar minúsculas con minúsculas para que la condición se cumpla, por ejemplo:

Sub Limpia_A()
'Por.Dante Amor
    For i = 3 To Range("F" & Rows.Count).End(xlUp).Row
        If LCase(Cells(i, "F")) = "masa" Then
            Range(Cells(i, "J"), Cells(i, "V")).ClearContents
        End If
    Next
End Sub

Le estoy indicando que al momento de comparar, compare las minúsculas de la celda con la palabra "masa", ya que la palabra "masa" en el código de VBA está en minúsculas.

Avísame cualquier duda.

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias
Respuesta
1

Elena buenas tardes.

La macro es muy sencilla, ni siquiera requiere hacer declaraciones de variables

Puede ser así

Sub Borrar()
'If Range("f3").Value = "masa" Then

Range("J3:V3").Select
Selection.ClearContents
End If

End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas