Reordenar Hojas en Excel y no en Editor VBA

Aquí nuevamente molestando.

Tengo esta macro para que me reordene las hojas en Excel, (no en el editor VBA).

El asunto es que en el editor como iba necesitando. Iba insertando hoja, mas tarde o cuando veía que dicha hoja debería estar en otra posición de Excel, la cambiaba arrastrando la pestaña a otra posición.

Pues eso es lo que quiero evitar, que cambien la hoja arrastrando la pestaña a otra posición, sin importar la posición que tiene en el editor VBA.

Esta macro me manda error, el cual presento las imágenes

Sub ReordenarHojas()
Dim Hojas As Variant
Hojas = Array("Inicio", "Factura", "Proveedor", "Productos", "Copia_Factura", "Clentes")
For X = 0 To UBound(Hojas)
   Sheets(Hojas(X)).Move Before:=Sheets(X + 1)
Next
End Sub

[IMG]http://i61.tinypic.com/2j8tio.jpg[/IMG]

La macro la he ejecutado desde un botón pero la idea es colocarla en un módulo (tal vez) y luego llamarla con un Call desde

Private Sub Workbook_Open()
ReordenarHojas
End Sub

y también en

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
ReordenarHojas
End Sub
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
ReordenarHojas
End Sub

No sé que me dirás sobre lo último.

La idea es que si alguien trata de intercambiar las pestañas de alguna(s) hojas, le mande aviso de imposible o simplemente no se pueda hacer el intercambio.

1 Respuesta

Respuesta
1

Si proteges el libro, no pueden mover las hojas, incluso puedes poner una calve. Prueba y me comentas.

Añade tu respuesta

Haz clic para o