¿Qué código necesito en la macro para que al borrar la hoja me quite el registro creado?

Hola, quisiera saber si pueden ayudarme con la siguiente cuestión de excel.
Por medio una macro consigo crear hojas dentro de un libro a modo de facturas, cada una se crea con un numero, así pues tengo en las pestañas 1,2,3 etc.
Cada vez que realizo una factura por medio de otra macro me graba en la hoja llamada (LISTA) los datos de la factura
With Sheets("LISTA").Range("B65536").End(xlUp)
.Offset(1, 0) = Sheets("ALBARAN").Range("N18") 'CODIGO OBRA
.Offset(1, 1) = Sheets("ALBARAN").Range("O18") 'numero albaran
.Offset(1, 2) = Sheets("ALBARAN").Range("O19") 'fecha
.Offset(1, 3) = Sheets("ALBARAN").Range("O81") 'total
End With
Mi pregunta es, que código necesito en la macro para que al borrar la hoja me quite el registro creado.
Muchas gracias

1 respuesta

Respuesta
1
De tu consulta se desprende que ya tenés una macro para borrar la hoja, seguramente desde allí podremos obtener el nro a eliminar.
Entonces la parte del borrado de fila será algo como este ejemplo:
set busca = sheets("LISTA").range("B2:B65536").Find(nro)
if not busca is nothing then  'la búsqueda fue exitosa
busca.entirerow.delete
end if
set busca = nothing  'liberamos la variable
Ajústalo, pruébalo y comentame si quedó resuelto.
Saludos
Elsa
Tus mejores opciones en manuales de Macros, desde:
http://es.geocities.com/lacibelesdepunilla/manuales
Muchas gracias por responder Elsamatilde.
La verdad es que no tengo la macro para borrar la hoja, pensaba hacerlo directamente con botón derecho eliminar.
Me puedes ayudar.
Muchísimas gracias
En ese caso necesitarás un botón para llamar a una macro (o llamarla con atajo de teclado o desde el menú herramientas, macros), ya que el evento de 'eliminar hoja' no se puede controlar, es decir, que no se puede programar algo para ese momento.
Te dejo la rutina que deberás copiarla en un módulo y que hace lo siguiente:
1- Solicitar el nbre de la hoja a eliminar.
2- Primero busca ese nombre (o nro) en la col B de la hoja LISTA, si lo encuentra borra la fila completa (ajustar la referencia)
3- A continuación elimina la hoja que coincida con ese nombre.
Sub eliminaHoja()
nro = InputBox("Ingrese hoja que eliminará")
If nro <> "" Then
Set busca = Sheets("LISTA").Range("B2:B65536").Find(nro)
If Not busca Is Nothing Then 'la búsqueda fue exitosa
busca.EntireRow.Delete
End If
Set busca = Nothing 'liberamos la variable
Sheets(nro).Delete
End If
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas