Copiando hojas entre libros con nombres en las celdas

07/11/2003 - 20:35 por DRM | Informe spam
Tengo un modelo de tabla para imprimir en una hoja, para cuyos campos de
datos tengo nombradas las celdas.
Mediante código quiero hacer que se cree un nuevo libro con una única hoja,
copia de la del libro originario, con todos sus formatos, y sobre todo, los
nombres de las celdas, para así, desde el mismo código, pasar valores a la
nueva (y única (hoja del libro así creado).

Aparte de dimensionar las variables había pensado según este orden:

-Coger un inputbox para tomar el nombre del nuevo documento de excel
-un set del: nuevolibro = new workbook
-nombrecico: nuevolibro.name =...
-un set para la: nuevahoja = nuevolibro.worksheets.add (,
Worksheets(Worksheets.Count))
(creo que fabricando por código no ponía las tres de por defecto de la
plantilla de inicio)
-nombrecico: nuevahoja.name =...
-copiado sobre la nueva hoja del libro originario: viejolibro.worksheets
("Modelo").copy nuevolibro.woksheets ("sunombre")

¿se habrán copiado también los nombres de las celdas o hay que currarse el
código mediante colecciones en los workbooks?

-Pasado de los datos a la nueva, según formulario y cálculos... De ahí la
importancia de lo que pregunto, del tipo:

nuevolibro.hojas (esa).cells (nombrexx) = variable, función o txtbox

-Save del nuevo libro y salida (limpieza de memoria, etc)

De paso si podeis indicarme si debo seleccionar las hojas en algún momento
especial

salu2
 

Leer las respuestas

#1 Fernando Arroyo
07/11/2003 - 21:54 | Informe spam
Pienso que es mucho más sencillo que lo que has pensado. La instrucción

Sheets("NombreDeLaHoja").Copy

copiará la hoja a un libro nuevo con todos susdatos, formatos, rangos con nombre, filtros, etc. Una vez copiada, la hoja se convertirá en la hoja activa, lo que te puede resultar muy conveniente para guardar el libro usando

ActiveWorkbook.SaveAs Filename:="C:\Ruta\Nombre.xls"

Un saludo.


Fernando Arroyo
MS MVP - Excel


"DRM" escribió en el mensaje news:bogrub$kqb$
Tengo un modelo de tabla para imprimir en una hoja, para cuyos campos de
datos tengo nombradas las celdas.
Mediante código quiero hacer que se cree un nuevo libro con una única hoja,
copia de la del libro originario, con todos sus formatos, y sobre todo, los
nombres de las celdas, para así, desde el mismo código, pasar valores a la
nueva (y única (hoja del libro así creado).

Aparte de dimensionar las variables había pensado según este orden:

-Coger un inputbox para tomar el nombre del nuevo documento de excel
-un set del: nuevolibro = new workbook
-nombrecico: nuevolibro.name =...
-un set para la: nuevahoja = nuevolibro.worksheets.add (,
Worksheets(Worksheets.Count))
(creo que fabricando por código no ponía las tres de por defecto de la
plantilla de inicio)
-nombrecico: nuevahoja.name =...
-copiado sobre la nueva hoja del libro originario: viejolibro.worksheets
("Modelo").copy nuevolibro.woksheets ("sunombre")

¿se habrán copiado también los nombres de las celdas o hay que currarse el
código mediante colecciones en los workbooks?

-Pasado de los datos a la nueva, según formulario y cálculos... De ahí la
importancia de lo que pregunto, del tipo:

nuevolibro.hojas (esa).cells (nombrexx) = variable, función o txtbox

-Save del nuevo libro y salida (limpieza de memoria, etc)

De paso si podeis indicarme si debo seleccionar las hojas en algún momento
especial

salu2



Preguntas similares