Macro que copie y cierre archivos

Hola:
Espero me puedas ayudar con esta macro, soy super principiante, miren mi duda es esta:
Este código llama el nombre del archivo y lo pega en la hoja que deseo y en la celda también que quiero, pero quiero saber como puedo copiar una columna de información a la misma vez que jalo el nombre de el archivo, ejemplo jalo el nombre del archivo a1, pero la columna B hay info. Que necesito, Como puedo copiar esa info. ¿Y qué se vaya al mismo tiempo con el nombre del archivo y que regrese a ese mismo archivo lo cierre sin guardar cambios?, en este caso serian de 1 a 50 workbooks, e intentado varias opciones pero no doy para más jno me funcionan, espero Tu pronta respuesta muchas gracias.
Sub insertanombredearchivo()
    Dim s, i As Integer
    For i = 2 To Workbooks.Count ' cuenta el numero de libros abiertos, el numero 1 corresponde al primer libro es decir al keydata
        Dim nombre As String
        nombre = Mid(Workbooks(i).Name, 1, Len(Workbooks(i).Name) - 4)
        Workbooks(1).Activate
        Cells(1, i + 1) = nombre
        Next
End Sub
Respuesta
1
¿Cuándo jalas te refieres a cuando arrastras la celda con el ratón?
Hola Experto:
Con el ratón no, me refiero cuando, la macro copia y pega en el archivo destino, de los nombres de ejemplos "a1, a2, a3... N"(que esta macro ya lo hace) lo que quiero es que tanto seleccione, copie y pegue, los nombre a1, a2.N y las columna B2:B1746, de cada uno de los archivos que halla abierto, de una sola vez, ya que la macro solo hace solo lo de los nombres de los archivos, ¿Qué código ayudaría mucho para que haga esto que te pido?, he intentado muchas formas pero todas me salen mal y no he logrado solucionarlo :S, espero me puedas ayudar y te lo agradezco mucho de antemano.
No termino de entenderte pero lo más fácil si estas copiando varias filas celdas es que uses 'selecto'
Por ejemplo:
Range("A1:B1746").Select   ' Esto te coge todas esas celdas
Selection. Copy ' Las copia
Dim cont
for cont=2 to 50 ' Para recorrer los 50 hojas
Sheets(cont).Select    'Indicamos la hoja en la que queremos copiar 
Range("A1").Select  ' La celda para pegar
ActiveSheet.Paste  ' Y pegamos
next cont 
Con eso deberia funcinoar.
Gracias experto:
Mira trate de unir el código que me mandaste y No me funciono, a ver si ya unido comprendes mejor mi idea, espero que si, de antemano muchas gracias por tu ayuda.
Sub insertanombredearchivo()
        Dim s, i,  As Integer
        For i = 2 To Workbooks.Count ' cuenta el numero de libros abiertos, el numero 1 corresponde al primer libro es decir al keydata
            Dim nombre As String
            nombre = Mid(Workbooks(i).Name, 1, Len(Workbooks(i).Name) - 4) ('obtiene el nombre de los archivos que esten abiertos)
            Workbooks(1).Activate (Pega los nombres obtenidos en el archivo principal "KeyData", en este caso)
            Cells(1, i + 1) = nombre (Los nombres se van quedando en la casilla que esta seleccionada en esta parte del código)
            Range("B1:B1746").Select   ' Esto te coge todas esas celdas *Nota.
            Selection.Copy  ' Las copia
            Dim cont
            For cont = 2 To 50 ' Para recorrer los 50 hojas
            Sheets(i).Select    'Indicamos la hoja en la que queremos copiar
            ActiveCell.Select  ' La celda para pegar
            ActiveSheet.Paste  ' Y pegamos
            Workbooks(i).Close
            Next cont
       Next
       End Sub
*Nota: Se necesita que cuando obtenga los nombres tambien se lleve las columna en este caso la B2:B1746 al mismo tiempo, y despues los cierre sin guardar cambios.
a    a2    a3  a4............aN
1 1 1 1... 1
2 2 2 2... 2
3 3 3 3... 3
El acctivecell.select no te va a funcionar 
Usar activesheet. Range("B1"). select para que te pegue las cosas hay.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas