Copiar y Actualizar información entre dos archivos de Excel, dependiendo del encabezado.

Cada lunes se descarga un documento nativo de Excel, que va actualizando su información consecutivamente. Este documento se llama "PICOM_Extraction_18.Jan.2023(fechadedescarga)".xlsx. Y todos se van guardado en una carpeta especifica con la fecha en que fueron extraídos. El PICOM tiene información desde la columna A, hasta la columna AQ, en la fila 1 tiene encabezados, la información comienza a partir de la fila 2 y actualmente va en la fila 4350.

Se tiene otro archivo "maestro" llamado DRP.xlsx, este archivo es el concentrado actualizado de la información de todos los archivos PICOM que se van generado. Cuenta con los mismos nombres de encabezado que el PICOM, igual en la fila 1, pero no en el mismo orden de columnas, (ejemplos coloreados en amarillo), entre otras más columnas con diferente información.

El detalle es que en su mayoría la información se copia de un archivo a otro con formulas de VLOOKUP y de forma manual. Lo que se busca es generar una marco que nos ayude a poder seleccionar el archivo PICOM requerido y copiar la información de PICOM a DPR con toda la información de su misma fila en las columnas correspondientes y vaya actualizando su información de acuerdo a lo consultado en el PICOM. Los encabezados que no encuentre, no copiara información y dejara vacía esa celda, pues sera llenada después de acuerdo a la información capturada y asi con el resto de las filas.

Puedo compartir los archivos, sin problema en caso de requerirlos y les agradezco mucho de antemano.

1 respuesta

Respuesta
1

Revisa el siguiente vídeo, ahí explico cómo copiar datos de un libro a otro con las columnas en otro orden.

Curso de macros. Copia datos de un libro a otro. vba dictionary y matrices. - YouTube

Sal u dos Dante Amor

Hola dante, 

Te agradezco mucho tu pronta respuesta y me gusto la macro de matriz que me compartiste en tu video ( un suscriptor mas, definitivo), solo que tengo un par de dudas, utilizando tu ejemplo: 

1.- Supongamos que la columna Tit1, es el pivote para la información de las columnas Tit2 a Tit10, en este caso, la información de la celdas B5 a J5, se relacionan con la celda A5 ( el pivote ) y siempre deben de ir en la fila donde se encuentre este pivote. En la macro que compartiste la información se copia de manera independiente y en vertical, ¿Cómo la pudiéramos ir copiando de forma horizontal y relacionada con cada uno de sus pivotes ?

2.- La macro termina cuando ya no encuentra información en la celda siguiente, ¿Qué sucede cuando se encuentran espacios en blanco por falta de información en el reporte nativo, pero continua la información en las demás columnas hasta terminar con Tit10? ¿Cómo se pudiera seguir copiando la información?

Por ejemplo:

Izquierda de forma ordenada en el formato nativo y Derecha en el formato requerido con la información correspondiente, de acuerdo al pivote en Tit1. 

En mi documento DPR, la columna G es mi pivote y manda llamar la información en las columnas amarillas, de acuerdo a las columnas amarillo claro del archivo nativo PICOM. 

Te agradezco de antemano. 

Dante, 

Te comento que modifique un poco la macro que compartiste y ya me funciona como lo necesito. 

Te agradezco muchisimo tu tiempo y esfuerzo, estaré al pendiente de tu canal, para futuras referencias. 

Solo una consulta extra...en lugar de modificar el nombre de la hoja en el "Libro2", dentro del código, cada que se descarga un nuevo archivo actualizado y en un libro a parte, ¿Cómo pudiera modificar la macro, para abrir un explorador y seleccionar el archivo descargado, para copiar la información en el mismo libro 1 y desde ahí correr la macro? De esa manera no tendria que abrir 2 Libros y cambiarle el nombre a la hoja. Seria desde el mismo Libro las dos hojas. 

Te agradezco de antemano. 

Prueba con los siguiente:

Sub testabrirarchivo()
  Dim archivo As String
  With Application.FileDialog(msoFileDialogFilePicker)
      .Title = "Seleccione archivo"
      .Filters.Add "*.xls", "*.xls*"
      .AllowMultiSelect = False
      .InitialFileName = ThisWorkbook.Path
      If .Show Then
          archivo = .SelectedItems.Item(1)
      End If
  End With
End Sub

RECOMENDACIONES:

Curso de macros. Consejos para empezar a programar. - YouTube

Curso de excel. Consejos y trucos de excel para mejorar la presentación de tus datos. - YouTube

Sal u dos Dan Amor

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas