Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Visual Basic clásico (http://www.forosdelweb.com/f69/)
-   -   vba_excel .exportar hojas a un nuevo libro (http://www.forosdelweb.com/f69/vba_excel-exportar-hojas-nuevo-libro-575355/)

DIANA_MM 12/04/2008 14:44

vba_excel .exportar hojas a un nuevo libro
 
Hola, os comento mi consulta:

-Tengo un libro de Excel cuyo nombre no se.
-Este libro tiene las siguientes hojas:
-HP (siempre visible)
-Resumen (siempre visible)
-Cprod1 (visible si checkbox1 del userform =true)
-Cprod2 (visible si checkbox2 del userform =tue)
-Cprod3 (visible si checkbox3 del userform =true)

-Quiero exportar a un nuevo libro de Excel ,cuyo nombre no se, las hojas visibles, menos la hoja HP.

He probado entre otras cosas lo siguiente:

1-
Sheets(Array("RESUMEN", "PROD1", "PROD2", "PROD3")).Select
Sheets(Array("RESUMEN", "PROD1", "PROD2", "PROD3")).Copy
Cells.Select
Selection.Copy

Pero, da error porque puede que no tenga visible la hoja Prod1, o la Prod2 o la Prod3 (que de hecho no quiero exportar las no visibles).

2-

If Cprod1.value=true then
Sheets( "PROD1”)).Select
Sheets(“PROD1").Copy
Cells.Select
Selection.Copy
Else
If Cprod2.value=true then
Sheets("PROD2").Select
Sheets("PROD2 ").Copy
Cells.Select
Selection.Copy

Etc…

Pero me crea un nuevo libro para cada hoja.

¿alguien me da alguna idea de como lo podría solucionar?

DIANA_MM 13/04/2008 07:54

Re: vba_excel .exportar hojas a un nuevo libro
 
Al final he encontrado una solucioncilla,que por lo menos hace lo que quería...haciendo macros de excel y solo que no sabía como volver al libro activo inicial.

Private Sub cmbguardar_Click()

milibro = ActiveWorkbook.Name
nuevolibro = InputBox("NOMBRE" & vbCrLf & "INFORMA NOMBRE DEL NUEVO LIBRO", "ERROR")
nombrenuevolibro = (nuevolibro)
Workbooks.Add
ActiveWorkbook.SaveAs Filename:=nombrenuevolibro, FileFormat:= _
xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
, CreateBackup:=False

Windows(milibro).Activate

Sheets("RESUMEN").Select
Sheets("RESUMEN").Copy Before:=Workbooks(nombrenuevolibro).Sheets(1)

Windows(milibro).Activate

If CPROD1A.Value = True Then
Sheets("PROD1").Select
Sheets("PROD1").Copy Before:=Workbooks(nombrenuevolibro).Sheets(1)
End If
Windows(milibro).Activate
If CPROD2A.Value = True Then
Sheets("PROD2").Select
Sheets("PROD2").Copy Before:=Workbooks(nombrenuevolibro).Sheets(1)
End If
Windows(milibro).Activate
If CPROD3A.Value = True Then
Sheets("PROD3").Select
Sheets("PROD3").Copy Before:=Workbooks(nombrenuevolibro).Sheets(1)
End If

Windows(milibro).Activate

End Sub


La zona horaria es GMT -6. Ahora son las 21:52.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.