unir info de varias hojas en una sola

18/08/2008 - 20:28 por elhijoesu | Informe spam
Que tal, saludos al foro antes que nada, espero puedan ayudarme con
esta duda:


Windows Xp Pro SP2
Office enterprise 2007 SP1


Tengo un archivo con 390 hojas:
+Todas tienen el mismo formato, estructura de tabla y demas
+Todas tienen el mismo numero de columnas (A,B,C, y D) sin encabezados
+El rango de filas es variable a veces un par de filas a veces 30
filas por ejemplo
+Todas tienen el mismo formato de nombre de hoja (table 1, table 2,
etc)


Lo que quiero hacer es concatenar los datos de todas las hojas en una
sola hoja,, por lo poco que eh investigado eso se puede hacer con una
macro, de hecho en este foro he visto que recomiendan usar esta macro:

Sub Concentrar_Hojas()
Application.ScreenUpdating = False
Dim Sig As Byte, Eliminar As Boolean
If MsgBox("Deseas eliminar las hojas ""concentradas"" al final del
proceso?", _
vbQuestion + vbYesNo + vbDefaultButton2, "Favor de confirmar...") vbYes _
Then Eliminar = True
For Sig = 2 To Worksheets.Count
Worksheets(Sig).UsedRange.Copy _
Worksheets(1).Range("a65536").End(xlUp).Offset(1)
Next
If Not Eliminar Then Exit Sub
Application.DisplayAlerts = False
For Sig = 2 To Worksheets.Count
Worksheets(2).Delete
Next
Application.DisplayAlerts = True
End Sub


El problema es que cuando corro la macro me marca un error:


"Se ha producido el error '6' en tiempo de ejecución: Desbordamiento"

ovbiamente no se nada de nada acerca de macros pero le aprieto el
boton depurar y me aparece en amarillo y con una flechita la linea 7
de este codigo. (For Sig = 2 To Worksheets.Count)



Seguramente no hay nada malo en el codigo si no mas bien que no estoy
muy seguro de lo que estoy haciendo.

me pueden orientar para que me funcione esta macro por favor?



muchisimas gracias!!!




Saludos
 

Leer las respuestas

#1 Héctor Miguel
19/08/2008 - 04:57 | Informe spam
hola, (...) ???

el error que comentas se debe a que la consulta para la que propuso el codigo
era para un numero menor que 255 hojas en el libro (que es el limite para un tipo de datos "Byte")

prueba cambiando la tercera linea del codigo propuesto...
de: -> Dim Sig As Byte, Eliminar As Boolean
a: -> Dim Sig As Integer, Eliminar As Boolean

saludos,
hector.

__ OP __
Que tal, saludos al foro antes que nada, espero puedan ayudarme con esta duda:
Windows Xp Pro SP2
Office enterprise 2007 SP1

Tengo un archivo con 390 hojas:
+Todas tienen el mismo formato, estructura de tabla y demas
+Todas tienen el mismo numero de columnas (A,B,C, y D) sin encabezados
+El rango de filas es variable a veces un par de filas a veces 30 filas por ejemplo
+Todas tienen el mismo formato de nombre de hoja (table 1, table 2, etc)

Lo que quiero hacer es concatenar los datos de todas las hojas en una sola hoja
por lo poco que eh investigado eso se puede hacer con una macro, de hecho en este foro he visto que recomiendan usar esta macro:

Sub Concentrar_Hojas()
Application.ScreenUpdating = False
Dim Sig As Byte, Eliminar As Boolean
If MsgBox("Deseas eliminar las hojas ""concentradas"" al final del proceso?", _
vbQuestion + vbYesNo + vbDefaultButton2, "Favor de confirmar...") = vbYes _
Then Eliminar = True
For Sig = 2 To Worksheets.Count
Worksheets(Sig).UsedRange.Copy _
Worksheets(1).Range("a65536").End(xlUp).Offset(1)
Next
If Not Eliminar Then Exit Sub
Application.DisplayAlerts = False
For Sig = 2 To Worksheets.Count
Worksheets(2).Delete
Next
Application.DisplayAlerts = True
End Sub

El problema es que cuando corro la macro me marca un error:
"Se ha producido el error '6' en tiempo de ejecución: Desbordamiento"
ovbiamente no se nada de nada acerca de macros pero le aprieto el boton depurar
y me aparece en amarillo y con una flechita la linea 7 de este codigo. (For Sig = 2 To Worksheets.Count)

Seguramente no hay nada malo en el codigo si no mas bien que no estoy muy seguro de lo que estoy haciendo.
me pueden orientar para que me funcione esta macro por favor?
muchisimas gracias!!!

Preguntas similares