............ Foro Excel
Si no lo has hecho aún: REGISTRATE!!!

Juntar datos de varias hojas

Ver el tema anterior Ver el tema siguiente Ir abajo

Juntar datos de varias hojas

Mensaje por mirkinv el Jue Sep 08, 2011 9:00 pm

Buenas noches, soy nuevo en este foro y necesito ayuda, me llegan archivos mensuales y a los cuales los voy pegando a los datos que me interesan en hojas de un nuevo archivo, al final del año tengo 1 archivo con 12 hojas, una por cada mes,
El tema es que tengo que juntar los datos de cada hoja en una nueva, cada hoja mensual tiene 3400 o mas registros y tengo que sacarlos y juntarlos en un nueva hoja.
Esto por un lado, despues que resuelva esto planteare los otros problemas.
sds

mirkinv

Masculino Cantidad de envíos : 4
Edad : 41
Ciudad - Pais : san miguel de tucuman
Version de Excel : 2007
Fecha de inscripción : 08/09/2011

Volver arriba Ir abajo

Re: Juntar datos de varias hojas

Mensaje por moises melgar el Jue Sep 08, 2011 10:51 pm

Buenas Noches (aca en mexico son las 8:52 pm) Sr mirkinv
En primer lugar le doy la Bienvenida a Excel Gali, aqui no criticamos si no que nos apoyamos, por eso es un lugar para iniciarse y perfeccionarse en Excel...
Me he tomado la libertad de Elaborar esta macro, asi como adjuntar un libro de Excel para visualizar el ejemplo,
lo trate de hacer lo mas simple y descriptivo para que se pueda entender para los que se esten iniciando en macros
Código:
Sub tranportar()
Dim i As Long
Dim fila As Long
Application.ScreenUpdating = False
'copio los encabezados a usar
Hoja1.Range("a1:f1").Copy
'activo la hoja que lo concentra y pego los encabezados
Sheets("Concentrado Anual").Activate
ActiveSheet.Range("A1").Select
ActiveSheet.Paste
'esto le quita la propiedad de seguir pegando los datos copiados
Application.CutCopyMode = False
' bucle que pasara por las doce hojas
    For i = 1 To 12
    'como i pasara de 1 en 1 hasta doce, cada vuelta de i representara el numer de hoja
    Sheets(i).Activate
    'determino la ultima celda ocupada de la hoja en la que se encuentra
    fila = ActiveSheet.Range("A" & ActiveSheet.Rows.Count).End(xlUp).Row
    'si la ultiam celda con datos es la que se encuntra en la fila 1 "encabezados" pues no tiene datos que copiar
    'y pasara hasta despues de End if
        If fila <> 1 Then
    ' si hay datos que copiar se selecciona esos datos y se pegan en el concentrado
        ActiveSheet.Range("A2:F" & fila).Copy
        Sheets("Concentrado Anual").Select
        Range("A" & ActiveSheet.Rows.Count).End(xlUp).Offset(1, 0).Select
        Selection.PasteSpecial Paste:=xlPasteValues
        Application.CutCopyMode = False
        End If
    'pasamos a la sig hoja, cuando termine la 12 vuelta se saltara el Next i para finalmente terminar el codigo
    Next i
End Sub
Archivos
transportar a nueva hoja.xlsm No tienes los permisos para descargar los archivos.(34 KB) Descargado 212 veces
avatar
moises melgar
Jr_Moderator

Masculino Cantidad de envíos : 547
Edad : 28
Ciudad - Pais : Coatzacoalcos - Mexico
Version de Excel : 2007 - 2010
Fecha de inscripción : 25/05/2010

Volver arriba Ir abajo

Re: Juntar datos de varias hojas

Mensaje por mirkinv el Vie Sep 09, 2011 6:34 am

mil gracias moises, ahora lo chequeo y te aviso cualquier duda.

mirkinv

Masculino Cantidad de envíos : 4
Edad : 41
Ciudad - Pais : san miguel de tucuman
Version de Excel : 2007
Fecha de inscripción : 08/09/2011

Volver arriba Ir abajo

Re: Juntar datos de varias hojas

Mensaje por mirkinv el Sáb Sep 10, 2011 7:53 am

Estimado mosies, esta bueno el macro, pero tengo un problema, aca te paso el link del archivo y necesito copiar los datos de las hojas de los meses en la hoja "todas activadas"


tambien hice las modificaciones en el macro como veras para poder hacerlo
Código:
Sub tranportar()
Dim i As Long
Dim fila As Long
Application.ScreenUpdating = False
'copio los encabezados a usar
Hoja1.Range("a1:p1").Copy
'activo la hoja que lo concentra y pego los encabezados
Sheets("todas activadas").Activate
ActiveSheet.Range("A1").Select
ActiveSheet.Paste
'esto le quita la propiedad de seguir pegando los datos copiados
Application.CutCopyMode = False
' bucle que pasara por als doce hojas
    For i = 4 To 18
    'como i pasara de 1 en 1 hasta doce, cada vuelta de i representara el numer de hoja
    Sheets(i).Activate
    'determino la ultima celda ocupada de la hoja en la que se encuentra
    fila = ActiveSheet.Range("A" & ActiveSheet.Rows.Count).End(xlUp).Row
    'si la ultiam celda con datos es la que se encuntra en la fila 1 "encabezados" pues no tiene datos que copiar
    'y pasara hasta despues de End if
        If fila <> 1 Then
    ' si hay datos que copiar se selecciona esos datos y se pegan en la nueva hoja
        ActiveSheet.Range("A2:q" & fila).Copy
        Sheets("todas activadas").Select
        Range("A" & ActiveSheet.Rows.Count).End(xlUp).Offset(1, 0).Select
        Selection.PasteSpecial Paste:=xlPasteValues
        Application.CutCopyMode = False
        End If
    'pasamos a la sig hoja
    Next i
End Sub
El problema ahora es que cuando me copia no se porque no copia todas las columnas hasta la P y en la ultima si lo hace.
Espero me puedas seguir ayudando
sds

mirkinv

Masculino Cantidad de envíos : 4
Edad : 41
Ciudad - Pais : san miguel de tucuman
Version de Excel : 2007
Fecha de inscripción : 08/09/2011

Volver arriba Ir abajo

Re: Juntar datos de varias hojas

Mensaje por GalileoGali el Sáb Sep 10, 2011 11:55 am

Respecto al problema con los links de skydrive, realmente he probado varios y todos funcionan normalmente.¿Por que no revisas a ver si tal vez no estas copiando lo que realmente corresponde?

[Tienes que estar registrado y conectado para ver este vínculo][Tienes que estar registrado y conectado para ver este vínculo] target="_blank" >Image hosted by servimg.com<br /><br /></div></div><div class=
_________________
GalileoGali
M.A.P. 2010-2013
Microsoft Active Professional
avatar
GalileoGali
Admin

Masculino Cantidad de envíos : 1962
Edad : 61
Ciudad - Pais : QUIROGA, Argentina
Version de Excel : 2000-2003-2007-2010
Fecha de inscripción : 24/01/2008

http://excelgali.mejorforo.net

Volver arriba Ir abajo

Re: Juntar datos de varias hojas

Mensaje por GalileoGali el Sáb Sep 10, 2011 1:42 pm

[Tienes que estar registrado y conectado para ver esa imagen]

_________________
GalileoGali
M.A.P. 2010-2013
Microsoft Active Professional
avatar
GalileoGali
Admin

Masculino Cantidad de envíos : 1962
Edad : 61
Ciudad - Pais : QUIROGA, Argentina
Version de Excel : 2000-2003-2007-2010
Fecha de inscripción : 24/01/2008

http://excelgali.mejorforo.net

Volver arriba Ir abajo

Re: Juntar datos de varias hojas

Mensaje por moises melgar el Sáb Sep 10, 2011 1:42 pm

Tambien Existe el adjuntar archivo desde tu mensaje
Al escribir tu mensaje dale "previsualizar"
Luego en la parte inferior aparecera "AÑADIR UN ARCHIVO"
Selecciona tu archivo y ahi mimo en la parte derecha presiona el boton "ENVIAR", alado dela frase "(Tamaño máximo por archivo : 0.488 Mb)"

Luego ya puedes enviar tu Mensaje y se visualizara al final del mensaje
avatar
moises melgar
Jr_Moderator

Masculino Cantidad de envíos : 547
Edad : 28
Ciudad - Pais : Coatzacoalcos - Mexico
Version de Excel : 2007 - 2010
Fecha de inscripción : 25/05/2010

Volver arriba Ir abajo

Re: Juntar datos de varias hojas

Mensaje por mirkinv el Sáb Sep 10, 2011 1:58 pm

lo que pasa es que soy muy nuevo para pegar vinculos, tengo que esperar una semana
sds

mirkinv

Masculino Cantidad de envíos : 4
Edad : 41
Ciudad - Pais : san miguel de tucuman
Version de Excel : 2007
Fecha de inscripción : 08/09/2011

Volver arriba Ir abajo

Re: Juntar datos de varias hojas

Mensaje por moises melgar el Sáb Sep 10, 2011 2:13 pm

Te adjunte unas imagenes de como se debe hacer para subir un archivo al Foro desde el mismo foro:
Descargalas y sigue el procedimiento ahi indicado
Paso 1:

Paso2:
avatar
moises melgar
Jr_Moderator

Masculino Cantidad de envíos : 547
Edad : 28
Ciudad - Pais : Coatzacoalcos - Mexico
Version de Excel : 2007 - 2010
Fecha de inscripción : 25/05/2010

Volver arriba Ir abajo

Re: Juntar datos de varias hojas

Mensaje por zommbiee el Sáb Feb 09, 2013 5:07 pm

Buenas Tardes.

Una consulta y si tengo muchas mas hojas como hago esto mismo????

zommbiee

Masculino Cantidad de envíos : 1
Edad : 34
Ciudad - Pais : Colombia
Version de Excel : 2007
Fecha de inscripción : 09/02/2013

Volver arriba Ir abajo

Re: Juntar datos de varias hojas

Mensaje por crengifo el Mar Feb 07, 2017 10:51 pm

Buenas noches, si quisiera copiar solo los datos de los meses pero en otro libro.

crengifo

Masculino Cantidad de envíos : 1
Edad : 38
Ciudad - Pais : 57
Version de Excel : 2013
Fecha de inscripción : 07/02/2017

Volver arriba Ir abajo

Re: Juntar datos de varias hojas

Mensaje por moises melgar el Dom Abr 30, 2017 3:55 am

zommbiee escribió:Buenas Tardes.

Una consulta y si tengo muchas mas hojas como hago esto mismo????
con el supuesto que la ultima hoja creada es en donde se concentrara la informacion
reemplazar
   
Código:
For i = 1 To 12
por:
   
Código:
For i = 1 To Sheets.Count '<------pasar por todas las hojas existentes
    'como i pasara de 1 en 1 de todas las hojas existentes, cada vuelta de i representara el numer de hoja
'si en una de las vueltas del bucle, el nombre de la hoja es el nombre de la hoja donde concentran su informacion
' entonces, terminara el bucle, ya que ya llegamos a la ultima hoja del libro y concentrado anual es donde se obtienen los datos
    If Sheets(i).Name = "Concentrado Anual" Then
    Exit For
    End If
avatar
moises melgar
Jr_Moderator

Masculino Cantidad de envíos : 547
Edad : 28
Ciudad - Pais : Coatzacoalcos - Mexico
Version de Excel : 2007 - 2010
Fecha de inscripción : 25/05/2010

Volver arriba Ir abajo

Re: Juntar datos de varias hojas

Mensaje por moises melgar el Dom Abr 30, 2017 4:19 am

crengifo escribió:Buenas noches, si quisiera copiar solo los datos de los meses pero en otro libro.
Buenas noches
explicacion corta de la macro que se adapta:
la macro la ejecutaremos desde el nuevo libro donde se pegaran los datos
el libro para la base de datos que utilizo es el mismo libro "transportar a nueva hoja.xlsm" subido a principio de este tema, ya que esta contiene los datos de ejemplo, este libro necesita estar en la misma ubicacion (carpeta) que el nuevo archivo que subo
la macro hace esto:
ejecuto la macro en el libro nuevo "obtener datos.xlsm"
la macro abre el libro con las hojas con datos "transportar a nueva hoja.xlsm"
selecciona libro  "transportar a nueva hoja.xlsm"
copia los datos
selecciona libro "obtener datos.xlsm"
pega los datos
y asi sucesivamnete

Asi que antes de seleccionar un rango a copiar inserto
Código:
Workbooks("transportar a nueva hoja.xlsm").Activate
y antes de  pegarlos en el nuevo libro inserto
Código:
Workbooks("obtener datos.xlsm").Activate

Macro completa
Código:
Sub tranportar()
Dim i As Long
Dim fila As Long
Application.ScreenUpdating = False
'abrimos el libro que contiene los datos a transportar
'ThisWorkbook.Path es la ruta donde esta guardado el libro que ejecuta la macro
'por lo tanto transportar a nueva hoja tiene que estar en la misma ubicacion que este archivo
Workbooks.Open ThisWorkbook.Path & "\transportar a nueva hoja.xlsm"
'activamos el libro abierto, para que todas las lineas de codigo los ejecute en el libro con los datos y no en este
Workbooks("transportar a nueva hoja.xlsm").Activate
'copio los encabezados a usar
Hoja1.Range("a1:f1").Copy
'activo la hoja que lo concentra y pego los encabezados
'regresamos a nuestro libro para que peguemos los valores y las lineas de codigo se ejecuten en el libro
Workbooks("obtener datos.xlsm").Activate
'nombre de la pestaña dentro de nuestro libro que obtendra los datos "obtener datos.xlsm"
Sheets("Concentrado Anual").Activate
ActiveSheet.Range("A1").Select
ActiveSheet.Paste
'esto le quita la propiedad de seguir pegando los datos copiados
Application.CutCopyMode = False

' bucle que pasara por las doce hojas
    For i = 1 To 12
'Seleccionamos la hoja donde se obtienen los datos
Workbooks("transportar a nueva hoja.xlsm").Activate
    
    'como i pasara de 1 en 1 hasta doce, cada vuelta de i representara el numer de hoja
    Sheets(i).Activate
    'determino la ultima celda ocupada de la hoja en la que se encuentra
    fila = ActiveSheet.Range("A" & ActiveSheet.Rows.Count).End(xlUp).Row
    'si la ultiam celda con datos es la que se encuntra en la fila 1 "encabezados" pues no tiene datos que copiar
    'y pasara hasta despues de End if
        If fila <> 1 Then
    ' si hay datos que copiar se selecciona esos datos y se pegan en el concentrado
        ActiveSheet.Range("A2:F" & fila).Copy
    'para pegar los datos en nuestro libro Obtener datos tenemos que decirle a excel que es el libro activo
        Workbooks("obtener datos.xlsm").Activate
    'ya con "obtener datos.xlsm" como libro activo, procedemos a elegir la pestaña y pegar los datos
        Sheets("Concentrado Anual").Select
        Range("A" & ActiveSheet.Rows.Count).End(xlUp).Offset(1, 0).Select
        Selection.PasteSpecial Paste:=xlPasteValues
        Application.CutCopyMode = False
        End If
    'pasamos a la sig hoja, cuando termine la 12 vuelta se saltara el Next i para finalmente terminar el codigo
    'regresamos al principio del bucle (abajo de For i = 1 to 12
    Next i
'como ya no usaremos el libro con los datos que abrimos, procedemos a cerrarlo
Workbooks("transportar a nueva hoja.xlsm").Close
End Sub

archivo para descargar:
avatar
moises melgar
Jr_Moderator

Masculino Cantidad de envíos : 547
Edad : 28
Ciudad - Pais : Coatzacoalcos - Mexico
Version de Excel : 2007 - 2010
Fecha de inscripción : 25/05/2010

Volver arriba Ir abajo

Re: Juntar datos de varias hojas

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


 
Permisos de este foro:
No puedes responder a temas en este foro.