Jump to content

Archived

This topic is now archived and is closed to further replies.

exskizzo

ELIMINAR HOJAS DE UN LIBRO

Recommended Posts

Buenos días a todos.

Les comento lo siguiente: 

Tengo un libro con varias hojas y requiero una macro para eliminar ciertas hojas, necesito se queden las ultimas 5 hojas(Explosión de Materiales, Explosión de Avíos, Listado de Lotes, O.C.M., O.C.A.), también necesito se quede la primer hoja. Las nombro así(primer hoja) ya que no siempre se llamaran así a excepción de las ultimas 5 hojas.

 

Gracias y espero y puedan ayudar

Recorrer hojas.rar

Share this post


Link to post
Share on other sites

Saludos

Hoja1 es el nombre de la hoja que quieres eliminar cambia por el nombre de tu hoja

Sub Macro1()
    Sheets("Hoja1").Select
    ActiveWindow.SelectedSheets.Delete
End Sub

 

Share this post


Link to post
Share on other sites

Gracias @Visor por tu pronta respuesta, te comento lo siguiente: en mi libro siempre estarán y se llamaran como lo indique las cinco hojas (Explosión de Materiales, Explosión de Avíos, Listado de Lotes, O.C.M., O.C.A.) pero antes de esas cinco no siempre habrá 1 o  2 o 3 y no siempre se llamaran como lo indico en el ejemplo. Es por eso que no puedo llamarla Hoja1, porque como bien se puede llamar ("x"), ("y") o ("z"), ademas que la hoja que quiero dejar ademas de las ultimas cinco(Explosión de Materiales, Explosión de Avíos, Listado de Lotes, O.C.M., O.C.A.) también quiero dejar la primer hoja que no siempre tendra un nombre fijo.

 

Gracias y saludos

Share this post


Link to post
Share on other sites

Puedes buscar en Internet hay muchas soluciones a tu consulta, a prueba y Error, busca Index, la cual te ayuda a identificar el orden de las hojas, Prueba y nos comentas, Saludos!!

Share this post


Link to post
Share on other sites

Que tal si reorganizas...las hojas que siempre quieres mantener seran las de codigo Vba Hoja1 Hoja2....hasta hoja6 (que son las que no quieres eliminar) y las que seran eliminadas son las que creas luego de estas existentes, ellas iran adquiriendo el codigo hoja7, hoja8...

Sheets(Array("Hoja7", "Hoja8", "Hoja9")).Delete
Dim i as long
For i = 7 To 12
    Sheets("Hoja" & i).Delete
Next

y por ultimo mas completo

Dim I As Long
Application.DisplayAlerts = False
For I = 7 To 12
    On Error Resume Next
    Sheets("Hoja" & I).Delete
Next
Application.DisplayAlerts = True

Pruebalos

Share this post


Link to post
Share on other sites

Gracias @Mauricio_ODN, y @Visor. El fin de eliminar las hojas que menciono es el siguiente:

Este es un libro con el cual trabajo a diario entonces cada que comienzo con una nueva programación necesito que siempre quede la primer hoja y las ultimas cinco (Explosión de Materiales, Explosión de Avíos, Listado de Lotes, O.C.M., O.C.A.). y que entre la primer hoja y las ultimas cinco queden eliminadas.

 

Gracias y quedo en espera de su ayuda 

Share this post


Link to post
Share on other sites
Cita

hay algunas diferencias entre haber a ver

(solo porque parece una constante el uso que das a la expresión)

saludos,
hector.

Jejejejejeje, Tienes la Razón Hector, muchas gracias, espero en un futuro dar el uso correcto, (a ver si no me equivoco aqui, jejejejejejeje), pero he demostrado que mi haber léxico es escaso. Saludos Hector!""

Share this post


Link to post
Share on other sites
Sub ELIMINA_TODAS_MENOS_SEIS()
Application.DisplayAlerts = False
For x = Sheets.Count To 2 Step -1
   Select Case Sheets(x).Name
      Case "EXPLOSION DE MATERIALES", "EXPLOSION DE AVIOS", "LISTADO DE LOTES", "O.C.M.", "O.C.A."
      Case Else: Sheets(x).Delete
   End Select
Next
Application.DisplayAlerts = True
End Sub

En cuanto al tema ortográfico, solo hay que fijarse en el corrector automático del foro, si sale subrayado en rojo, algo no está bien. Lamentablemente, no tiene en cuenta los nombres propios, por lo que detectar Héctor en lugar de Hector, es algo complicado, también a ver en lugar de haber no es nada fácil detectarlo si no tienes claras las estructuras gramaticales, pero en el foro, lo mas importante es saber Excel y la buena voluntad. :), en cualquier caso, nunca te arrepientas de como escribes. ¡Sigue aportando lo que sabes!

Share this post


Link to post
Share on other sites
Cita

 pero en el foro, lo mas importante es saber Excel y la buena voluntad. :), en cualquier caso, nunca te arrepientas de como escribes. ¡Sigue aportando lo que sabes!

Gracias Maestro @Antoni, por su impecable aporte y sus sabias palabras

¡Saludos desde México!

Share this post


Link to post
Share on other sites

hola, a todos !

mi "granito de arena" (cuando se puede) prefiero evitar "acciones" por bucles y que se hagan "de golpe"...

Sub ConservaUnaYCinco()
' procedimiento para eliminar hojas intermedias dejando solo la primera y las cinco ultimas... ' _
  R&D: Héctor Miguel Orozco Díaz (junio 27, 2017) '
  Dim x As Byte, y As Byte: x = Worksheets.Count
  If x < 7 Then Exit Sub Else y = x - 6 + 1
  Application.DisplayAlerts = False
  Worksheets(Evaluate("transpose(row(2:" & y & "))")).Delete
  Application.DisplayAlerts = True
End Sub

y una "ligera" corrección"...

Hace 54 minutos , Antoni dijo:

nunca te arrepientas de como escribes

nunca, al igual que siempre, son palabras que requieren evaluar su contexto y pensar (más de dos veces) antes de expresarlas, en este caso, inhiben la posibilidad de una mejora permanente o constante, (creo que) sería mejor esta expresión:

no te arrepientas de como "escribiste", en cualquier caso, si puedes aprender a escribir mejor... HAZLO !!!

saludos,
hector.

Share this post


Link to post
Share on other sites
Cita

hola, a todos !

mi "granito de arena" (cuando se puede) prefiero evitar "acciones" por bucles y que se hagan "de golpe"...

Cita

Sub ConservaUnaYCinco()
' procedimiento para eliminar hojas intermedias dejando solo la primera y las cinco ultimas... ' _
  R&D: Héctor Miguel Orozco Díaz (junio 27, 2017) '
  Dim x As Byte, y As Byte: x = Worksheets.Count
  If x < 7 Then Exit Sub Else y = x - 6 + 1
  Application.DisplayAlerts = False
  Worksheets(Evaluate("transpose(row(2:" & y & "))")).Delete
  Application.DisplayAlerts = True
End Sub

Una pregunta Héctor, y si el orden de las hojas cambia, en este código que nos compartes (Muy bueno por cierto), ¿Respetara las hojas que se necesitan conservar?

Cita

Explosión de Materiales, Explosión de Avíos, Listado de Lotes, O.C.M., O.C.A.

Saludos

Share this post


Link to post
Share on other sites
Hace 3 horas, Mauricio_ODN dijo:

... si el orden de las hojas cambia... este código... Respetara las hojas ...

la propuesta está adaptada para trabajar según el índice/orden de las hojas en el libro (como se indica en la consulta original), si el orden no es lo indicado, se trabaja con los nombres de las hojas (que también podrían "sufrir alteraciones" desde la interfaz con el usuario ?) y también existen métodos para evitar acciones "en cada paso de un bucle", y como dicen en mi pueblo: "hay maña para todo" y "según el sapo es la pedrada" ;)

saludos,
hector.

Share this post


Link to post
Share on other sites

Muchas gracias a todos los que se tomaron el tiempo de leer mi tema pero sobre todo a los que se tomaron el tiempo que posiblemente no tuvieron y me ayudaron . 

Doy por solucionado el tema

Gracias y saludos

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.

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.




  • Posts

    • Efectivamente la había dejado preparada... solo una de las dos partes Te dejo la nueva solución. No sé cómo metes los datos de las nuevas hojas, pruebalo. BUSCAR DATO EN OTRA HOJA-1.xlsm
    • Buenas noches amigos de Ayuda Excel. Estoy atorado en una parte del proyecto, y quiero consultarles de que manera se podria realizar lo siguiente. Estoy haciendo un archivo de registro de entradas y salidas de equipos seriabilizables, pero necesito que al capturar el serial del equipo con una lectora de codigo, la macro me verifique si este esta en la tabla de la hoja "Salidas", si el serial esta en dicha tabla, necesito que la macro me traiga la informacion de ese rango de fila, y lo agregue en otra tabla ubicada en la hoja "Entrada", y que adicionalmente agregue en esa misma fila, al lado de la fecha de egreso, la fecha de hoy (ingreso) con su hora (de la misma manera en que ya lo hace). Al terminar de exportar la informacion, debera arrojarme un mensaje indicandome la ubicacion y numero de baul. Despues de este procedimiento, debe ir nuevamente a la celda "Serial de equipo", para capturar si fuera el caso el proximo serial. Pero si el serial del equipo no esta en la tabla "Salidas", la macro debera pedirme que ingrese el serial de inventario de dicho equipo en la hoja "Reg. Entrada", y despues agregar esta informacion (los dos seriales) en la tabla de la hoja "Entradas". Seria algo asi como en la imagen. Anexo mi archivo para mayor informacion. Entradas y salidas de equipos - Version muestra.xlsm Les agradezco de antemano por la ayuda que me puedan prestar Entradas y salidas de equipos - Version muestra.xlsm
    • Entonces dentro de la macro, modifica para que sea una columna completa, además indicarte que esto es lo que pasa cuando un usuario no sube una muestra en Excel tal cual en su estructura, así que en futuras consultas ya sabes La opción de @John Jairo V también es buena alternativa   Saludos a ambos!
    • ¡Hola, @Leonardo Briceño! Es claro que con la macro de evento proporcionada por Gerson (un saludo) puedes realizar el cambio de minúsculas a mayúsculas.  Te doy otra alternativa más sencilla que quizá te pueda servir:  Usar fuente tipo versalitas.  Estas fuentes siempre usan mayúsculas en su esencia, así que te evitas la macro.  Si gustas verifica sobre ellas para aplicarlas en tu archivo.  ¡Bendiciones!
  • Recently Browsing

    No registered users viewing this page.

×
×
  • Create New...

Important Information

Privacy Policy