Macro para eliminar fila especificando cual |
Responder |
Autor | |
Beatrix
Nuevo Unido: 18/Enero/2020 Localización: MAdrid Estado: Sin conexión Puntos: 3 |
Tema: Macro para eliminar fila especificando cual Enviado: 18/Enero/2020 a las 19:29 |
Buenas tardes.
Estoy empezando con esto de la programación y tengo una duda con la que espero que me puedan ayudar. He creado un botón para eliminar una fila (registro), el cual quiero que me cree un mensaje preguntando que número de registro (que estará en la columna B) y que al poner el número me elimine la fila que contiene dicho numero de registro. LA macro que he hecho me funciona perfectamente hasta que no hay ningún registro en las filas, y aun así le doy a eliminar. Entonces me da error. no quiero que me de error, ya que la macro protege la hoja, y si me da error no. Lo que tengo es lo siguiente: Sub Eliminar_Reclamacion() Worksheets("Registro_anual").Unprotect ("contraseña") Valor = InputBox("¿Nº registro a eliminar?") If Valor = "" Then End If Set Celda = Range("B3:B" & Range("B" & Rows.Count).End(xlUp).Row).Find(Valor, LookIn:=xlValues) If Not Celda Is Nothing Then Rows(Celda.Row).Delete If Range("B2").Value = 0 Or Range("B2").Value = "" Or Range("B2").Value = Empty Or Celda = "" Then End If ActiveSheet.Protect Password:="contraseña", DrawingObjects:=False, Contents:=True, Scenarios:=True, AllowInsertingHyperlinks:=True End Sub Cuando no hay ningún registro mas, es decir, no hay filas, y aun así das a eliminar la macro se para en: If Not Celda Is Nothing Then Rows(Celda.Row).Delete ¿Cómo puede hacer para que aun haciendo eso no me de error y la hoja me la proteja? 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: 5970 |
Enviado: 18/Enero/2020 a las 21:48 |
Es recomendable declarar las variables (Dim). Si marcas «Requerir declaración de variables» en: Herramientas > Opciones, Excel te lo recordará (si no está/n declarada/s). Sub Eliminar_Reclamacion()
Dim fila As String 'Suponiendo Título en B1 (que no será borrado) >> B2=Reg. 1º. If [B2] = "" Then Exit Sub ' No elimina. With Worksheets("Registro_anual") .Unprotect ("contraseña") 'Ofrece la última fila con datos (si es otra escríbela). fila = InputBox("¿Nº registro a eliminar?", "Beatrix - Eliminar fila", Cells(Rows.Count, 2).End(xlUp).Row) 'Si has pulsado Cancelar sale. If fila = "" Then Exit Sub 'Elimina la fila. Rows(Val(fila)).Delete 'Protege la hoja .Protect Password:="contraseña", DrawingObjects:=False, Contents:=True, _ Scenarios:=True, AllowInsertingHyperlinks:=True End With End Sub 'Eliminar_Reclamación |
|
Saludos desde Tenerife.
|
|
Beatrix
Nuevo Unido: 18/Enero/2020 Localización: MAdrid Estado: Sin conexión Puntos: 3 |
Enviado: 20/Enero/2020 a las 10:10 |
Muchisimas gracias!!!
|
|
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 |