Copiar filas en una hoja nueva

26/02/2005 - 03:10 por Martin | Informe spam
Hola a todos. (perdon por el reposteo, me equivoque y se me paso hacer
hilo nuevo)

Queria saber si puedo hacer lo siguiente:
Tengo un libro con 4 hojas. Las hojas tienen identica estructura aunque
datos diferentes. Quiero hacer una hoja nueva que tenga las filas de las
otras cuatro ordenadas de modo que la primera fila sea la primera de la
primera hoja, la segunda la primera de la segunda hoja, la tercera la
primera de la tercera hoja y la cuarta la primera de la cuarta hoja. Es
decir, una tabla que reuna todas las filas pero ordenadas por la primera
columna de cada hoja (es una fecha). No tengo problema para hacerlo con
la primera fila mediante esta macro que encontre, pero solo me extrae la
primera fila, ¨como se puede repetir para todas?


Sub Test4()
Dim sh As Worksheet
Dim DestSh As Worksheet
Dim Last As Long



On Error Resume Next
If Len(ThisWorkbook.Worksheets.Item("Master").Name) = 0 Then
On Error GoTo 0
Application.ScreenUpdating = False
Set DestSh = Worksheets.Add
DestSh.Name = "Master"
For Each sh In ThisWorkbook.Worksheets
If sh.Name <> DestSh.Name Then
Last = LastRow(DestSh)



sh.Rows("3").Copy DestSh.Cells(Last + 1, "A")
End If
Next
Cells(1).Select
Application.ScreenUpdating = True
Else
MsgBox "The sheet Master already exist"
End If
End Sub

La funcion LastRow es:

Function LastRow(sh As Worksheet)
On Error Resume Next
LastRow = sh.Cells.Find(What:="*", _
After:=sh.Range("A1"), _
Lookat:=xlPart, _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious, _
MatchCase:=False).Row
On Error GoTo 0
End Function


Lo que quiero es esto pero para la totalidad de las hojas.


Gracias de antemano. Perdon por lo extenso.


Salu2. Martin
 

Leer las respuestas

#1 Martin
27/02/2005 - 01:04 | Informe spam
Anonynous, muchas, muchas gracias, funciona perfectamente, salvo que no
se detiene en la ultima fila llena y sigue hasta la ultima, con lo cual
tarda mucho, pero solo lo voy a hacer una vez (despues la actualizacion
sera cada dia y eso ya lo hare con copypaste) y se puede interrumpir al
ratito para no estar esperando que termine despues de hadergenerado la
hoja a partir de las filas llenas..
Para Desastres: gracias por tu intervencion. He probado lo que dices por
ver si habia alguna diferencia pero sale un error: el del msgbox "Numero
de filas distintoú". No se a que se debe porque sigo alucinando con que
el codigo escrito genere los resultados que genera. Gracias ed todos
modos.


Salu2 y muchas gracias otra vez.


Martin


Mostrar la cita

Preguntas similares