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

#1 Telerín
04/10/2007 - 12:27 | Informe spam
OK, tienes razón, y gracias por contestar.

- Excel 97.
- Todas las hojas tienen la misma estructura: Son distintas columnas con
datos. Cada una tiene su titulito arriba, por ejemplo algo así:

Nombre Apellidos Edad
-
Pepe Lepe 90
Ana Wana 5
. . .

o sea, el mismo rango de columnas, aunque distinto nº de filas.

- Quiero crear una nueva hoja con todas las hoja una debajo de otra.
- Son 20 hojas, 30 y tantas columnas por columna, con 20-30 líneas por hoja.
Respuesta Responder a este mensaje
#2 Ivan
04/10/2007 - 14:55 | Informe spam
hola,

suponiendo que la 1ª celda de los titulos es la 'A1' y que en la
columna 'A' siempre va a haber datos si los hay en otra celda de la
fila, puedes probar algo parecido a esto (copia/pegalo en un modulo
normal de vba y ejecutalo, bien directamente con F5 bien desde una de
las hojas desde el cuadro macros)=>>

(OJO a los posibles saltos de linea en el foro)

'*****copi desde aqui ************************
'
Sub CopiarHojas()
Dim n As Byte
With ThisWorkbook
If .Worksheets.Count > 1 Then
Application.ScreenUpdating = False
.Worksheets.Add after:=.Worksheets(.Worksheets.Count)
.Worksheets(1).Range("a1").CurrentRegion.Copy [a1]
For n = 2 To .Worksheets.Count - 1
With .Worksheets(n).Range("a1").CurrentRegion
.Offset(1).Resize(.Rows.Count - 1, .Columns.Count) _
.Copy [a65536].End(xlUp).Offset(1)
End With
Next
End If
End With
End Sub

'**************copia hasta aqui ****************

espero te valga y si quieres comenta

un saludo
Ivan
Respuesta Responder a este mensaje
#3 Telerín
04/10/2007 - 17:54 | Informe spam
Pues ocurre lo siguiente:
He creado 3 hojas con los siguientes datos:

Hoja1
a
b
c

d
e
f

g
h
i



Hoja2
j
k
l

m
n
ñ



Hoja3
o
p
q

r
s
t

u
v
x



Al aplicar la macro se crea la 4ª hoja con el resultado:

Hoja4
a
b
c

d
e
f

g
h
i

m
n
ñ

r
s
t

u
v
x




Es como si se comiera la 1ª línea de cada hoja ¿no?
Respuesta Responder a este mensaje
#4 Ivan
04/10/2007 - 20:05 | Informe spam
hola


Es como si se comiera la 1ª línea de cada hoja ¿no?







pensaba que al tener los mismos titulos lo que querias era hobtener
una lista continua con un solo encabezado.

prueba a cambiar esto:

With .Worksheets(n).Range("a1").CurrentRegion
.Offset(1).Resize(.Rows.Count - 1, .Columns.Count) _
.Copy [a65536].End(xlUp).Offset(1)
End With

por esto:

Worksheets(n).Range("a1").CurrentRegion.Copy
[a65536].End(xlUp).Offset(1)


a ver si es esto lo que pides(si quieres dejar una fila vacia entre
medias cambia en el offset(1) el 1 por un 2)

un saludo
Ivan
Respuesta Responder a este mensaje
#5 Ivan
04/10/2007 - 20:06 | Informe spam
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
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida