Borrar registro de tabla con VBA |
Responder |
Autor | |
John_Arnedo
Habitual Unido: 13/Febrero/2009 Localización: Colombia Estado: Sin conexión Puntos: 196 |
Tema: Borrar registro de tabla con VBA Enviado: 26/Noviembre/2019 a las 07:32 |
Saludos a la comunidad:
Trabajo en una tabla con columnas validadas con Listas dependientes, si un usuario en la columna1 señala un dato (desplegable), la columna2 muestra unos relacionados. Hasta ahí todo bien El problema se da al querer modificar un registro previamente llenado. Una que otra vez el usuario ha modificado la columna1 y se olvida de actualizar la columna2 y excel le permite hacer esa modificación dejando todo mal validado. Encontré un video en youtube (https://www.youtube.com/watch?v=u8n3k45EnKA) donde prácticamente resuelven este problema mediante el siguiente código: Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = Range("B14").Address Then Range("C14").Value = "" End If End Sub Sin embargo aunque ese código funciona perfectamente, no sé como hacer referencia a una tabla para que vacíe la parte de registro que se ha modificado. He intentado modificando el anterior código así: Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = Range("TblCasos[Clase de proceso]").Address Then Range("TblCasos[Trámite / Derecho fundamental]").Value = "" End If End Sub Pero no hace nada, ni siquiera arroja error. Siento que mi problema es que no sé hacer referencia específica a la fila dentro de la tabla y es por eso que pido su ayuda. |
|
AnSanVal
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador Unido: 16/Marzo/2005 Localización: España Estado: Sin conexión Puntos: 5976 |
Enviado: 26/Noviembre/2019 a las 14:29 |
Puedes hacerlo igual que con un rango ordinario, pero no es correcto hacer referencia a una celda concreta, por ejemplo B14 (pues tendrías que poner una linea de código para cada fila de la tabla). Prueba con lo siguiente (ojo => en el módulo de la hoja que contiene tu tabla): Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 2 Then Target.Offset(0, 1).ClearContents End Sub |
|
Saludos desde Tenerife.
|
|
John_Arnedo
Habitual Unido: 13/Febrero/2009 Localización: Colombia Estado: Sin conexión Puntos: 196 |
Enviado: 27/Noviembre/2019 a las 00:07 |
Funcionó perfectamente AnSanVal.
¡Eres el mejor! muchas gracias.
|
|
AnSanVal
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador Unido: 16/Marzo/2005 Localización: España Estado: Sin conexión Puntos: 5976 |
Enviado: 27/Noviembre/2019 a las 01:58 |
Gracias por comentar el resultado.
|
|
Saludos desde Tenerife.
|
|
Responder | |
Tweet
|
Ir al foro | Permisos de foro Usted No puede publicar nuevos temas en este foro Usted No puede responder a temas en este foro Usted No puede borrar sus mensajes en este foro Usted No puede editar sus mensajes en este foro Usted No puede crear encuestas en este foro Usted No puede votar en encuestas en este foro |