Macro: seleccionar todas las pestañas entre 2 límites
Resuelto
Frantoc37
Mensajes publicados
17
Estado
Miembro
-
Theo.R Mensajes publicados 585 Estado Miembro -
Theo.R Mensajes publicados 585 Estado Miembro -
Hola,
Tengo un archivo de excel con 2 pestañas tituladas "Borne 1" y "Borne 2".
Me gustaría crear una macro que seleccione todas las pestañas (cualquiera que sea su número) entre estas dos, para poder eliminarlas.
¿Alguien puede ayudarme?
Gracias :-)
Tengo un archivo de excel con 2 pestañas tituladas "Borne 1" y "Borne 2".
Me gustaría crear una macro que seleccione todas las pestañas (cualquiera que sea su número) entre estas dos, para poder eliminarlas.
¿Alguien puede ayudarme?
Gracias :-)
Enlaces relacionados:
- Problema de macro entre Excel y Word
- ocultar filas según 2 condiciones mediante macro de Excel
- VBA - Macro para seleccionar una fila bajo condiciones
- Generar un número aleatorio entre límites con decimales
- Encontrar el número de línea de un elemento seleccionado en una listbox
- Fórmula "alea entre límites" sin duplicados.
3 respuestas
Hola,
Para ello, hay que proceder no por el nombre de la pestaña, sino por su posicionamiento.
En el código que les propongo, "Borne 1" es la 1ª pestaña y "Borne 2" la 9ª pestaña. Solo es necesario cambiar las variables a y b para ajustarse a su documento (a = nº "borne 1" + 1; b = nº "borne 2" - 1).
Para ello, hay que proceder no por el nombre de la pestaña, sino por su posicionamiento.
En el código que les propongo, "Borne 1" es la 1ª pestaña y "Borne 2" la 9ª pestaña. Solo es necesario cambiar las variables a y b para ajustarse a su documento (a = nº "borne 1" + 1; b = nº "borne 2" - 1).
Sub test()
a = 2
b = 8
For i = b to a step -1
sheets(i).select
ActiveWindow.SelectedSheets.Delete
Next i
End sub
Gracias Théo por responder tan rápido.
Acabo de probar tu macro y funciona muy bien...
.. pero...
El número de pestañas que se ordenan entre el límite 1 y el límite 2 cambia regularmente. (Hay días en los que tengo 15 pestañas para procesar, otros 25...) La posición "numérica" del límite 2 no es, por tanto, siempre la misma... Así que no siempre puedo asignarle el lugar "9".
La macro que quiero implementar eliminará todas las pestañas que se encuentran entre el límite 1 y el límite 2 para luego importar otras pestañas para procesar.
PD: El límite 1 es fijo (así que no hay problema con esa pestaña...)
Acabo de probar tu macro y funciona muy bien...
.. pero...
El número de pestañas que se ordenan entre el límite 1 y el límite 2 cambia regularmente. (Hay días en los que tengo 15 pestañas para procesar, otros 25...) La posición "numérica" del límite 2 no es, por tanto, siempre la misma... Así que no siempre puedo asignarle el lugar "9".
La macro que quiero implementar eliminará todas las pestañas que se encuentran entre el límite 1 y el límite 2 para luego importar otras pestañas para procesar.
PD: El límite 1 es fijo (así que no hay problema con esa pestaña...)
El siguiente código debería funcionar, solo hay que nombrar correctamente las pestañas de referencia como "Borne 1" y "Borne 2" (sin olvidar el espacio).
Sub test()
Sheets("Borne 1").select
a = ThisWorkbook.Worksheets.Count
Sheets("Borne 2").select
b = ThisWorkbook.Worksheets.Count
For i = b to a step -1
sheets(i).select
ActiveWindow.SelectedSheets.Delete
Next i
End sub