Incluir todas las hojas en la 1ª

03/10/2007 - 19:07 por Telerín | Informe spam
Hola a todos.

¿Sabe alguien cómo hacer para unir las hojas de un XLS en una sóla, una
detrás de otra?

Gracias.

Preguntas similare

Leer las respuestas

#6 Telerín
05/10/2007 - 12:07 | Informe spam
Funcionan perfectamente los 2 sistemas, y me sirven los 2. Gracias.




"Ivan" escribió en el mensaje
news:
solo como apunte:

creo que no deberia dejar te ninguna fila vacia, pero ahoraa tengo que
salir

comentas si te sirve la modificacion propuesta??

un saludo
Ivan

Respuesta Responder a este mensaje
#7 Telerín
05/10/2007 - 14:58 | Informe spam
Al final hice así la cosa, no sé si me he complicado demasiado, pero está
más dentro de mis conocimientos:


En este ejemplo, 2 son las líneas de cabecera:

Sub Macro1()

Dim n As Byte
Dim nLineasCabecera As Byte
Dim A As Integer

nLineasCabecera = 2


With ThisWorkbook

Sheets(1).Select
Rows("1:" & Trim(Str(nLineasCabecera))).Select
Selection.Copy
.Worksheets.Add after:=.Worksheets(.Worksheets.Count)
.Worksheets(.Worksheets.Count).Select
ActiveSheet.Paste

For n = 1 To .Worksheets.Count - 1
.Worksheets(n).Select ' Selecciona la hoja
SeleCeldas (nLineasCabecera) ' Selecciona y copia el
cuerpo al buffer
.Worksheets(.Worksheets.Count).Select ' Selecciona la nueva
hoja
A = Selection.SpecialCells(xlCellTypeLastCell).Row
Range(Cells(A + 1, 1), Cells(A + 1, 1)).Select
ActiveSheet.Paste ' Copia el cuerpo
Next

End With

End Sub


Sub SeleCeldas(nLinCab As Byte) ' Selecciona y copia el cuerpo al buffer

Dim A1 As Integer
Dim A2 As Integer
Dim B1 As Integer
Dim B2 As Integer

nLinCab = 2

A1 = nLinCab + 1
A2 = 1
B1 = Selection.SpecialCells(xlCellTypeLastCell).Row
B2 = Selection.SpecialCells(xlCellTypeLastCell).Column

Range(Cells(A1, A2), Cells(B1, B2)).Select
Range(Cells(A1, A2), Cells(B1, B2)).Copy

End Sub
Respuesta Responder a este mensaje
#8 Ivan
05/10/2007 - 17:32 | Informe spam
hola,

"> Al final hice así la cosa, no sé si me he complicado demasiado,"







efectivamente.

No existe ninguna necesidad en este caso (y casi en ninguno) de andar
activando/seleccionando/reactivando/reseleccionando hojas y/ni rangos
para realizar lo que deseas, basta con hacer referencia a ellos
adecuadamente (es decir, sencillamente por su nombre/indice +/-) para
realizar lo que buscas. no solo sera generalmente mas rapido y
'limpio' sino que ademas puedes evitar algun que otro percance.

"pero está más dentro de mis conocimientos:"







por suerte (¿o por desgracia?), los conocimientos son una cosa que
tenemos la capacidad de ampliar, aunque cada cual sabra el ritmo y/o
el interes que imrimirle a dicha ampliacion

bueno, en cualquier caso, si a ti te vale, pues bien esta y me alegro

un saludo
Ivan
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida