Jump to content
gema.ramirezguerrero@gmail

Borrar campo listas desplegables con macros

Recommended Posts

Hola a todos, mi nombre es Gema. Os expongo la situación:

Tengo una lista desplegable ("Servicios") en varias filas de una misma columna (C24:C50) y otra ("Categorías") dependiente de la anterior (D24:D50). 

Cuando modifico un elemento de la lista dependiente "Categorías" necesitaría que se borrara el campo de la lista anterior "Servicios", para que no haya una incongruencia de datos en el caso de que se modifique. He probado incorporando la siguiente macro, pero da error:

Private Sub Worksheet_Change(ByVal Target As Range)
 
If Target = Range("C24:C50") Then
    Range("D24:D50").Value = ""
End If
 
End Sub

¿Sabríais decirme de qué forma podría solucionarlo? Mil gracias!!

 
 
 

Share this post


Link to post
Share on other sites

Hola José, perdona, pensé que con la explicación bastaría. Adjunto tienes el archivo.
Lo que necesitaría es que las celdas de la columna D, que forman parte de listas desplegables a través de validación de datos, se pusieran en blanco si el valor del que dependen (columna C - otra lista desplegable) se modificara.

Gracias!!

EjemploServ.xlsx

Share this post


Link to post
Share on other sites

@gema.ramirezguerrero@gmail esto entra en contradicción:

En 20/5/2020 at 12:41 , gema.ramirezguerrero@gmail dijo:

Cuando modifico un elemento de la lista dependiente "Categorías" necesitaría que se borrara el campo de la lista anterior "Servicios"

con:

En 20/5/2020 at 14:53 , gema.ramirezguerrero@gmail dijo:

Lo que necesitaría es que las celdas de la columna D, que forman parte de listas desplegables a través de validación de datos, se pusieran en blanco si el valor del que dependen (columna C - otra lista desplegable) se modificara.

¿Qué vas a modificar "SERVICIOS" o "TIPO"? SI por casualidad fuesen los servicios ¿Eliminarías alguno para poner otro nuevo, o qué tipo de modificación sería?

Share this post


Link to post
Share on other sites

Hola Gema

Según entiendo, tu código debería ir así

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("C24:C50")) Is Nothing Then
        Target.Offset(0, 1).Value = ""
    End If
End Sub

 

Share this post


Link to post
Share on other sites
Hace 19 horas, Haplox dijo:

@gema.ramirezguerrero@gmail esto entra en contradicción:

con:

¿Qué vas a modificar "SERVICIOS" o "TIPO"? SI por casualidad fuesen los servicios ¿Eliminarías alguno para poner otro nuevo, o qué tipo de modificación sería?

Se modificaría la columna C "SERVICIOS" para poner otro. Lo que necesitaría es que, una vez cumplimentada por el usuario esa tabla, si se modificara cualquier celda de la columna C, su correspondiente celda en la columna D, se pusiera en blanco o saliera algún aviso, de forma que el usuario se de cuenta de que los valores que aparecen en la columna D no corresponden con el nuevo elemento que haya puesto en la columna C anteriormente. Espero haberme explicado bien. Mil gracias!! 
 

Share this post


Link to post
Share on other sites
Hace 19 horas, DiegoPC dijo:

Hola Gema

Según entiendo, tu código debería ir así


Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("C24:C50")) Is Nothing Then
        Target.Offset(0, 1).Value = ""
    End If
End Sub

 

Hola Diego, muchas gracias! He probado con el código, pero me temo que no se ejecuta ningún cambio. 

Share this post


Link to post
Share on other sites

Prueba poner esta macro en tu hoja.

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Address Like "$C$*" Then Range("D" & Target.Row) = ""
Application.EnableEvents = True
End Sub

 

Share this post


Link to post
Share on other sites
En 22/5/2020 at 18:06 , Antoni dijo:

Prueba poner esta macro en tu hoja.


Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Address Like "$C$*" Then Range("D" & Target.Row) = ""
Application.EnableEvents = True
End Sub

 

Casi lloro al comprobar que este código funciona a la perfección!! Muchísimas gracias por la ayuda. De 10!

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

INFORMACIÓN BÁSICA SOBRE PROTECCIÓN DE DATOS

Responsable: Sergio Andrés Celemín

Finalidad: Moderar y responder comentarios de usuarios. Recuerda que la información que facilites es pública, y los datos que incluyas los leerá cualquier visitante de esta web, así como el avatar que poseas.

Legitimación: Consentimiento del interesado.

Destinatarios: Hetzner Online GmbH.

Derechos: Puedes ejercitar en cualquier momento tus derechos de acceso,
rectificación, supresión, oposición y demás derechos legalmente establecidos a
través del email sergio@ayudaexcel.com.

Información adicional: Encontrarás más información en la política de privacidad.




×
×
  • Create New...

Important Information

Privacy Policy


CTA Templates.png