Saltar al contenido

Macro - Copiar varias columnas a otro libro


Recommended Posts

publicado

Buenas tardes,

Tengo un libro con una serie de datos, nombre, compañía, teléfono, email (libro1.xlsx). Las columnas son fijas, 17 en total, pero las filas siempre varían, pueden ser 100 o 1.000

Tengo otro libro que es una plantilla en la que se debe pegar los datos del libro1.xlsx(libro2.xlsx). Las columnas del libro2.xlsx son fijas pero no son las mismas que las del libro1.xlsx

¿Qué necesito?

Pegar cada columna del libro1 en su columna par del libro2 con una macro.

Por ejemplo,

En la columna A del libro1 tengo First Name y en el libro2 en la columna N tengo First_Name, así que debo pegar A de libro1 en N de libro2. Y así sucesivamente con cada columna.

Espero haber sido clara y que alguien me pueda prestar su valiosa ayuda.

Saludos,

Janneth

jannethps_270113.zip

publicado

Buenas, Janneth

El principal problema que se te presenta es asegurar que el nombre de las columnas en ambos archivos es el mismo, porque he visto que por ejemplo en uno aparece Company Name y en el otro aparece Company_Name........que no es el mismo dato.....

Otra opción, más engorrosa, sería asociar una a una las columnas del 1 al 2, por ejemplo, mediante un listado que dijera: la Columna A del 1 va a la Columna D del 2, y así sucesivamente hasta tener todas las columnas......

Un saludo,

Tese

publicado

Muchas gracias por tu respuesta Tese,

La segunda opción me funciona perfectamente, con la limitante de tener que hacerlo todo manual.

Espero más adelante poder encontrar otra solución pero por lo pronto esta hace lo que necesito.

Gracias por tu tiempo e interes.

Janneth

publicado

Buenas, Janneth

Pero no quieres hacerlo con código? yo te sugería la segunda opción pero para que pudiéramos montar algo automático, solo necesitaría que tú construyeses un pequeño cuadrito con la información de en qué columna del 2 va la información de cada columna del 1.........y lo importante es saber si ese archivo 2 podría tener ya información previa o siempre estaría vacío.....ya que a la hora de montarlo no es lo mismo....

Lo que necesitas es muy sencillo en cuanto a código (en el fondo es pasar información de un sitio a otro, nada más), pero dónde debe ir la información solo lo sabes tú......de ahí que te pida esa información....

En fin, tú decides....

Un saludo,

Tese

publicado

Hola,

Sorry que no me hice entender, ya hice una macro con tu segunda opción, puse la conexión manualmente entre cada columna del libro1 con su correspondiente en el libro2.

Esperaba que lo pudiera hacer de una manera más "automática" y no uno a uno. A eso me refería con manual :)

Después de abrir los libros:

'First Name

Windows(libro1).Activate

Range("A2:A1000").Select

Selection.Copy

Windows("libro2.xls").Activate

Sheets("hoja1").Select

ActiveWindow.SmallScroll ToRight:=7

Range("N2").Select

ActiveSheet.Paste

Y así por cada columna... Funciona sin problemas.

Y después de esto creo otro libro con el resultado y ya, el libro2 siempre va a iniciar vacío.

Lo único que no sé cómo hacer, es obtener el rango del libro1... no sé cuántas filas va a tener, así que mientras tanto puse mil. Son archivos variables, cada semana llega uno nuevo.

En muchos casos algunas celdas van a estar vacías, entonces no puedo limitar a que encuentre la primera celda vacía en alguna columna.

Agradezco tus ideas en esta parte...

Saludos,

Janneth

publicado

Buenas, Janneth.......

Siento que hayas tenido que hacer todo eso a mano........En el fondo era mucho más sencillo a través de un bucle....por lo que si quieres modificarlo se puede intentar algo, aunque necesitaría la información que te comenté.....

En vez de encontrar la primera celda vacía, puedes intentar a encontrar la última celda con datos de la columna.....que es diferente y te funcionaría perfecto......o eso creo......jejejeje.....

Y sabiendo que está vacío el archivo 2 (desde la fila 2, imagino....las cabeceras deben estar) es más sencillo al poder copiar y pegar de una vez........

Un saludo,

Tese

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

  • 109 ¿Te parecen útiles los tips de las funciones? (ver tema completo)

    1. 1. ¿Te parecen útiles los tips de las funciones?


      • No
      • Ni me he fijado en ellos

  • Current Donation Goals

    • Raised 0.00 EUR of 130.00 EUR target
  • Archivos

  • Estadísticas de descargas

    • Archivos
      188
    • Comentarios
      98
    • Revisiones
      29

    Más información sobre "Cambios en el Control Horario"
    Última descarga
    Por pegones1

    5    1

  • Crear macros Excel

  • Mensajes

    • Hola, El texto citado no lo termine de entender, la celda adyacente a Z27 se relaciona con la fila A28 de la hoja VTL1 y el resultado 35 de su ejemplo, se obtiene de la fila 8, así que para hacer algo sin complicaciones use la columna BM para devolver ese valor. Aprovechando los parámetros de discriminación que uso usted para pintar las celdas de la fila, podría usar esos mismos en una fila auxiliar y así obtener un valor que podría usar como criterio en alguna función, sin tener que meterse al terreno de los colores del condicional, porque no son los mismos que los de la paleta de colores en cuestiones de código. ¿Entonces una solución con macros no es de su interés? Si cambia de opinión podría colocar el tema en esa sección, querer formular con los colores del formato condicional tiene sus características específicas, sin mencionar que se actualice "sola". Aunque bueno, todavía es posible que algún maestro o usuario avanzado le pase una solución con alguna función personalizada al ver que usted tiene 365. Si le interesa una idea sencilla podría usar un rango en la fila 5: =SI.ERROR(COINCIDIR(K7,CALCULOS!$B$4:$B$35,0),SI(O(DIASEM(K7)=7,DIASEM(K7)=1),1,0)) Eso le daría la opción de usar: =SUMAR.SI($K$5:$AY$5,">=1",K8:AY8) Saludines
    • Estimados amigos espero estén bien   Tengo este archivo que me ayuda a llevar las horas trabajadas al que necesito añadir en la Hoja5 (HHE) una fórmula que me cuente las Horas trabajadas en Días de Descanso (fines de semana y feriados), actualmente mediante una Regla de Formato Condicional se resaltan en amarillo el Dia de Semana y la Fecha de los Días de Descanso sin embargo el inconveniente se me presenta con los días feriados que cambian de posición de acuerdo a la fecha y cuando el mes comienza en día domingo por lo cual necesito una fórmula que me permita sumar los Días de Descanso cuando la Fecha que le corresponda este resaltada en Amarillo la sintaxis sería más o menos esta para la primera semana del mes de Enero de 2025: =SI('VTL1'!$I$7=AMARILLO;'VTL1'!$I8;0) + SI('VTL1'!$J$7=AMARILLO;'VTL1'!$J8;0) + SI('VTL1'!$K$7=AMARILLO;'VTL1'!$K8;0) + SI('VTL1'!$L$7=AMARILLO;'VTL1'!$L8;0) + SI('VTL1'!$M$7=AMARILLO;'VTL1'!$M8;0) + SI('VTL1'!$N$7=AMARILLO;'VTL1'!$N8;0) + SI('VTL1'!$O$7=AMARILLO;'VTL1'!$O8;0) Y así sucesivamente para el resto de las semanas, con los datos actuales el resultado esperado para la primera semana (I8:O8) sería 9 horas mientras que para el mes (Fila8) el resultado esperado seria 35 horas estos resultados deben reflejarse en la Celda “$Z7” de la Hoja5 (HHE) de modo tal que una vez haya completado la totalidad de la fórmula para el resto de las semanas del mes la pueda correr de Z27 hasta Z42 VTL - HHE_101128.xlsx
    • Hola, veo que tienes 365, así que esta forma funcionará   Almacen.xlsx
    • Buenos días  @LeandroA espero estes bien Tengo un caso idéntico al planteado en la siguiente pregunta: Sin embargo, a diferencia de quien planteo originalmente la pregunta al correr el código no obtengo ningún resultado podrían ayudarme a resolver este inconveniente y que al hacer click en el Botón Guardar (CommandButton3) del Formulario RCS (frmrcs) el archivo pdf quede configurado con orientación vertical, márgenes superior, inferior, derecho e izquierdo = 1 y en página tamaño carta. Si acaso influye uso Microsoft Excel LTSC MSO (versión 2209 Compilación16.0.1.15629.20200) de 64 bits Mucho le sabre agradecer la ayuda que me pueda dar  RCS PRUEBA - copia.xlsm
  • Visualizado recientemente

    • No hay usuarios registrado para ver esta página.
×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.