exportar de un excel a otro excel

04/05/2008 - 23:39 por Diana | Informe spam
Estoy creando una aplicación con menú personalizado y quisiera agregar en el
menú la opción de exportar la hoja activa a otro excel. Sé crear el archivo
excel pero no sé cómo escribir la instrucción para que copie la información
del rango A1:P10000 de la hoja activa de la aplicación en el nuevo libro de
excel con los mismos formatos que la hoja activa.
Qué instrucción inserto en el siguiente código para que haga ésto?
Sub Exportar()
Dim xlObj As Object
Set xlObj = CreateObject("Excel.Application")
With xlObj
.Visible = True
.Workbooks.Add
With .ActiveWorkbook.Worksheets(1)
.Activate
End With
End With
End Sub

Muchas gracias.

Preguntas similare

Leer las respuestas

#6 Diana
05/05/2008 - 20:58 | Informe spam
Héctor Miguel,
Después de estas preguntas te comprendo mejor.
Todo está corriendo en VBA
No sabía que que no se podían pasar objetos entre dos instancias de excel en
forma transparente. Me falta tanto por aprender!
Entonces la pregunta sería otra.Cómo hago para que el usuario pueda capturar
la información de la ventana activa (son siempre informes financieros que se
van armando de acuerdo a la elección que haga el ususario en un listbox) y
enviarla a un excel para trabajarla?
Se me ocurre
1) Crear el excel con Create Object.
2) Darle una instrucción para que se guarde como un archivo de excel en el
escritorio o Mis Documentos del usuario.
3) Recién en esa instancia hago que se copie y pegue entre los dos libros
como dos excel comunes (del libro 1 al libro 2).

Es así o hay algo mejor que desconozco?
Muchas gracias

"Héctor Miguel" escribió en el mensaje
news:uT3ph$
Mostrar la cita
#7 Héctor Miguel
05/05/2008 - 22:08 | Informe spam
hola, Diana ! (dejame hacer un ligero "batido" con esta consulta tuya) :))

1) si esta parte ya esta comprendida...
Mostrar la cita
2) creo que NO deberias de "insistir" en este procedimiento ("instanciar" OTRO excel)...
Mostrar la cita
3) me inclino por responder a esta parte de tu consulta:
Mostrar la cita
a) como ya te habia comentado, una instruccion del tipo: -> <objeto_hoja>.Copy
CREA un nuevo libro (en la misma instancia de excel) con SOLO la hoja "copiada":
-> con todo y todo, formatos, formulas, nombres, vinculos, objetos (y su asignacion de macros), eventos, etc.
Y... deja el nuevo libro como el libro activo, por lo que puedes "manipularlo" como el "ActiveWorkbook", "ActiveSheet", etc.
con lo que podrias guardarlo +/- asi:
1) en el directorio activo: -> ActiveWorkbook.SaveAs "Copia de mi libro X", xlWorkbookNormal
2) en otro directorio: -> ActiveWorkbook.SaveAs "c:uta y\subcarpetas\Copia de mi libro X", xlWorkbookNormal

b) si quieres "congelar" las formulas con sus valores constantes (sin perder formatos) y necesitas eliminar filas/columnas "sobrantes"
ANTES de hacer el guardado (inciso a anterior) prueba con instrucciones +/- como las siguientes:

With ActiveSheet
.UsedRange.Value = .UsedRange.Value
.Range("aa1:az60").Clear
End With

saludos,
hector.
#8 Diana
05/05/2008 - 23:26 | Informe spam
Héctor Miguel,
Más que claro y muchas gracias. En lo único que estoy fallando es tu punto
a) de la explicación porque no sé crear un libro nuevo en la misma instancia
y que copie todo. Sólo sé crear un nuevo libro con CreateObject que en mi
caso no sirve.

a) como ya te habia comentado, una instruccion del tipo: ->
<objeto_hoja>.Copy
CREA un nuevo libro (en la misma instancia de excel) con SOLO la hoja
"copiada":
-> con todo y todo, formatos, formulas, nombres, vinculos, objetos (y su
asignacion de macros), eventos, etc.

Si sólo me dijeras cómo escribir esta instrucción, y siguiendo el resto de
tu explicación, ya podría terminar sola. Desde ya te agradezco todo lo que
me estás enseñando.
Diana



"Héctor Miguel" escribió en el mensaje
news:
Mostrar la cita
#9 Héctor Miguel
06/05/2008 - 03:05 | Informe spam
hola, Diana !

Mostrar la cita
en tu segunda consulta comentaste lo siguiente:
"> Trate de incluir la instruccion <objeto_hoja>.Copy pero no funciona.
"> Debo estar haciendo algo mal porque me crea un nuevo libro.

o sea, que ya supiste "como" crear un libro nuevo (en la misma instancia de excel), no ? (p.e.)
-> crear un libro nuevo con SOLO una copia "fiel" de la hoja que le indiques...

- la hoja activa ? (sea cual sea el libro activo)
ActiveSheet.Copy

- la hoja activa del libro que contiene las macros ?
ThisWorkbook.ActiveSheet.Copy

- la hoja 5 (en su orden o posicion dentro) del libro que contiene las macros ?
ThisWorkbook.Worksheets(5).Copy

- cual es la que necesitas copiar ?

saludos,
hector.
#10 Diana
06/05/2008 - 05:22 | Informe spam
Mil gracias!!!
Funciona perfecto.
Me estaba enredando sola en mis propios errores. Después de leer atentamente
tus explicaciones lo resolví.
Como siempre gracias por tus enseñanzas.
Saludos desde Buenos Aires,
Diana



"Héctor Miguel" escribió en el mensaje
news:
Mostrar la cita
Ads by Google
Search Busqueda sugerida