Macro para nombrar hojas en un libro de excel

Buenos días expertos

Cordial saludo

La presente para solicitar a ustedes el favor de indicarme cómo puedo cambiar el siguiente código para lograr que se asignen nombres consecutivos a las hojas de un libro en excel. El código que he escrito es el siguiente :

Sub decisionmarkoviana()
estados = InputBox("Estados")
etapas = InputBox("Etapas")
alternativas = InputBox("Alternativas")
Worksheets.Add Count:=alternativas
For alternativas = 1 To alternativas
Sheets.Name = "Probabilidad " & alternativas
Sheet.Name = "Ingreso " & alternativas
Next alternativas
End Sub

Agradezco inmensamente su colaboración y su atención a la presente.

Atentamente

Luz Melba González

1 Respuesta

Respuesta
1

Si vas a nombrar las hojas con el nombre Ingreso1, Ingreso2 o Probabilidad1, Probabilidad2, necesitas otro contador.

Lo que no me queda claro es qué nombre le vas a asignar xq tu hoja, solo podes usar 1 nombre y tus instrucciones muestran 2.

Espero tus aclaraciones

Sdos

Elsa

Buenos días Elsa

Cordial saludo

Muchas gracias Elsa por responder a esta pregunta y por esta valiosa colaboración. La intención de esta macro es generar un cierto número de hojas en el libro de excel, de acuerdo con el total de alternativas que indica el usuario. Por ejemplo, el usuario indica que son 3 alternativas. En este caso se debe generar 6 hojas, 3 de probabilidad (Probabilidad 1, Probabilidad 2, Probabilidad 3) y 3 de ingreso (Ingreso 1, Ingreso 2, Ingreso 3). Hice unas modificaciones a la macro inicial, pero escasamente logré que generara Probabilidad 1 e Ingreso 1 y no entiendo el por qué de la falla:

Sub decisionmarkoviana()
alternativas = InputBox("Alternativas")
Worksheets.Add Count:=alternativas * 2
Do
Worksheets(alternativas).Select
For alternativas = 1 To alternativas * 2
Sheets(alternativas).Name = "Probabilidad " & alternativas
Next alternativas
Loop Until alternativas = alternativas
Do
Worksheets(alternativas).Select
For alternativas = 1 To alternativas * 2
Sheets(alternativas).Name = "Ingreso " & alternativas
Next alternativas
Loop Until alternativas = alternativas
End Sub

De nuevo, muchas gracias Elsa por la atención prestada y por esta valiosa ayuda.

Atentamente

Luz

Me parece que te enredaste inútilmente, es más sencillo que eso:

Como la hoja que se agrega pasa a ser la activa, creá cada hoja y ya en ese momento asignale el nombre. Le coloqué que se vayan colocando al final pero eso es optativo.

Sub decisionmarkoviana()
estados = InputBox("Estados")
etapas = InputBox("Etapas")
alternativas = Val(InputBox("Alternativas")) 'me aseguro que devuelva un valor
For i = 1 To alternativas
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = "Probabilidad " & i
Sheets.Add
ActiveSheet.Name = "Ingreso " & i
Next i
End Sub

PD) Todo el tema BUCLES lo encontrarás en los manuales 400MacrosPlus (v. 2003) y Programación VBA (2007-2010), no te los pierdas !

Sdos

Elsa

Buenos días Elsa

Cordial saludo

Mil gracias por esta explicación y por el código, ya lo probé y funcionó perfectamente. Agradezco mucho esta valiosa colaboración, mil gracias, me resulta de gran utilidad.

Atentamente

Luz

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas