Al grabar un archivo, se genere un archivo por hoja

23/04/2008 - 19:57 por sergiomho | Informe spam
Buen día tengan todos ustedes, me encuentro en la necesidad de dividir
un archivo en varios archivos distintos. ¿Cómo sería esto?

Tengo un archivo de 3 hojas llamado "Archivo fuente", ¿hay alguna
forma de que al guardar el archivo se generen 3 archivos y cada uno
con una hoja? Algo así como:

"Archivo1" y tenga la hoja1 de Archivo Fuente
"Archivo2" y tenga la hoja2 de Archivo Fuente
"Archivo3" y tenga la hoja3 de Archivo Fuente

¿Es posible automatizar la fracción de un archivo en varios archivos
dependiendo de las páginas?

Muchísimas gracias por su tiempo.

Sergio.

Preguntas similare

Leer las respuestas

#1 sergiomho
23/04/2008 - 23:28 | Informe spam
Otra opción sería que cada vez que cambie el título de la hoja, se
corten las hojas anteriores y se guarden en otro archivo de word con
un nombre incremental.

Lo que necesito es que si tengo el archivo "Fuente" con 10 hojas, en
cada hoja viene la descripción de 1 persona, se generen 1 archivos,
cada uno con la descripción de 1 persona.
Respuesta Responder a este mensaje
#2 Monica May
24/04/2008 - 00:43 | Informe spam
hola sergio !!

Prueba la siguiente macro del siguiente articulo >>

http://www.fermu.com/content/view/556/2/lang,es/

solamente cambia la siguiente linea de codigo >>

FileFormat:=wdFormatHTML

Por esta otra >>

FileFormat:=wdFormatDocumentDefault

y comentanos cualquier duda !!

Saludos
Monica


www.fermu.com
www.teladearana.es
www.elguille.info
escribió en el mensaje de noticias
news:
Otra opción sería que cada vez que cambie el título de la hoja, se
corten las hojas anteriores y se guarden en otro archivo de word con
un nombre incremental.

Lo que necesito es que si tengo el archivo "Fuente" con 10 hojas, en
cada hoja viene la descripción de 1 persona, se generen 1 archivos,
cada uno con la descripción de 1 persona.
Respuesta Responder a este mensaje
#3 sergiomho
24/04/2008 - 16:54 | Informe spam
On 23 abr, 17:43, "Monica May" wrote:
hola sergio !!

Prueba la siguiente macro del siguiente articulo >>

http://www.fermu.com/content/view/556/2/lang,es/

solamente cambia la siguiente linea de codigo >>

FileFormat:=wdFormatHTML

Por esta otra >>

FileFormat:=wdFormatDocumentDefault

y comentanos cualquier duda !!

Saludos
Monica

escribió en el mensaje de noticiasnews:
Otra opción sería que cada vez que cambie el título de la hoja, se
corten las hojas anteriores y se guarden en otro archivo de word con
un nombre incremental.

Lo que necesito es que si tengo el archivo "Fuente" con 10 hojas, en
cada hoja viene la descripción de 1 persona, se generen 1 archivos,
cada uno con la descripción de 1 persona.



Sí me funcionó Mónica, muchísimas gracias!

¿Hay alguna forma de que el nombre sea dinámico?

Ejemplo:

El archivo abierto y que se desea cortar se llama "Origen", que los
archivos generados de ese se llamen:

"Origen1, Origen2, ... , OrigenX" donde "X" es la cantidad de páginas

Gracias por tu apoyo.
Respuesta Responder a este mensaje
#4 sergiomho
24/04/2008 - 19:05 | Informe spam
Lo que quiero es que cada nuevo archivo adquiera el nombre del que
puede ser considerado "archivo padre" mas el número de hoja en el que
va.

Aquí va el ejemplo del código pero obviametne "Nombre" no adquiere el
nombre del archivo que esta abierto y que deseo sea cortado:



Sub macro_corta_hojas()

Dim y As Integer
Dim i As Integer
Dim name As String
Dim Nombre As String

Nombre = FileName

Selection.HomeKey Unit:=wdStory

y = ActiveDocument.BuiltInDocumentProperties(wdPropertyPages)
i = 0

While i < y

i = i + 1

name = Nombre & CStr(i)

ActiveDocument.Bookmarks("\Page").Range.Cut
With Documents.Add
.Range.Paste
.SaveAs FileName:=name,
FileFormat:=wdFormatDocumentDefault
Selection.EndKey Unit:=wdStory
Selection.TypeBackspace
Selection.Delete Unit:=wdCharacter, Count:=1
Selection.TypeText Text:="m"

.Close
End With

Wend
End Sub






¿Alguna propiedad para obtener el nombre del archivo abierto?
Respuesta Responder a este mensaje
#5 sergiomho
24/04/2008 - 22:38 | Informe spam
Ya porfín logré esto con el siguiente código:



Sub macro_corta_hojas()

Dim y As Integer
Dim i As Integer
Dim name As String
Dim NombreC As String
Dim Nombre As String
Dim longitud As Integer

NombreC = ActiveDocument.name


longitud = Len(NombreC)
'Nombre = substr(Nombre, 0, longitud - 4)
Nombre = Left$(NombreC, longitud - 4)
y = ActiveDocument.BuiltInDocumentProperties(wdPropertyPages)
i = 0

Selection.HomeKey Unit:=wdStory
While i < y

i = i + 1

name = Nombre & CStr(i)

ActiveDocument.Bookmarks("\Page").Range.Cut
With Documents.Add
.Range.Paste
.SaveAs FileName:=name,
FileFormat:=wdFormatDocumentDefault
Selection.EndKey Unit:=wdStory
Selection.TypeBackspace
Selection.Delete Unit:=wdCharacter, Count:=1
Selection.TypeText Text:="m"

.Close
End With

Wend

ActiveDocument.SaveAs FileName:="basura.doc", FileFormat:= _
wdFormatDocument, LockComments:=False, Password:="",
AddToRecentFiles:= _
True, WritePassword:="", ReadOnlyRecommended:=False,
EmbedTrueTypeFonts:= _
False, SaveNativePictureFormat:=False, SaveFormsData:=False, _
SaveAsAOCELetter:=False
ActiveDocument.Close
End Sub



Ahora sólo tengo la duda de cómo poder usar la macro en cualquier
parte... no es como en excel que se guardan en los archivos... ¿cómo
puedo generalizar un macro?
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida