Macro para copiar y pegar celdas de otro archivo
Fíjate que tengo una duda, estoy creando una macro para poder copiar y pegar ciertos registros de un archivo, el punto es, que tengo que cargar diferentes archivos diario y estoy teniendo complicaciones para definir eso, ya que la macro me graba el nombre del archivo, y yo día con día cargare diferentes archivos, que tienen el contenido similar, pero el nombre del archivo también es diferente.
Te explico, tengo un libro en excel, en el cual quiero pegar la información seleccionada del archivo. Pero quiero una macro que me permita seleccionar el archivo y ya una vez seleccionado el archivo copie ciertas columnas y registros y los pegue en mi libro actual.
Yo tengo la idea en cuestión de con un opendialog pues abrir el archivo, hasta ahí siento que voy bien, el punto es que pueda copiar registros de ese archivo que se abrió.
Mira te dejo un código y te explico donde esta mi problema:
'dlgAnswer = Application.Dialogs(xlDialogOpen).Show
Dim lngCount As Long
'Open the file dialog
With Application.FileDialog(msoFileDialogOpen)
.AllowMultiSelect = True
.Show
' Display paths of each file selected
For lngCount = 1 To .SelectedItems.Count
Workbooks.Open Filename:=.SelectedItems(lngCount)
'MsgBox .SelectedItems(lngCount)
' Next lngCount
' End With
Windows("prueba nadin.xls").Activate
'Workbooks.Open Filename:= _ ''''''''''' AQUI TENGO EL PROBLEMA
"U:DC AUTOMOTRIZ\Cash DFSM\CASHDC082009.xls"
ActiveWindow.SmallScroll Down:=-36
Range("B20:F27").Select
Selection.Copy
Windows("prueba nadin.xls").Activate
Range("B7").Select
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
El punto es que no se como definir o hacer que cambie esa ruta del archivo para que copie los datos respecto al nombre de hoja del archivo de abrí. Como podrás ver, puse el open dialog, pero no se como hacer que funcione el copiar y pegar con diferentes nombres de archivos.
Espero haberme dado a entender, sintetizo, es una macro que me permita abrir un archivo, una vez abierto ese archivo, que copie ciertos registros (ahí no tengo problema con el código) y los pegue en un libro nuevo. El archivo cada día es diferente y es ahí donde no he podido hacer que funcione el código en base a proceso.
Te explico, tengo un libro en excel, en el cual quiero pegar la información seleccionada del archivo. Pero quiero una macro que me permita seleccionar el archivo y ya una vez seleccionado el archivo copie ciertas columnas y registros y los pegue en mi libro actual.
Yo tengo la idea en cuestión de con un opendialog pues abrir el archivo, hasta ahí siento que voy bien, el punto es que pueda copiar registros de ese archivo que se abrió.
Mira te dejo un código y te explico donde esta mi problema:
'dlgAnswer = Application.Dialogs(xlDialogOpen).Show
Dim lngCount As Long
'Open the file dialog
With Application.FileDialog(msoFileDialogOpen)
.AllowMultiSelect = True
.Show
' Display paths of each file selected
For lngCount = 1 To .SelectedItems.Count
Workbooks.Open Filename:=.SelectedItems(lngCount)
'MsgBox .SelectedItems(lngCount)
' Next lngCount
' End With
Windows("prueba nadin.xls").Activate
'Workbooks.Open Filename:= _ ''''''''''' AQUI TENGO EL PROBLEMA
"U:DC AUTOMOTRIZ\Cash DFSM\CASHDC082009.xls"
ActiveWindow.SmallScroll Down:=-36
Range("B20:F27").Select
Selection.Copy
Windows("prueba nadin.xls").Activate
Range("B7").Select
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
El punto es que no se como definir o hacer que cambie esa ruta del archivo para que copie los datos respecto al nombre de hoja del archivo de abrí. Como podrás ver, puse el open dialog, pero no se como hacer que funcione el copiar y pegar con diferentes nombres de archivos.
Espero haberme dado a entender, sintetizo, es una macro que me permita abrir un archivo, una vez abierto ese archivo, que copie ciertos registros (ahí no tengo problema con el código) y los pegue en un libro nuevo. El archivo cada día es diferente y es ahí donde no he podido hacer que funcione el código en base a proceso.
1 respuesta
Respuesta de paramisolo
1