Con la siguiente macro, te crea las hojas que faltan y siempre te crea una hoja más. Por ejemplo si tienes esto
1, 2, 4
El resultado es:
1,2,3,4,5
También la macro se encarga de ordenarte las hojas
Si tienes esto
4,2
El resultado es:
1,2,3,4,5
Sigue las Instrucciones para un botón y ejecutar la macro
1. Abre tu libro de Excel
2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
3. En el menú elige Insertar / Módulo
4. En el panel del lado derecho copia la macro
5. Ahora para crear un botón, puedes hacer lo siguiente:
6. Inserta una imagen en tu libro, elige del menú Insertar / Imagen / Autoformas
7. Elige una imagen y con el Mouse, dentro de tu hoja, presiona click y arrastra el Mouse para hacer grande la imagen.
8. Una vez que insertaste la imagen en tu hoja, dale click derecho dentro de la imagen y selecciona: Tamaño y Propiedades. En la ventana que se abre selecciona la pestaña: Propiedades. Desmarca la opción “Imprimir Objeto”. Presiona “Cerrar”
9. Vuelve a presionar click derecho dentro de la imagen y ahora selecciona: Asignar macro. Selecciona: crearhojas
10. Aceptar.
11. Para ejecutarla dale click a la imagen.
Dim hojas As New Collection
Sub crearhojas()
'Por.DAM
Application.ScreenUpdating = False
xmax = 1
For Each h In Sheets
If UCase(Left(h.Name, 4)) = "AUTO" Then
n = Val(Mid(h.Name, 5))
If xmax < n Then xmax = n
End If
Next
For i = 1 To xmax
For Each h In Sheets
If UCase(h.Name) = UCase("Auto") & i Then
existe = True
Exit For
End If
Next
If existe = False Then
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = "Auto" & i
End If
existe = False
Next
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = "Auto" & xmax + 1
For Each h In Sheets
If UCase(Left(h.Name, 4)) = "AUTO" Then
AddItem h.Name
End If
Next
For Each hj In hojas
Sheets(hj).Move after:=Sheets(Sheets.Count)
Next
Set hojas = Nothing
Application.ScreenUpdating = True
MsgBox "Hojas creadas y ordenadas", vbInformation, "CREAR NUEVA HOJA"
End Sub
Sub AddItem(dato As String)
'Por.DAM
For i = 1 To hojas.Count
Select Case StrComp(hojas(i), dato, vbTextCompare)
Case 0: Exit Sub 'ya existe
Case 1: hojas.Add dato, Before:=i: Exit Sub
End Select
Next
hojas.Add dato 'lo agrega al final
End Sub
Saludos.Dante Amor
No olvides valorar la respuesta.
Comentario borrado por el autor - diegovalla