Macro para abrir un libro GetOpenFilename copiar datos de un rango de celdas y cerrar el libro.

Estoy intentando hacer una macro en un botón con una condición de GetOpenFilename para poder abrir un libro y hacer una copia de una hoja de este libro al libro de donde ejecute la condición en mención y que luego se cierre el libro abierto, intente hacer una macro algo referencial para que no copie exactamente el libro sino un rango de celdas dados, la cual va mas o menos asi.
Sub Botón1_Haga_clic_en()
Dim Lib1, Lib2 As Workbook
Dim STR1 As String
STR1 = Application.GetOpenFilename("Libro de Excel, *.xlsx*", , "Informe")
If STR1 = CStr(False) Then Exit Sub
Set Lib1 = ThisWorkbook
Set Lib2 = Workbooks.Open(STR1)
Lib2. Sheets("Consolidado"). Range("A1:A200"). Copy
Lib1. Activate
Lib1.Sheets("DATA_CONSOLIDADO"). Range("A1"). Activate 'AQUÍ ES DONDE SE PRODUCE EL ERROR
ActiveSheet. Paste
Lib2. Close
Set Lib1 = Nothing
Set Lib2 = Nothing
End Sub
La idea seria o bien poder copiar el rango de celdas en la hoja ya creada "DATA_CONSOLIDADO" o copiar toda la hoja en el libro desde donde se ejecuto la macro.
Mencionar que esta es un macro que encontré por algunos foros, ya que no soy ni un principiante de la programación, solo recuerdo como leer los procesos ya que alguna vez estudie algo de programación, este foro me ha ayudado muchísimo, esta es la primera vez que me posteo algo, espero contar con su apoyo, saludos. Contar con su apoyo.

1 respuesta

Respuesta
1

En mi página existen muchos ejemplos que pongo a tu disposición sobre como trabajar con GetOpenFilename abrir archivos copiar y cerrarlos, te paso la dirección

http://programarexcel.com/

http://www.programarexcel.com/2014/01/macro-abre-explorador-de-archivos-de.html

http://www.programarexcel.com/2013/09/macro-de-excel-abre-libro-copia-datos-y.html

Amigo trata de adaptar lo que necesitas y me comentas en que más puedo ser útil.

Estimado, estuve revisando tu pagina y no he encontrado alguna con el procedimiento en especifico al que busco, hay unos cuantos ejemplos que efectivamente copian datos de rangos específicos, pero no de alguno q habrá con GetOpenFilename, tal vez yo me estoy limitando en buscar mas pero no se si podría ser que me pases un link con el procedimiento exacto que busco, ya que como comento no soy un experto en .vba por lo cual tener dos temas referenciales a lo que busco me cuesta concatenarlos y adaptarlo al mio, gracias.

Sube tu archivo desde http://programarexcel.com/p/contacto.html y pon detamme eN el mismo excel de lo que requiEres te adapto una macro y te lo deVuelvo.

Lo acabo de subir, espero tenga claridad, de tener cualquier otra duda, me escribe al correo con el que subí el .rar, mi correo es Fra*****_a_*@hot...

Disculpa la demora acá tienes la codificación que necesitas, igualmente te mando al mail el archivo con la macro lista.

Sub openbook()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
On Error Resume Next
Dim myfile, mybook, a, b, c As String
On Error Resume Next
myfile = Application.GetOpenFilename("Archivos Excel (*.xl*), *.xl*")
mybook = ActiveWorkbook.Name
b = "Consolidado"
c = "DATA_CONSOLIDADO"
Sheets(c).Cells.Clear
Workbooks.Open Filename:=myfile, UpdateLinks:=0
FullName = Split(myfile, Application.PathSeparator)
a = FullName(UBound(FullName))
Sheets(b).Cells.Copy Destination:=Workbooks(mybook).Sheets(c).Cells(1, 1)
Application.CutCopyMode = False
Workbooks(a).Close False
MsgBox ("Los datos se copiaron con éxito con éxito"), vbInformation, "AVISO"
Application.ScreenUpdating = True

Muchas gracias, me hubiese gustado tener una explicación con comentarios de que hace cada linea, igual de todas formas suple mi necesidad, se agradece estupendo el foro, sera de mucha ayuda para próximas dudas de seguro y nuevamente gracias.

Saludos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas