Eliminar contenido de celda sin alterar otras celdas.

Quisiera que me apoyen con el siguiente problema. Elabore una plantilla en excel que utiliza listas desplegables, y utilice el siguiente comando para poder obtener un resultado cercano a lo que quiero:

If Target = Range("$A$8") Then
Range("A8").Value = ""
Range("B8").Value = ""
Range("C8").Value = ""
Range("D8").Value = ""
Range("F8").Value = ""
End If

Pero pasa lo siguiente, cuando lleno la primera línea de mi plantilla la fórmula trabaja de forma correcta. Es decir vaciando la celda que tiene que vaciar, pero cuando continuo con las demás líneas es donde aparece el siguiente problema.

Selecciono una celda especifica para que elimine el contenido de la misma, pero al mismo tiempo me elimina el contenido de otras celdas más.

1 Respuesta

Respuesta
1

H o  l a:

Puedes poner la macro completa.

Explícame qué es lo que quiere hacer. Es decir paso a paso qué es lo que vas a hacer en excel y qué es lo que quieres que haga la macro.

¡Gracias!  por la ayuda te remito toda la macro: 

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target = Range("$A$8") Then
Range("A8").Value = ""
Range("B8").Value = ""
Range("C8").Value = ""
Range("D8").Value = ""
Range("F8").Value = ""
End If

If Target = Range("$B$8") Then
Range("B8").Value = ""
Range("C8").Value = ""
Range("D8").Value = ""
Range("F8").Value = ""
End If

If Target = Range("$C$8") Then
Range("C8").Value = ""
Range("D8").Value = ""
Range("F8").Value = ""
End If

If Target = Range("$D$8") Then
Range("D8").Value = ""
Range("F8").Value = ""
End If

If Target = Range("$F$8") Then
Range("F8").Value = ""
End If

If Target = Range("$A$9") Then
Range("A9").Value = ""
Range("B9").Value = ""
Range("C9").Value = ""
Range("D9").Value = ""
Range("F9").Value = ""
End If

If Target = Range("$B$9") Then
Range("B9").Value = ""
Range("C9").Value = ""
Range("D9").Value = ""
Range("F9").Value = ""
End If

If Target = Range("$C$9") Then
Range("C9").Value = ""
Range("D9").Value = ""
Range("F9").Value = ""
End If

If Target = Range("$D$9") Then
Range("D9").Value = ""
Range("F9").Value = ""
End If

If Target = Range("$F$9") Then
Range("F9").Value = ""
End If

If Target = Range("$A$10") Then
Range("A10").Value = ""
Range("B10").Value = ""
Range("C10").Value = ""
Range("D10").Value = ""
Range("F10").Value = ""
End If

If Target = Range("$B$10") Then
Range("B10").Value = ""
Range("C10").Value = ""
Range("D10").Value = ""
Range("F10").Value = ""
End If

If Target = Range("$C$10") Then
Range("C10").Value = ""
Range("D10").Value = ""
Range("F10").Value = ""
End If

If Target = Range("$D$10") Then
Range("D10").Value = ""
Range("F10").Value = ""
End If

If Target = Range("$F$10") Then
Range("F10").Value = ""
End If

If Target = Range("$A$11") Then
Range("A11").Value = ""
Range("B11").Value = ""
Range("C11").Value = ""
Range("D11").Value = ""
Range("F11").Value = ""
End If

If Target = Range("$B$11") Then
Range("B11").Value = ""
Range("C11").Value = ""
Range("D11").Value = ""
Range("F11").Value = ""
End If

If Target = Range("$C$11") Then
Range("C11").Value = ""
Range("D11").Value = ""
Range("F11").Value = ""
End If

If Target = Range("$D$11") Then
Range("D11").Value = ""
Range("F11").Value = ""
End If

If Target = Range("$F$11") Then
Range("F11").Value = ""
End If

If Target = Range("$A$12") Then
Range("A12").Value = ""
Range("B12").Value = ""
Range("C12").Value = ""
Range("D12").Value = ""
Range("F12").Value = ""
End If

If Target = Range("$B$12") Then
Range("B12").Value = ""
Range("C12").Value = ""
Range("D12").Value = ""
Range("F12").Value = ""
End If

If Target = Range("$C$12") Then
Range("C12").Value = ""
Range("D12").Value = ""
Range("F12").Value = ""
End If

If Target = Range("$D$12") Then
Range("D12").Value = ""
Range("F12").Value = ""
End If

If Target = Range("$F$12") Then
Range("F12").Value = ""
End If

If Target = Range("$A$13") Then
Range("A13").Value = ""
Range("B13").Value = ""
Range("C13").Value = ""
Range("D13").Value = ""
Range("F13").Value = ""
End If

If Target = Range("$B$13") Then
Range("B13").Value = ""
Range("C13").Value = ""
Range("D13").Value = ""
Range("F13").Value = ""
End If

If Target = Range("$C$13") Then
Range("C13").Value = ""
Range("D13").Value = ""
Range("F13").Value = ""
End If

If Target = Range("$D$13") Then
Range("D13").Value = ""
Range("F13").Value = ""
End If

If Target = Range("$F$13") Then
Range("F13").Value = ""
End If

If Target = Range("$A$14") Then
Range("A14").Value = ""
Range("B14").Value = ""
Range("C14").Value = ""
Range("D14").Value = ""
Range("F14").Value = ""
End If

If Target = Range("$B$14") Then
Range("B14").Value = ""
Range("C14").Value = ""
Range("D14").Value = ""
Range("F14").Value = ""
End If

If Target = Range("$C$14") Then
Range("C14").Value = ""
Range("D14").Value = ""
Range("F14").Value = ""
End If

If Target = Range("$D$14") Then
Range("D14").Value = ""
Range("F14").Value = ""
End If

If Target = Range("$F$14") Then
Range("F14").Value = ""
End If

If Target = Range("$A$15") Then
Range("A15").Value = ""
Range("B15").Value = ""
Range("C15").Value = ""
Range("D15").Value = ""
Range("F15").Value = ""
End If

If Target = Range("$B$15") Then
Range("B15").Value = ""
Range("C15").Value = ""
Range("D15").Value = ""
Range("F15").Value = ""
End If

If Target = Range("$C$15") Then
Range("C15").Value = ""
Range("D15").Value = ""
Range("F15").Value = ""
End If

If Target = Range("$D$15") Then
Range("D15").Value = ""
Range("F15").Value = ""
End If

If Target = Range("$F$15") Then
Range("F15").Value = ""
End If

If Target = Range("$A$16") Then
Range("A16").Value = ""
Range("B16").Value = ""
Range("C16").Value = ""
Range("D16").Value = ""
Range("F16").Value = ""
End If

If Target = Range("$B$16") Then
Range("B16").Value = ""
Range("C16").Value = ""
Range("D16").Value = ""
Range("F16").Value = ""
End If

If Target = Range("$C$16") Then
Range("C16").Value = ""
Range("D16").Value = ""
Range("F16").Value = ""
End If

If Target = Range("$D$16") Then
Range("D16").Value = ""
Range("F16").Value = ""
End If

If Target = Range("$F$16") Then
Range("F16").Value = ""
End If

If Target = Range("$A$17") Then
Range("A17").Value = ""
Range("B17").Value = ""
Range("C17").Value = ""
Range("D17").Value = ""
Range("F17").Value = ""
End If

If Target = Range("$B$17") Then
Range("B17").Value = ""
Range("C17").Value = ""
Range("D17").Value = ""
Range("F17").Value = ""
End If

If Target = Range("$C$17") Then
Range("C17").Value = ""
Range("D17").Value = ""
Range("F17").Value = ""
End If

If Target = Range("$D$17") Then
Range("D17").Value = ""
Range("F17").Value = ""
End If

If Target = Range("$F$17") Then
Range("F17").Value = ""
End If

If Target = Range("$A$18") Then
Range("A18").Value = ""
Range("B18").Value = ""
Range("C18").Value = ""
Range("D18").Value = ""
Range("F18").Value = ""
End If

If Target = Range("$B$18") Then
Range("B18").Value = ""
Range("C18").Value = ""
Range("D18").Value = ""
Range("F18").Value = ""
End If

If Target = Range("$C$18") Then
Range("C18").Value = ""
Range("D18").Value = ""
Range("F18").Value = ""
End If

If Target = Range("$D$18") Then
Range("D18").Value = ""
Range("F18").Value = ""
End If

If Target = Range("$F$18") Then
Range("F18").Value = ""
End If

If Target = Range("$A$19") Then
Range("A19").Value = ""
Range("B19").Value = ""
Range("C19").Value = ""
Range("D19").Value = ""
Range("F19").Value = ""
End If

If Target = Range("$B$19") Then
Range("B19").Value = ""
Range("C19").Value = ""
Range("D19").Value = ""
Range("F19").Value = ""
End If

If Target = Range("$C$19") Then
Range("C19").Value = ""
Range("D19").Value = ""
Range("F19").Value = ""
End If

If Target = Range("$D$19") Then
Range("D19").Value = ""
Range("F19").Value = ""
End If

If Target = Range("$F$19") Then
Range("F19").Value = ""
End If

If Target = Range("$A$20") Then
Range("A20").Value = ""
Range("B20").Value = ""
Range("C20").Value = ""
Range("D20").Value = ""
Range("F20").Value = ""
End If

If Target = Range("$B$20") Then
Range("B20").Value = ""
Range("C20").Value = ""
Range("D20").Value = ""
Range("F20").Value = ""
End If

If Target = Range("$C$20") Then
Range("C20").Value = ""
Range("D20").Value = ""
Range("F20").Value = ""
End If

If Target = Range("$D$20") Then
Range("D20").Value = ""
Range("F20").Value = ""
End If

If Target = Range("$F$20") Then
Range("F20").Value = ""
End If

If Target = Range("$A$21") Then
Range("A21").Value = ""
Range("B21").Value = ""
Range("C21").Value = ""
Range("D21").Value = ""
Range("F21").Value = ""
End If

If Target = Range("$B$21") Then
Range("B21").Value = ""
Range("C21").Value = ""
Range("D21").Value = ""
Range("F21").Value = ""
End If

If Target = Range("$C$21") Then
Range("C21").Value = ""
Range("D21").Value = ""
Range("F21").Value = ""
End If

If Target = Range("$D$21") Then
Range("D21").Value = ""
Range("F21").Value = ""
End If

If Target = Range("$F$21") Then
Range("F21").Value = ""
End If

If Target = Range("$A$22") Then
Range("A22").Value = ""
Range("B22").Value = ""
Range("C22").Value = ""
Range("D22").Value = ""
Range("F22").Value = ""
End If

If Target = Range("$B$22") Then
Range("B22").Value = ""
Range("C22").Value = ""
Range("D22").Value = ""
Range("F22").Value = ""
End If

If Target = Range("$C$22") Then
Range("C22").Value = ""
Range("D22").Value = ""
Range("F22").Value = ""
End If

If Target = Range("$D$22") Then
Range("D22").Value = ""
Range("F22").Value = ""
End If

If Target = Range("$F$22") Then
Range("F22").Value = ""
End If

End Sub

y lo que quiere realizar en el excel es lo siguiente:

te lo explico utilizando las imagenes que adjunte anteriormente, lleno los datos de las columnas a, b, c, d, f y automaticamente me votara un resultado numerico en la columna g.

si yo llenase alguna celda con un valor equivocado, deberia seleccionar esta celda y desaparecer su valor.

pero a lestar relacionadas todas las columnas por tener lista desplegable aparece la dificultad.

si el error esta en la columna f solo deberia vaciarse el contenido de la columna y fila especifica(f8) en el caso de mis imagenes.

si el valor equivocado es en la columna d, deberia desaparece solo el valor de la columna d

si el valor equivocado es en las columnas c, b, a deberia desaparece los valores de la siguiente manera:

si escojo la columna c deberia desaparecer los valores de las columnas c, d, f

si escojo la columna b deberia desaparecer los valores de las columnas b, c, d, f

si escojo la columna a deberia desaparecer los valores de las columnas a, b, c, d, f

espero puedas ayudarme con semejante dificultad y gracias por la atencion.

En la columna A pon el valor "hola"

¿Cómo sé que el valor "hola" es correcto o es equivocado?

Creo que te equivocaste al dar sugerencia de respuesta, la tuya no tiene nada que ver con el asunto que estoy consultando.

Vamos desde el principio.

Pensé que viendo la macro iba a entender qué es lo que necesitas.

Olvidemos por un momento la macro.

Explícame paso a paso qué es lo haces en la hoja de excel, y qué es lo que quieres que suceda.

Por ejemplo:

Paso 1, selecciono la celda A7.

Paso 2, lo que quiero que suceda cuando selecciono la celda A7, es que compare el valor de la celda A7 contra el valor de la celda A8.

Paso 3. Si los valores son iguales, entonces que se borren los valores de las celdas ...

Paso 4. Si no son iguales, entonces ...

Paso 5. Que compare el valor de la celda A7 contra la celda B8.

Paso 6. Si son iguales, entonces ...

Paso 7. Si no son iguales, entonces ...


Estoy tratando de entender lo que quieres hacer, pero no lo logro.

Si es muy complicado explicarme con pasos lo que quieres, entonces envíame tu archivo y me explicas con ejemplos qué debo hacer en las celdas y qué es lo que esperas como resultado.

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “Juan Marcelo Rios Ricalde” y el título de esta pregunta.

Gracias por la aclaración, que no entiendes la finalidad del mi plantilla. Te la explicare paso a paso y al mismo tiempo te enviare el modelo de archivo que estoy manejando.

Es una planilla de calculo la cual se semillena en relación a la selección de valores que tu escojas en la lista desplegable que tengo en cada celda dentro de una matriz(A8:F32).

A continuación te detallo como se procede:

Paso1: Me posesiono en la celda A8 y selecciono el determinado valor para la misma.

paso2: continuo rellenando los valores de las celdas B8, C8, D8 y F8 sucesivamente.

Paso3: después de tener los campos rellenos en la columna G8 la formula de consulta me votara un resultado numérico en función al rellenado de las celdas anteriores.

Paso 4: Continuo rellenando las filas 9, 10, 11 ,12 y así sucesivamente las que necesite.

Paso 5: Deseo cambiar el valor de la celda F8, me posesiono en ella y debería eliminarse solo el contenido de la misma (esto con ayuda de la macro) pero al seleccionar esta celda se eliminan la celda F9, F10 y las que tengan rellenas

Si selecciono la celda A8 por darte otro ejemplo, se elimina todo lo que rellene en la plantilla. Cuando solo debería eliminar los valores de toda la fila 8 es decir las celdas A8, B8, C8, D8 y F8.

Espero que puedan ser mas claras las ideas con todo lo que te estoy mencionando.

y nuevamente gracias por el interés y la ayuda para solucionar este pequeño dilema.

Te envie el archivo a tu mail, para que puedas seguir los pasos que te detalle.

H o  l a:

Te anexo la nueva macro. Puedes seleccionar una sola celda o varias celdas, por ejemplo si seleccionas la celda A8, la macro borra desde A8 hasta F8. También si seleccionas A8, A9 A10, la macro borra desde A8 hasta F10.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Por.Dante Amor
    If Not Intersect(Target, Range("A8:F37")) Is Nothing Then
        For Each c In Target
            Select Case c.Column
                Case 1: Range("A" & c.Row & ":D" & c.Row & ", F" & c.Row).ClearContents
                Case 2: Range("B" & c.Row & ":D" & c.Row & ", F" & c.Row).ClearContents
                Case 3: Range("C" & c.Row & ":D" & c.Row & ", F" & c.Row).ClearContents
                Case 4: Range("D" & c.Row & ":D" & c.Row & ", F" & c.Row).ClearContents
                Case 6: Range("F" & c.Row).ClearContents
            End Select
        Next
    End If
End Sub

Si quisieras seleccionar varias celdas, y en ese caso, cuando seleccionas varias celdas, no quieres que la macro se ejecute, entonces pon la siguiente instrucción:

If Target.Count > 1 Then Exit Sub

 La macro quedaría así:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Por.Dante Amor
    If Not Intersect(Target, Range("A8:F37")) Is Nothing Then
        If Target.Count > 1 Then Exit Sub
        For Each c In Target
            Select Case c.Column
                Case 1: Range("A" & c.Row & ":D" & c.Row & ", F" & c.Row).ClearContents
                Case 2: Range("B" & c.Row & ":D" & c.Row & ", F" & c.Row).ClearContents
                Case 3: Range("C" & c.Row & ":D" & c.Row & ", F" & c.Row).ClearContents
                Case 4: Range("D" & c.Row & ":D" & c.Row & ", F" & c.Row).ClearContents
                Case 6: Range("F" & c.Row).ClearContents
            End Select
        Next
    End If
End Sub


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

¡Gracias!

La Solución al problema fue clara y concisa. Agradezco en demasía tu colaboración.

Saludos desde La Paz, Bolivia

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas