Macro listar archivos de carpetas | RaduNordenhulk

แชร์
ฝัง
  • เผยแพร่เมื่อ 18 ธ.ค. 2024

ความคิดเห็น • 56

  • @tortugahispana
    @tortugahispana ปีที่แล้ว

    excelente me sirvió ! No sabía como seleccionar la carpeta.

  • @daanhear
    @daanhear 7 ปีที่แล้ว +1

    Hola, y si solo necesito los nombres de los subdirectorios que contienen la carpeta que se selecciona como se haría? :)

  • @josefelguera1039
    @josefelguera1039 4 ปีที่แล้ว

    Hola, ¿se podria hacer para que buscarta tambien los archivos contenidos dentro de las subcarpetas? Creo que ya lo han preguntado, pero no veo la respuesta

  • @GeorgeBrow678
    @GeorgeBrow678 3 ปีที่แล้ว

    Excelente video. Saludos desde Colombia

    • @RaduNordenhulk
      @RaduNordenhulk  3 ปีที่แล้ว

      Usted puede unirse a mi canal, tengo una excelente propuesta
      para mejorar sus habilidades:
      th-cam.com/channels/wnx_b0C6UGB0vnKOLMfGeA.htmljoin

  • @oswaldoserrano8500
    @oswaldoserrano8500 8 ปีที่แล้ว +1

    Excelente video, muchas gracias por el aporte. Crees que se pueda sacar caracteristicas de los archivos como fecha modificación, tamaño, etc?

    • @RaduNordenhulk
      @RaduNordenhulk  8 ปีที่แล้ว +1

      Hola, muchas gracias por tu comentario. Para obtener el tamaño del archivo y la fecha de modificación solo agrega el siguiente código:
      Range("b" & r).Value = FileLen(a)
      Range("c" & r).Value = FileDateTime(a)
      Esto lo escribes justo debajo del código que obtiene el nombre del archivo minuto 05:22
      Saludos y seguimos en contacto.

  • @aranmariga
    @aranmariga 4 ปีที่แล้ว

    Excelente Macro. Me podía indicar la instrucción a añadir para que las subcarpetas aparecieran con sus archivos correspondientes. Gracias.

    • @RaduNordenhulk
      @RaduNordenhulk  3 ปีที่แล้ว

      Usted puede unirse a mi canal, tengo una excelente propuesta
      para mejorar sus habilidades:
      th-cam.com/channels/wnx_b0C6UGB0vnKOLMfGeA.htmljoin

  • @IMAGG0
    @IMAGG0 5 ปีที่แล้ว +1

    Gracias amigo por el aporte. sin embargo e seguido paso a paso lo q tu haces pero simplemente no hace nada. me podrias ayudar con mi posible error. Seria util obtener la lista de los archivos pero sin la ruta o a su la ruta pero tambien el nombre del archivo. Gracias amigo

    • @RaduNordenhulk
      @RaduNordenhulk  5 ปีที่แล้ว +1

      Hola, para obtener la lista de archivos sin la ruta solo escribe
      Range("a" & r).Value = a.Name
      Para obtener solo la ruta seleccionada, según el código se guarda en la variable D
      Range("a" & r).Value = D
      Me puedes indicar el mensaje de error por favor?
      Saludos!

    • @IMAGG0
      @IMAGG0 5 ปีที่แล้ว

      @@RaduNordenhulk gracias amigo.

  • @luismhp1119
    @luismhp1119 5 ปีที่แล้ว +1

    buen día, como le puedo hacer para quitarle seleccionar la carpeta y solo sea una sola

    • @RaduNordenhulk
      @RaduNordenhulk  5 ปีที่แล้ว

      Comente la línea Application.FileDialog(msoFileDialogFolderPicker).Show
      y a la variable D asigne la ruta donde buscará los archivos
      Ejemplo:
      'Application.FileDialog(msoFileDialogFolderPicker).Show

      D = "C:\Test" 'Application.FileDialog(msoFileDialogFolderPicker).SelectedItems(1)

  • @uliseshernandez5247
    @uliseshernandez5247 7 ปีที่แล้ว

    Hola excelente macro gracias, como puedo incluir subcarpetas????

  • @harlesp.7461
    @harlesp.7461 3 ปีที่แล้ว

    Que funcion hace la a ?? dentro del for each ??

    • @RaduNordenhulk
      @RaduNordenhulk  3 ปีที่แล้ว +1

      la variable "a" va tomando cada elemento del arreglo f.files... es decir si f.files tiene 4 archivos, el foreach asignará a la variable "a" el primer elemento de f.files, y después el segundo y así sucesivamente

  • @servicioscontablesjmg8491
    @servicioscontablesjmg8491 6 ปีที่แล้ว

    Buenas noches. Excelente lo de esta macros. Me funciona a la perfección. Ahora bien, junto a esta macros, necesito aplicar la formula BUSCARV dentro de la misma hoja pero buscando datos en otra hoja. Esa otra hoja necesito que esté en uno de los archivos, según los archivos listados con la macros de listar archivos. Por favor y muchas gracias.

    • @RaduNordenhulk
      @RaduNordenhulk  5 ปีที่แล้ว

      Gracias Jhonny, este curso gratuito en Udemy hasta el 31 de Diciembre 2019 le puede ser de utilidad!
      th-cam.com/video/EXBDPg3Xk88/w-d-xo.html&lc=

  • @nilfus
    @nilfus 5 ปีที่แล้ว

    Hola buenas tardes, será que podamos hacer esa macro limitando que solo muestre la ruta de un tipo de archivo es decir que en la carpeta solo me traiga la ruta de los archivos que sean por ejemplo .xml

    • @RaduNordenhulk
      @RaduNordenhulk  3 ปีที่แล้ว

      Usted puede unirse a mi canal, tengo una excelente propuesta
      para mejorar sus habilidades:
      th-cam.com/channels/wnx_b0C6UGB0vnKOLMfGeA.htmljoin

  • @gustavodiazbandres
    @gustavodiazbandres 4 ปีที่แล้ว

    Muchas gracias!!! Lo intenté de diferentes maneras y no lograba. Gracias por compartir la macro, sólo así pude hacerlo fácilmente. Hay alguna manera de sólo copiar el nombre de archivo sin la dirección de ubicación?. Muy agradecido por tu ayuda!

    • @RaduNordenhulk
      @RaduNordenhulk  4 ปีที่แล้ว

      Hola, para obtener la lista de archivos sin la ruta solo escribe
      Range("a" & r).Value = a.Name
      Saldos!!! :)

  • @mariotapia7564
    @mariotapia7564 7 ปีที่แล้ว

    ¿Cuál sería el comando para eliminar la ruta completa del o los archivos, dejándolos son con la extensión?
    Gracias

    • @RaduNordenhulk
      @RaduNordenhulk  7 ปีที่แล้ว +1

      En la línea
      Range("a" & r).Value = D & "\" & a.Name cambiarlo por
      'Con esto verás solo los archivos listados (sin la ruta)
      Range("a" & r).Value = a.Name
      Saludos y gracias por tus comentarios!

  • @SantiagoBarry
    @SantiagoBarry 5 ปีที่แล้ว

    EXCELENTE amigo que bueno!!!

    • @RaduNordenhulk
      @RaduNordenhulk  5 ปีที่แล้ว

      Gracias Santiago, este curso gratuito en Udemy hasta el 31 de Diciembre 2019 le puede ser de utilidad!
      th-cam.com/video/EXBDPg3Xk88/w-d-xo.html&lc=

  • @PaenquebeConsultor
    @PaenquebeConsultor 4 ปีที่แล้ว

    Muy interesante, como se haria para solo pdfs mil gracias 🙏✍️

    • @RaduNordenhulk
      @RaduNordenhulk  3 ปีที่แล้ว

      Usted puede unirse a mi canal, tengo una excelente propuesta
      para mejorar sus habilidades:
      th-cam.com/channels/wnx_b0C6UGB0vnKOLMfGeA.htmljoin

  • @Dadomotion
    @Dadomotion 6 ปีที่แล้ว

    Hola y muchas gracias, es justo lo que necesitaba, aun así me da error si cancelo en el cuadro de selección de directorio, como lo podría corregir, para que mostrara un mensaje como "No se ha seleccionado un directorio" en ver de este error: "Se ha producido error '5' en tiempo de ejecución..."

    • @RaduNordenhulk
      @RaduNordenhulk  6 ปีที่แล้ว +1

      Hola, claro que si....
      Agrega esta linea abajo de "Application.FileDialog(msoFileDialogFolderPicker).Show"
      If Len(D) = 0 Then MsgBox "No se ha seleccionado ninguna carpeta": Exit Sub
      El código debería quedar así:
      Sub Lector()
      Hoja1.Select
      Range("A2:a1048576").ClearContents
      Dim D As String
      Application.FileDialog(msoFileDialogFolderPicker).Show
      'Si no se selecciona ninguna carpeta entonces muestra mensaje y sale del programa...
      If Len(D) = 0 Then MsgBox "No se ha seleccionado ninguna carpeta": Exit Sub
      D = Application.FileDialog(msoFileDialogFolderPicker).SelectedItems(1)
      Set fs = CreateObject("Scripting.Filesystemobject")
      Set f = fs.getfolder(D)

      r = 2

      For Each a In f.Files
      If Not Right(a.Name, 4) = ".ini" Then
      Range("a" & r).Value = D & "\" & a.Name
      r = r + 1
      End If

      Next a
      End Sub

    • @Dadomotion
      @Dadomotion 6 ปีที่แล้ว

      No me funciona bien, me da el mensaje todo el rato, lo he solucionado (de manera cutre) con un "if" y un "else" y una nueva variable, igual no es la manera mas limpia, pero me funciona, dime si se puede repara lo que me has pasado, para que me funcione.
      Gracias :D
      Así lo he dejado :P
      Sub Lector()
      Hoja1.Select
      Range("A2:A1048576").ClearContents
      Dim D As String
      Dim E As String
      E = 0
      Application.FileDialog(msoFileDialogFolderPicker).Show
      'Si no se selecciona ninguna carpeta entonces muestra mensaje y sale del programa...
      'If Len(D) = 0 Then MsgBox "No se ha seleccionado ninguna carpeta": Exit Sub
      On Error GoTo Fin
      D = Application.FileDialog(msoFileDialogFolderPicker).SelectedItems(1)
      Set fs = CreateObject("Scripting.Filesystemobject")
      Set f = fs.getfolder(D)

      r = 2

      For Each a In f.Files
      If Not Right(a.Name, 4) = ".ini" Then
      Range("a" & r).Value = D & "\" & a.Name
      r = r + 1
      End If
      Next a
      MsgBox "¡Directorio Actualizado!", vbInformation
      E = 1
      Fin:
      If E = 0 Then
      MsgBox "Se canceló la actualización del directorio.", vbCritical
      Else
      End If
      End Sub

    • @Dadomotion
      @Dadomotion 6 ปีที่แล้ว

      Vale, creo que así está mejor: (¿Lo mejorarías?)
      Sub Lector()
      Hoja1.Select
      Range("A2:A1048576").ClearContents
      Dim D As String
      Application.FileDialog(msoFileDialogFolderPicker).Show
      'Si no se selecciona ninguna carpeta entonces muestra mensaje y sale del programa...
      On Error GoTo Fin
      D = Application.FileDialog(msoFileDialogFolderPicker).SelectedItems(1)
      Set fs = CreateObject("Scripting.Filesystemobject")
      Set f = fs.getfolder(D)

      r = 2

      For Each a In f.Files
      If Not Right(a.Name, 4) = ".ini" Then
      Range("a" & r).Value = D & "\" & a.Name
      r = r + 1
      End If
      Next a
      MsgBox "¡Directorio Actualizado!", vbInformation
      Exit Sub
      Fin:
      MsgBox "No se ha seleccionado ninguna carpeta.", vbCritical
      End Sub

    • @RaduNordenhulk
      @RaduNordenhulk  6 ปีที่แล้ว +2

      Esa es otra manera, pero recuerda limpiar la variable "D", ya que en algunas ocasiones se queda el valor que corriste anteriormente....
      Solo agregar D = "" después del MsgBox "No se ha seleccionado ninguna carpeta.", vbCritical + vbOkOnly
      También puedes agregar al tipo de mensaje vbCritical + vbOkOnly
      para que sea el único botón a presionar....
      Saludos

    • @Dadomotion
      @Dadomotion 6 ปีที่แล้ว

      De acuerdo, muchas gracias.

  • @juanleano6718
    @juanleano6718 6 ปีที่แล้ว

    buenas muy pero muy bueno el video eso para organizar y hacer una lista de las carpetas esta buena pero si tu sabes como crear un archivador virtual me ayudarias un monton

  • @charlscharls5815
    @charlscharls5815 3 ปีที่แล้ว

    Excelente!!

  • @EMR800
    @EMR800 7 ปีที่แล้ว

    gracias por tu ayuda con este video

    • @RaduNordenhulk
      @RaduNordenhulk  5 ปีที่แล้ว

      Gracias Joreh, este curso gratuito en Udemy hasta el 31 de Diciembre 2019 le puede ser de utilidad!
      th-cam.com/video/EXBDPg3Xk88/w-d-xo.html&lc=

  • @gabaro76
    @gabaro76 6 ปีที่แล้ว

    Gracias, es de mucha ayuda, me funciona y luego se traba y me marca un erro 1004 o un letrero con una x y un 400

    • @RaduNordenhulk
      @RaduNordenhulk  5 ปีที่แล้ว

      Gracias Gabyta, este curso gratuito en Udemy hasta el 31 de Diciembre 2019 le puede ser de utilidad!
      th-cam.com/video/EXBDPg3Xk88/w-d-xo.html&lc=

  • @martinmendozabenitez8977
    @martinmendozabenitez8977 5 ปีที่แล้ว

    buenisimo! gracias!

    • @RaduNordenhulk
      @RaduNordenhulk  5 ปีที่แล้ว

      Gracias Martín, este curso gratuito en Udemy hasta el 31 de Diciembre 2019 le puede ser de utilidad!
      th-cam.com/video/EXBDPg3Xk88/w-d-xo.html&lc=

  • @Cjclaudd
    @Cjclaudd 6 ปีที่แล้ว

    hola como puedo obtener la fecha de creacion?

    • @RaduNordenhulk
      @RaduNordenhulk  6 ปีที่แล้ว +1

      Hola, escribe
      Range("c" & r).Value = FileDateTime(a)
      Con esto deberías ver la fecha de creación del archivo!
      Saludos!
      Raúl Guerrero

    • @Cjclaudd
      @Cjclaudd 6 ปีที่แล้ว

      Raul que crack, esta es mi macros como debria incorporalo?
      Sub Listaindice()
      Dim Indice As String
      Dim i As Integer
      Dim listado As String
      Indice = path
      Sheets("indicereporte").Select
      Range("A2:A" & Cells(Rows.Count, 2).End(xlUp).Row) = ""
      i = 2
      listado = Dir(Indice)
      Do While Len(listado) > 0
      Sheets("indicereporte").Select
      Cells(i, 1) = listado
      listado = Dir()
      i = i + 1
      Loop
      End Sub

    • @RaduNordenhulk
      @RaduNordenhulk  6 ปีที่แล้ว

      Agrega esta línea dentro de tu Do While
      Cells(i, 2) = FileDateTime(Mid(Indice, 1, Len(Indice) - 1) & listado)

    • @RaduNordenhulk
      @RaduNordenhulk  6 ปีที่แล้ว +1

      Queda así!
      Sub Listaindice()
      Dim Indice As String
      Dim i As Integer
      Dim listado As String
      Indice = "C:\Users\correcj\Ecolab\Workflow Account Payable - Documentos\Invoices\All\*pdf"
      Sheets("indicereporte").Select
      Range("A2:A" & Cells(Rows.Count, 2).End(xlUp).Row) = ""
      i = 2
      listado = Dir(Indice)
      Do While Len(listado) > 0
      Sheets("indicereporte").Select
      Cells(i, 1) = listado
      Cells(i, 2) = FileDateTime(Mid(Indice, 1, Len(Indice) - 1) & listado)
      listado = Dir()
      i = i + 1
      Loop
      End Sub
      Saludos!!!
      Raúl Guerrero

    • @Cjclaudd
      @Cjclaudd 6 ปีที่แล้ว

      me salio error 52 nombre de archivo incorrecto

  • @Hector_Fabio
    @Hector_Fabio 5 ปีที่แล้ว

    Excelente solución....

    • @RaduNordenhulk
      @RaduNordenhulk  5 ปีที่แล้ว

      Gracias H[ector, este curso gratuito en Udemy hasta el 31 de Diciembre 2019 le puede ser de utilidad!
      th-cam.com/video/EXBDPg3Xk88/w-d-xo.html&lc=