Saltar al contenido

Macro de Excel que abre libros, extrae información y crea archivo Csv

En un foro me preguntan como se hace una Macro de Excel para extraer datos de varios archivos, en el caso planteado eran al  rededor de 50 archivos de los que se deseaba sacar información, lo cual realizarlo a mano demandaría muchísimo tiempo y esfuerzo; en el ejemplo que se presenta se ha reducido el número de archivos a 12, pero no inválida en nada la macro ya que se puede usar para uno, cien o los archivos necesarios de los cuales extraer información.

Antes de seguir recomiendo leer un excelente libro sobre Excel que te ayudará operar las planillas u hojas de cálculo, haz click acá, si quieres aprender sobre Excel, en inglés, entonces debes hacer click here. Si lo que necesitas es aprender o profundizar sobre la programación de macros con VBA este es unos de los mejores cursos on line que he visto en internet.

  



Primero se establece cual es el nombre del archivo actual, variable que se usa luego en la macro; una vez determinado y asignado a una variable el  nombre del archivo actual; se procede a realizar un bucle con los comandos For…..Next i; el cual tiene como objeto abrir todos los archivos que se le asignan a la macro, en este caso son 12 los archivos, pero pueden 1, 100 o más; luego mediante cadenas de texto  se forma el path del archivo, es decir donde se va guardar el archivo Csv generado; por último se adiciona una hoja nueva, estableciéndose el nombre de la hoja, se guarda y cierra el libro; para poder ver el funcionamiento de ejemplo aquí presentado, se debe descargar el archivo rar; descomprimirlo en alguna carpeta y luego copiar la dirección donde se guardaron los archivos, en la macro; se debe cambiar la dirección que figura, por la dirección de la carpeta donde quedaron los archivos descargados.

La macro realizada, tiene una estrecha relación con esta otra que  copia los datos, luego abre el libro necesario, pega los datos para luego cerrar el libro, también está vinculada a la macro publicada ya hace un tiempo, la cual crea carpetas utilizando variables  y guarda los archivos en pdf cuyos nombres se han formado mediante cadenas de texto que se asignan a variables.

El post guarda excel automáticamente cada minuto, se incorpora un ejemplo de VBA que tiene cierta relación y se complementa con el actual, ya que se crea un procedimiento de VBA bastante interesante, guardando automáticamente el libro cada minuto para evitar pérdida de información, lo cual hace una macro muy útil.

Una explicación más detallada y gráfica de la macro presentada se muestra en el vídeo que se muestra seguidamente, recomiendo observar para una más fácil comprensión de la macro; suscribe a nuestra web desde la parte superior derecha de la página ingresando tu mail y a nuestro canal de You Tube para recibir en tu correo vídeos explicativos sobre macros interesantes, como por ejemplo Como cerrar libro dependiendo de fecha de caducidadbuscar en listbox mientras escribes en textboxComo conectar Excel con Word crear archivo e insertar textoComo crear un autonumerico en Excel y muchos ejemplos más.


Código que se inserta en un formulario, haz click para descargar el archivo de ejemplo.

 
Private Sub openfile()
On Error Resume Next
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim na, cp, nomlib As String
Dim hojaactual As Object
‘Establece nombe del archivo
nomlib = ActiveWorkbook.Name

For i = 1 To 12
p = «C:UsersMyNotebookDocumentsMis eBooksMIS MACROSPublicadas»
If i < 10 Then
na = «Vest#0» & i & «.xlsx»
Else
na = «Vest#» & i & «.xlsx»
End If
cp = p & «» & na

Application.Workbooks.Open cp
‘Copia datos
Range(«b3:b22»).Select
Selection.Copy
Workbooks(nomlib).Activate
Range(«XDF3»).End(xlToLeft).Activate
ActiveCell.Offset(0, 1).Activate
Selection.PasteSpecial Paste:=xlValues
Workbooks(na).Close False
Next i
‘Guarda y Cierra Libro Csv
Cells.Select
Selection.Copy
Workbooks.Add
Cells.Select
ActiveSheet.Paste
nomcsv = «VtasTotales.csv»
pcsv = p & «» & nomcsv
ActiveWorkbook.SaveAs Filename:=pcsv, FileFormat:=xlCSV, CreateBackup:=False
ActiveWorkbook.Close
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub

Si te fue de utilidad puedes INVITARME UN CAFÉ y de esta manera ayudar a seguir manteniendo la página, CLICK para descargar en ejemplo en forma gratuita.

If this post was helpful INVITE ME A COFFEE and so help keep up the page, CLICK to download free example.

Si te gustó por favor compártelo con tus amigos
If you liked please share it with your friends