Excel - Macro DIR () List carpeta y dir () list Subcarpetas error

   
Vista:

Macro DIR () List carpeta y dir () list Subcarpetas error

Publicado por Agnes (2 intervenciones) el 28/06/2017 19:44:02
Hola a todos, tengo hecha una macro que lista carpetas de 1 ruta y después con los datos de la 1 lista saco 2 lista de carpetas. Pero se ve al listar la 2 ruta se guarda en los datos de la 1, nose como hacer que cada una tenga su lista.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
mySourcePath es la ruta princpical de la 1 lista
    Sub ListMyFiles(mySourcePath)
    ' List the files and directories within "C:\".
    mySourcePath = mySourcePath & "\"
    Dim fList As String
    Dim fLists As String
    Dim fName As String
    Dim fNames As String
    Dim numero As String
    numero = 0
    iRow = 2
    For inicios = 0 To Total
    fName = Dir(mySourcePath, vbDirectory)
    ' The variable fName now contains the name of the first file or directory within "C:\".
    If InStr(fNames, ".") > 0 Then
            numero = Left(fNames, InStr(fNames, ".") - 1)
            ElseIf InStr(fNames, "..") > 0 Then
            numero = Left(fNames, InStr(fNames, "..") - 1)
    End If
    If numero = "" Then
    inicios = 0
    End If
    Do While fName <> ""
    ' Store the current file or directory name in the string fList.
    fList = fList & vbNewLine & fName
    datos = Range("A" & iRow).Value
    aux = 0
    MsgBox "Ruta 1.1: " & fList
    MsgBox "Datos: " & datos
    If datos <> fName Then
    fName = Dir()
    ElseIf datos = fName Then
           'la otra ruta modifica para que lista otras carpetas
            rutas = mySourcePath & fName & "\ASUNTOS\"
        fNames = Dir(rutas, vbDirectory)
        Do While fNames <> ""
        'fLists = fLists & vbNewLine & fNames
        ' Get the next file or directory within "C:\".
        If InStr(fNames, ".") > 0 Then
            numero = Left(fNames, InStr(fNames, ".") - 1)
            ElseIf InStr(fNames, "-") > 0 Then
            numero = Left(fNames, InStr(fNames, "-") - 1)
            ElseIf InStr(fNames, "_") > 0 Then
            numero = Left(fNames, InStr(fNames, "_") - 1)
        End If
        If numero = "" Then
        fNames = Dir()
        End If
        If numero <> "" Then
        iRows = 2
        For inicio = 0 To Total
        dato = Range("B" & iRows).Value
        If dato = numero Then
        Range("F" & iRows).Value = numero
        ruta = fNames + numero
        ActiveSheet.Hyperlinks.Add Anchor:=Cells(iRows, "E"), Address:=ruta, TextToDisplay:=numero
        End If
        If dato <> numero Then
        End If
        If dato = "" Then
        End If
        iRows = iRows + 1
        Next inicio
        fNames = Dir()
        End If
        Loop
    iRow = iRow + 1
    End If
    Loop
    fName = fName
    fName = Dir()
    iRow = iRow + 1
    Next inicios
    End Sub
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana

Macro DIR () List carpeta y dir () list Subcarpetas error

Publicado por Antoni Masana (675 intervenciones) el 29/06/2017 11:46:43
No entiendo qué pretendes hacer con esta Macro.

La he probado y lo único que consigo es que salga un error por ejecutas un MsgBox con demasiadas líneas.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Macro DIR () List carpeta y dir () list Subcarpetas error

Publicado por Inés (2 intervenciones) el 29/06/2017 16:46:54
El MsgBox "Ruta 1.1: " & fList es para ver como va recogiendo los datos

Name = Dir(mySourcePath, vbDirectory) -> es la ruta pricipal
Despues comparo en los datos de una columna del excel si existe la carpeta con ese nombre.
Con ese nombre busco en una subcarpeta que esta dentro.
rutas = mySourcePath & fName & "\ASUNTOS\" -> sub ruta para la subcarpeta con el dato
fNames = Dir(rutas, vbDirectory) -> la 2 ruta de las subcarpetas
comparo los datos de otra columna del excel si son iguales hago el hipervinculo a la carpeta.

Total es cuantos datos hay en las columna E, que lo recorro con un For para comprar los datos, si es igual al nombre de la carpeta.
Busco en sub carpetas si existe un nombre de la columna H, que se llame igual y si es así hago el hipervínculo.
Ejemplo:
Columna E | Columna H
500 | Alfredo
752 | Maria
800 | Ana
450 | Ethan
1052 | Alvaro

Rutas:
C:\Users\usuario\Documents\500
C:\Users\usuario\Documents\800
C:\Users\usuario\Documents\450
C:\Users\usuario\Documents\500\ASUNTOS\Maria
C:\Users\usuario\Documents\500\ASUNTOS\Alvaro
C:\Users\usuario\Documents\800\ASUNTOS\Ana

En fList me sale:
.
..
500
500

Tendría que salir:
.
..
500
752
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana

Macro DIR () List carpeta y dir () list Subcarpetas error

Publicado por Antoni Masana (675 intervenciones) el 30/06/2017 10:03:01
Puedes subir un ejemplo.
El fichero Excel y un zip con las rutas y ficheros para ver como funciona, de lo contrario es difícil ver cual es el problema.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Revisar política de publicidad