Macro excel para cambiar de nombre Hoja y moverla, error al usar por segunda vez

Primero les comento lo que hago con esta macro,

Selecciona el ultimo valor de una tabla dinámica, se abre el detalle de la misma en otra hoja, se cambia el nombre de la hoja, y luego se mueve esa hoja a un libro nuevo.

El problema es el siguiente

Cuando la ejecuto por primera vez, funciona perfecto, pero si vuelvo a ejecutarla, el excel se cuelga y se cierra.

Al realizar paso por paso el macro (en la segunda vez ejecutado), se cuelga cuando es el momento de cambiar el nombre

activesheet.name="ok"

Les dejo el macro, para ver si alguien sabe cual es el problema

Sub Informe_1()

'Desactivamos actualización de pantalla
Application.ScreenUpdating = False

'desprotejo libro y hoja

ThisWorkbook.Unprotect
ActiveSheet.Unprotect Password:="soloahora"

'selecciono ultimo valor de tabla dinamica
countult = Cells(Rows.Count, 2).End(xlUp).Row
Cells(countult, 2).Select

'muestro detalle de tabla dinamica de la celda total
ActiveCell.ShowDetail = True

'Seleccionamos la hoja con el detalle
ActiveSheet.Select
'Nombramos la pestaña
ActiveSheet.Name = "ok"
'Movemos la hoja a un libro nuevo
ActiveSheet.Move

Application.DisplayAlerts = False

'Guardamos la hoja con el nombre correspondiente y cerramos libro
ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & ActiveSheet.Name
ActiveWorkbook.Close False

ActiveSheet.Protect Password:="soloahora"
ThisWorkbook.Protect
Application.ScreenUpdating = True
Application.DisplayAlerts = True

End Sub

Respuesta

¿La segunda vez que lo haces es con una hoja diferente? ¿La cuál no se llama ok? ¿Al momento de fallar la macro te salta algún error en tiempo de ejecución? ¿Si es así cuál es?

la segunda vez, es ejecutando la misma macro, es la misma hoja, y se llama igual, "ok".

osea la ejecuto 2 veces sin sentido alguno, ya que la información seria la misma pero de todas maneras me gustaría que no suceda dicho problema.

1. abro el libro

2. ejecuto macro, la cual me crea un nuevo libro llamado OK con información sacada de la tabla dinámica.

3.si llego a ejecutar macro nuevamente, el excel se cierra.

probé borrar el libro OK, una vez creado, para ver si era porque ya existía, pero el problema siguió de todas maneras.

no me salta ningún cartel de error, solo se cuelga el excel y se cierra.

Probablemente se cuelga al tratar de nombrar la hoja con el mismo nombre, quizás deberías agregar una condición así

If activesheet.name = "ok" then

activesheet.name = "ok2" 

Else 

Activesheet.name = "ok"

End if

Inténtalo a ver si resulta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas