Copiar Ciertas columnas de un libro a otro?

Hola quisiera saber como copiar ciertas columnas de un libro a otro que cumplan la siguiente condición:
1. Tengo dos libros:
En el Libro1 tengo 50 columnas en la hoja0
En el Libro2 solo tengo una hoja0 vacía
2. Solo quiero copiar las columnas del Libro1 que en su cabecera contengan un arroba: Ejm: @TGS, @OSP, Etc.
3. Y las quiero Pegar a partir de la columna B de la hoja0 del libro2.

4. Después lo que deseo ya una vez copiado esas columnas es realizar una búsqueda de frases por cada fila y ponerles una categoría que tengo establecida en otra hoja . Les dejo un ejemplo en el siguiente vinculo:

https://onedrive.live.com/redir?resid=FE2981AAD59925FA%219536 

Gracias de Antemano.

1 respuesta

Respuesta
1

Te anexo la macro:

Sub CopiarColumnas()
'Por.Dante Amor
    Set l1 = ThisWorkbook
    Set h1 = l1.Sheets("Hoja1")
    Set l2 = Workbooks("Libro2")
    Set h2 = l2.Sheets("CATEGORIAS")
    j = 2
    For i = 1 To h2.Cells(1, Columns.Count).End(xlToLeft).Column
        If InStr(1, h2.Cells(1, i), "@") > 0 Then
            h2.Columns(i).Copy h1.Cells(1, j)
            j = j + 1
        End If
    Next
End Sub

Sigue las siguientes indecaciones:

1. Pon la macro en el libro 1

2. Tienes que tener tus 2 libros abiertos

3. Ejecuta la macro desde el libro1

4. Cambia en la macro "Hoja1" por el nombre de tu hoja del libro1

5. Cambia "libro2" por el nombre de tu libro2

6. Cambia "CATEGORIAS" por el nombre de tu hoja del libro2


Tengo los dos libros abiertos pero el código se queda en:

Set l2 = Workbooks("sepIndividuos")

En esa línea tienes que poner el nombre del libro2, tienes que poner el nombre exactamente como se llama el libro2, no es necesario poner la extensión, pero si el libro tiene espacios o guiones deberás ponerlos.

Hola logre adaptar tu código a lo que yo tengo.

Set l1 = ThisWorkbook
  Set h1 = l1.Sheets("DEPURAR")

'Yo ya había capturado el archivo así que no mas lo active.
  Windows(aIndividuos).Activate
  Set h2 = Sheets("BINDIVIDUOS")
  j = 2
  For i = 1 To h2.Cells(1, Columns.Count).End(xlToLeft).Column
      If InStr(1, h2.Cells(1, i), "@") > 0 Then
          h2.Columns(i).Copy h1.Cells(1, j)
          j = j + 1
      End If
  Next

Funciono Perfecto.

Tu crees que puedas darme una mano en tratar de generar las categorías por cada fila.

Es decir que busque ciertos comentarios por cada celda de cada fila para que finalmente quede las categorías así en la primera columna: Precio, Locales, atención.

Obviamente si la categoría es repetida se debe ignorar y buscar el siguiente.

Gracias de Antemano, me has ayudado mucho.

Con gusto te sigo ayudando, crea una nueva pregunta por cada petición. En la nueva pregunta describes con ejemplos lo que necesitas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas