ELIMINAR TODAS LAS HOJAS EXCEPTO "HOJA1" CON MACRO

25/08/2006 - 11:51 por MarianoB | Informe spam
Buenos días grupo,

Estoy intentando crear una macro que borre todas las hojas de un libro
excepto "Hoja1" con el siguiente código pero a parece un error:
'
'ELIMINAR TODAS LAS HOJAS EXCEPTO HOJA1
Sub ELIMINA_HOJAS()
Dim ws As Worksheet
Dim A, B, C, D As String
If ActiveWorkbook.Sheets.Count > 1 Then
For Each ws In Worksheets
If ws.Name <> "Hoja1" Then
A = A & """" & ws.Name & """" & ", "
End If
Next ws
B = Len(A)
C = Mid(A, 2, B - 4)
Sheets(Array(C)).Select
ActiveWindow.SelectedSheets.Delete
End If
End Sub
'
La variable C contiene toda la cadena que debería ponerse en el array
pero aparece el error: '424' en tiempo de ejecucción: Se requiere un
objeto."
¿El problema es que en vez del nombre de la variable debería estar la
cadena?, y si es así ¿Cómo se hace? ó ¿he planteado mal la macro?

Muchas gracias a todos.

Preguntas similare

Leer las respuestas

#1 MarianoB
28/08/2006 - 10:28 | Informe spam
Hola Alexander,

Estoy intentando crear una macro que borre todas las hojas de un libro
excepto "Hoja1".


Quería eliminar todas las hojas (excepto "Hoja1") de un libro
previamente creado. En Hoja1 tenía creadoas algunos botones asociados
a macros y uno de ellos debía eliminar todas las hojas excepto HOJA1.
No obstante muchas gracias por tu aportación.

SALU2.
MarianoB.





Alexander Chacin wrote:
No estoy muy seguro sobre lo que quieres, pero si estás creando un libro
nuevo y quieres que tenga una sola hoja puedes probar esto

Sub Crear_Libro()
Dim HojasEnLibro as Integer

HojasEnLibro = Application.SheetsInNewWorkbook

Application.SheetsInNewWorkbook = 1
Workbooks.Add

Application.SheetsInNewWorkbook = HojasEnLibro

End Sub

Saludos
Alex

"MarianoB" escribió en el mensaje
news:
Buenos días grupo,

Estoy intentando crear una macro que borre todas las hojas de un libro
excepto "Hoja1" con el siguiente código pero a parece un error:
'
'ELIMINAR TODAS LAS HOJAS EXCEPTO HOJA1
Sub ELIMINA_HOJAS()
Dim ws As Worksheet
Dim A, B, C, D As String
If ActiveWorkbook.Sheets.Count > 1 Then
For Each ws In Worksheets
If ws.Name <> "Hoja1" Then
A = A & """" & ws.Name & """" & ", "
End If
Next ws
B = Len(A)
C = Mid(A, 2, B - 4)
Sheets(Array(C)).Select
ActiveWindow.SelectedSheets.Delete
End If
End Sub
'
La variable C contiene toda la cadena que debería ponerse en el array
pero aparece el error: '424' en tiempo de ejecucción: Se requiere un
objeto."
¿El problema es que en vez del nombre de la variable debería estar la
cadena?, y si es así ¿Cómo se hace? ó ¿he planteado mal la macro?

Muchas gracias a todos.

Respuesta Responder a este mensaje
#2 KL
28/08/2006 - 11:22 | Informe spam
Una opcion mas:

Sub test()
Worksheets("Sheet1").Copy
ActiveWorkbook.SaveAs "Prueba.xls"
End Sub

Saludos,
KL


"MarianoB" wrote in message news:
Hola Alexander,

Estoy intentando crear una macro que borre todas las hojas de un libro
excepto "Hoja1".


Quería eliminar todas las hojas (excepto "Hoja1") de un libro
previamente creado. En Hoja1 tenía creadoas algunos botones asociados
a macros y uno de ellos debía eliminar todas las hojas excepto HOJA1.
No obstante muchas gracias por tu aportación.

SALU2.
MarianoB.





Alexander Chacin wrote:
No estoy muy seguro sobre lo que quieres, pero si estás creando un libro
nuevo y quieres que tenga una sola hoja puedes probar esto

Sub Crear_Libro()
Dim HojasEnLibro as Integer

HojasEnLibro = Application.SheetsInNewWorkbook

Application.SheetsInNewWorkbook = 1
Workbooks.Add

Application.SheetsInNewWorkbook = HojasEnLibro

End Sub

Saludos
Alex

"MarianoB" escribió en el mensaje
news:
Buenos días grupo,

Estoy intentando crear una macro que borre todas las hojas de un libro
excepto "Hoja1" con el siguiente código pero a parece un error:
'
'ELIMINAR TODAS LAS HOJAS EXCEPTO HOJA1
Sub ELIMINA_HOJAS()
Dim ws As Worksheet
Dim A, B, C, D As String
If ActiveWorkbook.Sheets.Count > 1 Then
For Each ws In Worksheets
If ws.Name <> "Hoja1" Then
A = A & """" & ws.Name & """" & ", "
End If
Next ws
B = Len(A)
C = Mid(A, 2, B - 4)
Sheets(Array(C)).Select
ActiveWindow.SelectedSheets.Delete
End If
End Sub
'
La variable C contiene toda la cadena que debería ponerse en el array
pero aparece el error: '424' en tiempo de ejecucción: Se requiere un
objeto."
¿El problema es que en vez del nombre de la variable debería estar la
cadena?, y si es así ¿Cómo se hace? ó ¿he planteado mal la macro?

Muchas gracias a todos.

Respuesta Responder a este mensaje
#3 MarianoB
28/08/2006 - 11:26 | Informe spam
...es otra forma de enfocarlo

;-)

Gracias KL.


KL wrote:
Una opcion mas:

Sub test()
Worksheets("Sheet1").Copy
ActiveWorkbook.SaveAs "Prueba.xls"
End Sub

Saludos,
KL

>
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida