Buen día a todos.
Estoy elaborando un libro guía para aprender a manejar el Macros y el Access, quisiera saber qué
tan posible es generar un Macros capaz de:
1)Crear una copia de una hoja del libro.
2)Que quede con un nombre que yo necesito.
Es decir:
Tengo una hoja llamada "Plantilla", donde está lo que debo duplicar. Ahora, quiero que los duplicados tengan otro nombre,
Como por ejemplo: E001, E002, E003, etc...
Llevo éste código y parece funcionar, duplica sin problemas pero no puedo hacer el cambio de nombre automático
y además cuando cancelo la operación en el diálogo que creo marca un error en la Macros, ¿pueden ayudarme?
Éste es el código:
Sub Grab()
Dim x As Integer
x = InputBox("¿Cuántas solicitudes desea crear?")
For numtimes = 1 To x
ActiveWorkbook.Sheets("Plantilla").Copy _
After:=ActiveWorkbook.Sheets("Plantilla")
Next
End Sub
tu código crea la copia de la hoja.
como estás declarando las variables, declara también la variable numtimes, modifica la línea donde tienes el Dim
Dim x As Integer, numtimes as Integer
cuando copias la hoja, ésta se convierte en la hoja activa, así que puedes cambiar el nombre por ejemplo así:
ActiveSheet.Name = "hojacopiada " & numtimes
Claro que este nombre daría error si si intentas añadir más hojas, porque habría nombres repetidos.
Pero seguro que tú sabes mejor que yo cómo quieres llamar a cada hoja
el conjunto quedaría así:
Sub Grab()
Dim x As Integer, numtimes As Integer
x = InputBox("¿Cuántas solicitudes desea crear?")
For numtimes = 1 To x
ActiveWorkbook.Sheets("Plantilla").Copy _
After:=ActiveWorkbook.Sheets("Plantilla")
ActiveSheet.Name = "hojacopiada " & numtimes
Next
End Sub
------
Ya sé Excel, pero necesito más.
Muchas gracias, no conocía esa linea...
Pero si yo necesito que, por ejemplo, cuando cree 4 copias de la hoja "Plantilla" automáticamente aumente un número del nombre, es decir:
Nombre básico : "E"
Nombres de las copias: "E001, E002, E003, E004"
¿Podrías por favor explicarme si eso puede hacerse?
Gracias de antemano :)
Para que la numeración tenga un determinado formato, por ejemplo con tres cifras y ceros a la izquierda si es necesario, puedes emplear la funcón Format de VBA
Siguiendo con el ejemplo anterior, la línea del código donde asignas el nombre a la hoja podría ser algo así:
ActiveSheet.Name = "E" & Format(numtimes,"000")
ese formato que se define con "000" quiere decir precisamente tres cifras, completando siempre con ceros a la izquierda
------
Ya sé Excel, pero necesito más.