Visual Basic - Buscar y Mostrar archivos

Life is soft - evento anual de software empresarial
 
Vista:
Imágen de perfil de eduardo
Val: 30
Ha aumentado su posición en 2 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Buscar y Mostrar archivos

Publicado por eduardo (13 intervenciones) el 16/02/2018 05:00:42
Hola
Tendré cientos de archivos .pdf en una carpeta, con nombres numéricos que identifica cada archivo, cada nombre de archivo esta compuesto por tres partes.
Necesito hacer un formulario que al escribir alguna de las tres partes del nombre, abra directamente el archivo correspondiente, de las tres partes del nombre dos de ellas pueden pedirse juntas o combinadas (ejemplo: todo lo del "2018" que sea "500" en este caso el archivo se llamaría "20180500009999999"). Y si son varios archivos me liste y pueda seleccionar de a un archivo para abrir.
Esto podría realizarlo en access, pero quizás sea mas practico realizar algo en VB. es esto posible?
De VB se poco y nada, me gustaría saber por donde empezar a leer, que tengo que aprender para poder realizarlo.
Lo ideal para mi es,, tener un ejecutable dentro de la carpeta que contiene los archivos, que al ejecutarlo abra un formulario que pueda llenar cualquiera de las tres partes del nombre y aparezca las opciones en el caso de ser muchos o abra directamente el archivo. la tercer parte del archivo trabaja solo, si se completara la caja correspondiente solo llamara al archivo que coincida con esa parte del nombre.
Bueno espero sus comentarios.
Gracias.
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 eduardo
Val: 30
Ha aumentado su posición en 2 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Buscar y Mostrar archivos

Publicado por eduardo (13 intervenciones) el 19/02/2018 13:23:05
Gracias
Ya estoy leyendo la biblia
Pero una aplicacion es muy dificil de hacer con mi tema?
El usar access es una opcion si no puedo armar una aplicacion para eso.
Alguien me puede ayudar con eso?
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 Andres Leonardo
Val: 3.117
Oro
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Buscar y Mostrar archivos

Publicado por Andres Leonardo (1798 intervenciones) el 19/02/2018 22:31:18
Eduardo ,... mira sabes me considero bueno en BV si quieres podria ayudarte , pero deseari saber un par de detalles.

Vas a tener 3 posibilidades
1
cada nombre de archivo esta compuesto por tres partes.  ]?? Cuales son estas tres partes???


otra


1
2
3
Necesito hacer un formulario que al escribir alguna de las tres partes del nombre, abra directamente el archivo correspondiente, de las tres partes del nombre dos de ellas pueden pedirse juntas o combinadas (ejemplo: todo lo del "2018" que sea "500" en este caso el archivo se llamaría "20180500009999999")
 
'En este caso yo haria ubn listador de archivos que muestre los que coinciden con  2018*500*.pdf ???
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Antoni Masana
Val: 1.259
Plata
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Buscar y Mostrar archivos

Publicado por Antoni Masana (558 intervenciones) el 20/02/2018 07:47:10
Eduardo si te quieres leer la biblia me parece bien pero si quieres solucionar un problema informático deberias leer temas informáticos o de programación, eso ayudan bastante.

Te cuento lo que no has leido.

Este bucle lee ficheros de una ruta determinada y cambiar el MsgBox por las condiciones para buscar tu fichero:

1
2
3
4
5
6
7
8
9
Sub Buscar()
    Dim File As String
 
    File = dir("*.PDF")
    While Len(File) > 0
        MsgBox File
        File = dir()
    Wend
 End Sub

Otra cuestión es el formulario.
Se puede hacer en Visual Basic, en Access, en Excel, en Word, el primero es compilado y en los otros es código abierto y puede funcionar comò una aplicación si tienes Office.
Si defines las tres partes del nombre del archivo se podría hacer alguna cosa y comenta si tienes Excel seria la mejor herramienta.

Tanto Andres Leonardo, que se ha ofrecido, comò yo mismo podemos hacerte un formulario para buscar los ficheros.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de eduardo
Val: 30
Ha aumentado su posición en 2 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Buscar y Mostrar archivos

Publicado por eduardo (13 intervenciones) el 20/02/2018 13:08:37
Antoni
Me hizo reir. Creo q fue un chiste lo de la biblia ja
Pero por si acaso aclaro. Estoy leyendo el link que me dejo usted y que se llama la biblia de access.
Aclarado eso. Le comento que en este instante se me rompio la pc y no puedo probar el bucle que me paso. Pero espero tener la computadora mañana y le cuento como salio.
Al parecer tendre dos alternativas una en excel y otra en vb
Al final pondre cual me guto mas y porque
Gracias
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 eduardo
Val: 30
Ha aumentado su posición en 2 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Buscar y Mostrar archivos

Publicado por eduardo (13 intervenciones) el 20/02/2018 12:56:52
Correcto.Andres
Los archivos tendran un nombre numerico y seran todos ".pdf"
El nombre tendra distinta cantidad de digitos, salvo que me pidas lo contrario. Aun no comence con la digitalizacion de los documentos y seran muchos muchos.
El nombre tambien respetara un orden. 1* año. 2* PROV 3* TR ( el 1 y 2 podrian o no combinarse en la busqueda y el 3 es unico osea no necesita ningun dato extra para dar con el archivo ya que es un dato unico por archivo) ESTE ORDEN LO ACABO DE MODIFICAR DE LA PREGUNTA INICIAL.
ejemplo de un nombre: 2018335671234567
Donde si busco en el explorer colocaria de la siguiente manera :
2018* me listaria todos los del año 2018
*33567* me listaria todos 33567 sin importar año ni TR
*1234567 Dato unico y solo me mostraria ese archivo
201833567* me listaria todos los TR del 33567 del año 2018
Lo q no mencione aun es que no solo quiero que me liste los archivos que estaran guardados en una sola carpeta, sino que me de la posibilidad de seleccionar el que quiero si hay varios, y abrirlo desde ahi mismo.

Pense en una aplicacion por el peso de esta.
Gracias
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
Val: 1.259
Plata
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Buscar y Mostrar archivos

Publicado por Antoni Masana (558 intervenciones) el 20/02/2018 13:29:29
Un detalle para el nombre de archivo y para la localización:

El primer campo es el año y son 4 dígitos. Para buscar por año la sintaxis es: 2018*.PDF

El segundo campo es PROV (que desconozco que es) y estaría bien que tuviese una longitud fija. ¿Porque? supongamos que tenemos tres códigos el 125 y 51250 y 1257.

Ficheros con PROV de longitud variable

20181259999999.pdf
20185125099999.pdf
20181257999999.pdf

Ficheros con PROV de longitud fija

2018001259999999.pdf
20185125099999.pdf
201801257999999.pdf

si busco *125* saldrán los tres, Si busco ????125*.PDF me saldran 2, en cambio si busco ????00125*.pdf solo saldra el primero

El tercer campo puede ser de longitud variable o fija, por que al buscar se hace así ?????????12345*.PDF (pare subrayara año, parte negrita PROV) y encontrada todos los ficheros que el TR empiece por 12345

Y s quiere buscar los Tr de 2018 haces 2018?????12345*.PDF y el TR nunca se confundida con parte del PROV.

Es una sugerencia.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de eduardo
Val: 30
Ha aumentado su posición en 2 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Buscar y Mostrar archivos

Publicado por eduardo (13 intervenciones) el 20/02/2018 14:26:02
Es cierto Antoni
En ese caso puedo poner ceros de separacion y para cubrir algun otro digito extra que aparezca. Pero igual orden
1* año. 2* prov 3* tr
Ejemplo: 201803357401234567
2018: año
033574: prov
01234567: tr
Ejemplo2: 201803357400009876
2018: año
033574: prov
00009876: tr

Aqui ambos ejemplos con digitos de igual cantida. Donde por separado el cero a la izquierda pierde su funcion.
No existe el prov 033474 pero si el 33474.

Como el trabajo del escaneo no comence aun puedo modificar como voy a querer el nombre

Mañana pruebo el bucle con estos nombres
Gracias
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 Andres Leonardo
Val: 3.117
Oro
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Buscar y Mostrar archivos

Publicado por Andres Leonardo (1798 intervenciones) el 20/02/2018 14:53:12
Pues creo que con lo requerido por Anthony esta mas que claro como se debe hacer ... considero que es una simpleconcatenacion y mostrar los archivos ... luegos como abrirlos tan facil como otro bucle....

Para mi podrias usar un list file Vamos avanzando y core que estaria listo ... vamos al atrabajo..... te paso un bosquejo en un rato......
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Antoni Masana
Val: 1.259
Plata
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Buscar y Mostrar archivos

Publicado por Antoni Masana (558 intervenciones) el 20/02/2018 15:42:02
Una cosa más a lo ya dicho

Si a la hora de buscar pones que el TR es el 9876 el programa debe hacer la busquera asi:

Campo_1 vacío igual a ????
Campo_2 vacío igual a ??????
Campo_3 rellenamos con ceros por la izquierda 00009876

Y ahora buscamos: ??????????00009876.PDF

En Código
1
2
3
4
5
6
IF Campo_Year = EMPTY Then Campo_Year = "????"
If Campo_Prov = EMPTY Then Campo_Prov = "??????" Else Campo_Prov = Right$("000000"  +Campo_Prov, 6)
If Campo_Tr   = EMPTY Then Campo_Tr   = "*"      Else Campo_Tr   = Right$("00000000"+Campo_Tr  , 8)
 
Dir(Campo_Year + Campo_Prov + Campo_Tr + ".PDF")
etc.


Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Andres Leonardo
Val: 3.117
Oro
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Buscar y Mostrar archivos

Publicado por Andres Leonardo (1798 intervenciones) el 21/02/2018 18:47:09
Haber mira como te funciona asi ... si quieres yo lo hice que el año aparezca donde sea pero en realidad quedo para que sea al inicio.

espero te ayude

el resto es carpinterira

**si seleccionas un archivo y le das procesar te presenta el nombre y lo abre....
.

Bosquejo2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de eduardo
Val: 30
Ha aumentado su posición en 2 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Buscar y Mostrar archivos

Publicado por eduardo (13 intervenciones) el 22/02/2018 03:29:14
Andres, pensé que habías abandonado el tema.
Ya tengo pc, y estoy viendo las pantallas que me dejaste.
Se ve bien, espero no te haya resultado difícil.
Avisa cuando lo termines, me interesa.
Cuanto pesa, y me imagino que no necesita instalacion, pero necesita tener instalado algun programa extra que no sea el office?
Gracias y 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
Imágen de perfil de Andres Leonardo
Val: 3.117
Oro
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Buscar y Mostrar archivos

Publicado por Andres Leonardo (1798 intervenciones) el 22/02/2018 18:27:52
Pues te pase el codigo fuente jejej
pues digamos que no fue dificil ... jejejej

copia y pega un archivo pdf y cambiale los nombres a los que queires

busca el directorio en el aplicativo te lo adjunto y empieza a filtrar por año .. por los campos filtros...

el resto es de mejorar carpinteria pero lo que vale debe estar

por cierto si seleccionas un archivo y presionas el boton te abre con tu aplicaicon default de pdf el archivo seleccionado

espero te aydue
Bosquejo3
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de eduardo
Val: 30
Ha aumentado su posición en 2 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Buscar y Mostrar archivos

Publicado por eduardo (13 intervenciones) el 22/02/2018 03:49:41
Hola Antoni
Ya tengo pc,
Agregue un modulo en VB de Excel y pegue tus código.
El etc en la ultima linea, a que refiere? debo repetir la ultima orden con las distintas variantes?
Y el formulario es una ventana emergente o lo tengo que fabricar en una hoja de excel.
Gracias.
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 eduardo
Val: 30
Ha aumentado su posición en 2 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Buscar y Mostrar archivos

Publicado por eduardo (13 intervenciones) el 27/02/2018 02:34:45
Hola Andres
No me llego nada, donde lo veo?
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 eduardo
Val: 30
Ha aumentado su posición en 2 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Buscar y Mostrar archivos

Publicado por eduardo (13 intervenciones) el 27/02/2018 04:00:19
Hola Andres.
Encontré el archivo, gracias.
Eso me sirve, igual lo de Antoni me gustaría llevarlo acabo también, ya que puedo tener algún tipo de problemas con los permisos de la red..
Te quiero preguntar, como puedo hacer para modificar algunos nombres, como el titulo, los nombres pero los que estan escritos no los de los campos con que se programo todo. También pensando en años posteriores como puedo agregar años.
Estaría bueno poder ponerle los nombres originales y/o alguna imagen el cuadro.
Puedo editar ese ejecutable? Con que puedo hacerlo o con que?
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
Imágen de perfil de Andres Leonardo
Val: 3.117
Oro
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Buscar y Mostrar archivos

Publicado por Andres Leonardo (1798 intervenciones) el 27/02/2018 14:57:18
Tendrias que bajar el visual basic 6.0 e instalarlo deberas bajar el instalador en tu maquina te adjunto los fuentes de la version que te pase ... que bueno que te haya servido ahi podras cambiar los nombres y codsas que estas pidiendo ...

Para años posteriores podrias crear algo que te lea el año actual y que te agregue los ultimos 10 años un cwhile de 1a 10 desde el año actual y restandole el indice
podrias hacer maravillas si se te dificulta me podrias pedir ayuda poniendo en la imagen de la aplicacion lo que deseas cambiar .. o no se

ya veras tu como nos arreglamos

me avisas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de eduardo
Val: 30
Ha aumentado su posición en 2 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Buscar y Mostrar archivos

Publicado por eduardo (13 intervenciones) el 01/03/2018 02:58:23
Gracias Andres.
Me gusta, y hace unos años atrás tenia intenciones de aprender , pero no se porque deje eso de lado.
Me lo voy a instalar y veré que puedo hacer.
Cualquier cosa grito jajaja
Ahora, sigo con la versión en excel que no me sale, pero tengo fe.
Gracias nuevamente.
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 Andres Leonardo
Val: 3.117
Oro
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Buscar y Mostrar archivos

Publicado por Andres Leonardo (1798 intervenciones) el 01/03/2018 14:36:21
Pues lo de excel es el mismo lenguaje de aca ... asi de simple....

con esto podrias...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de eduardo
Val: 30
Ha aumentado su posición en 2 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Buscar y Mostrar archivos

Publicado por eduardo (13 intervenciones) el 27/02/2018 03:28:41
Hola Antoni
No me sale, te transcribo la macro que hice para un boton.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Sub Buscar()
    Dim File As String
 
    File = Dir("C:\Usuarios\Usuario\Mis documentos\*.pdf")
    While Len(File) > 0
        If Campo_Year = Empty Then Campo_Year = "????"
        If Campo_Prov = Empty Then Campo_Prov = "??????" Else Campo_Prov = Right$("000000" + Campo_Prov, 6)
        If Campo_Tr = Empty Then Campo_Tr = "*" Else Campo_Tr = Right$("00000000" + Campo_Tr, 8)
 
        Dir (Campo_Year + Campo_Prov + Campo_Tr + ".PDF")
        File = Dir()
    Wend
 
End Sub

Y le di nombres a tres celdas una llamada Year, otra Prov y otra Tr
Les puse informacion y nada.
Algo estoy haciendo mal.
Iluminame Antoni.
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
Val: 1.259
Plata
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Buscar y Mostrar archivos

Publicado por Antoni Masana (558 intervenciones) el 27/02/2018 16:23:11
Esto es como debe funcionar:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Sub Buscar()
    Dim File As String, Ruta as String
 
    Ruta = "C:\Usuarios\Usuario\Mis documentos\"
    If Campo_Year = Empty Then Campo_Year = "????"
    If Campo_Prov = Empty Then Campo_Prov = "??????" Else Campo_Prov = Right$("000000"   + Campo_Prov, 6)
    If Campo_Tr   = Empty Then Campo_Tr = "*"        Else Campo_Tr   = Right$("00000000" + Campo_Tr  , 8)
 
    File = Dir (Ruta + Campo_Year + Campo_Prov + Campo_Tr + ".PDF")
    While Len(File) > 0
        MsgBox File
        File = Dir()
    Wend
End Sub

Ahora solo tendrás que cambiar el MsgBox por lo que desees hacer con cada uno de los ficheros.

Puede que aun y así no funcione.
La causa esta en la ruta, tu la ves como: C:\Usuarios\ pero internamente es C:\Users\

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de eduardo
Val: 30
Ha aumentado su posición en 2 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Buscar y Mostrar archivos

Publicado por eduardo (13 intervenciones) el 01/03/2018 02:52:03
Antoni , no logro hacerlo funcionar
Perdón por ser tan burro
La macro quedo así:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Sub Buscar()
    Dim File As String, Ruta As String
 
    Ruta = "C:\Users\Usuario\Documents"
    If Campo_Year = Empty Then Campo_Year = "????"
    If Campo_Prov = Empty Then Campo_Prov = "??????" Else Campo_Prov = Right$("000000" + Campo_Prov, 6)
    If Campo_Tr = Empty Then Campo_Tr = "*" Else Campo_Tr = Right$("00000000" + Campo_Tr, 8)
 
    File = Dir(Ruta + Campo_Year + Campo_Prov + Campo_Tr + ".PDF")
    While Len(File) > 0
        MsgBox File
        File = Dir()
    Wend
End Sub

Donde B4 tiene como nombre Campo_Year, B6 tiene como nombre Campo_Prov y B8 tiene como nombre Campo_TR

Creo que debe abrirse una caja con los archivo que coincida con las condiciones, pero no hace nada.
Que estaré haciendo mal?
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
Val: 1.259
Plata
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Buscar y Mostrar archivos

Publicado por Antoni Masana (558 intervenciones) el 01/03/2018 15:09:48
He modificado un par de cosas

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Sub Buscar()
    Dim File As String, Ruta As String
 
    Ruta = "C:\Users\User\Documents\"
 
    If Dir(Ruta, vbDirectory) = "" Then  MsgBox "No existe el directorio":  Exit Sub
 
Campo_year = Range("B4")
Campo_Prov = Range("B5")
Campo_Tr = Range("B6")
 
    If Campo_year = Empty Then Campo_year = "????"
    If Campo_Prov = Empty Then Campo_Prov = "??????" Else Campo_Prov = Right$("000000" + Campo_Prov, 6)
    If Campo_Tr = Empty Then Campo_Tr = "*" Else Campo_Tr = Right$("00000000" + Campo_Tr, 8)
 
MsgBox "Voy a buscar..." & vbCrLf & vbCrLf & Ruta + Campo_year + Campo_Prov + Campo_Tr + ".PDF"
 
    File = Dir(Ruta + Campo_year + Campo_Prov + Campo_Tr + ".PDF")
    While Len(File) > 0
        MsgBox File
        File = Dir()
    Wend
End Sub

En primer lugar el contenido de la ruta tiene que finalizar con una barra.
En segundo lugar comprueba que el directorio exista.

Las líneas pagadas a la izquierda son para comprobar si funciona, las tres primeras porque yo no las tengo asignadas y el MSGBOX para ver que va a buscar.

Si la ruta esta bien por defecto los tiene que encontrar todos los ficheros PDF.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de eduardo
Val: 30
Ha aumentado su posición en 2 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Buscar y Mostrar archivos

Publicado por eduardo (13 intervenciones) el 01/03/2018 20:42:41
Hola Antoni
Hay un progreso!

Ya aparece un cartel que dice "Voy a buscar..." y abajo pone la direccion y el dato buscado. Pero. Cuando le das al aceptar no muestra nada y solo se cierra.
Esto sucede cuando colocas prov y/o tr

Pero cuando colocas el año sale otro cartel q dice "no coinciden los tipos".
Y cuando combinas algun dato con año sale el de "no coinciden los tipos".

Y cuando combinas colocando prov y tr
sale el otro cartel de "Voy a buscar"

Creo q es el resultado q esperabas verdad?
Ansioso espero las otras modificaciones.
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
Imágen de perfil de Antoni Masana
Val: 1.259
Plata
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Buscar y Mostrar archivos

Publicado por Antoni Masana (558 intervenciones) el 01/03/2018 21:48:30
Vamos haber si mejoramos esto un poco

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Sub Buscar()
    Dim File As String, Ruta As String
 
    Ruta = "C:\Users\User\Documents\"
 
    If Dir(Ruta, vbDirectory) = "" Then  MsgBox "No existe el directorio":  Exit Sub
 
Campo_year = Range("B4")
Campo_Prov = Range("B5")
Campo_Tr = Range("B6")
 
    If Campo_year = Empty Then Campo_year = "????"
    If Campo_Prov = Empty Then Campo_Prov = "??????" Else Campo_Prov = Right$("000000" + Campo_Prov, 6)
    If Campo_Tr = Empty Then Campo_Tr = "*" Else Campo_Tr = Right$("00000000" + Campo_Tr, 8)
 
MsgBox "Voy a buscar..." & vbCrLf & vbCrLf & Ruta & Campo_year & Campo_Prov & Campo_Tr & ".PDF"
 
    File = Dir(Ruta + Campo_year & Campo_Prov & Campo_Tr & ".PDF")
    While Len(File) > 0
        MsgBox File
        File = Dir()
    Wend
End Sub

En las dos líneas marcadas he cambiado el + por & si esto soluciona el problema lo dejamos como bueno, en caso de que siga fallando:

¿Que utilizas para ejecutar este código? Un libro Excel o el programa que te envío Andres Leonardo.

Sea lo que sea por favor envíamelo, pero los fuentes y si lo prefieres a mi correo: [email protected]

Y por ultimo una lista de todos los ficheros PDF para poder simular la búsqueda.

¿Como crear la lista? Abres una ventana de MS-DOS y ejecutas el siguiente comando:

1
C:\> DIR C:\Users\User\Documents\*.PDF /B | Clip

Ya puedes cerrar la verntana de MS-DOS.

Cuando termine ves a un editor de textos y haces un Pegar o CTRL + V y se pegaran la lista de todos los ficheros PDF que tienes que buscar.

Y envíamela también que si no, no sirve lo que has realizado.

El problema puede estar en la gestión de las variables.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Andres Leonardo
Val: 3.117
Oro
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Buscar y Mostrar archivos

Publicado por Andres Leonardo (1798 intervenciones) el 05/03/2018 15:15:47
Anthony

Los fuentes estan en una de las respuestas en la otra esta el ejecutable

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Antoni Masana
Val: 1.259
Plata
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Buscar y Mostrar archivos

Publicado por Antoni Masana (558 intervenciones) el 08/03/2018 20:04:20
Hola Eduardo.

Te envío el programa de Andres con unas pequeñas correcciones en la busqueda, ya funciona bien.

Tambien te envio el libro Excel que ya esta arreglado, faltaba definir las variables como Texto.

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
Sub Buscar()
    Dim File As String, Ruta As String
 
    Dim Campo_Year As String, Campo_Prov As String, Campo_Tr As String
    Ruta = "C:\tmp\"
 
    If Dir(Ruta, vbDirectory) = "" Then MsgBox "No existe el directorio":   Exit Sub
 
Campo_Year = Range("C6")
Campo_Prov = Range("C8")
Campo_Tr = Range("C10")
 
    If Campo_Year = Empty Then Campo_Year = "????"
    If Campo_Prov = Empty Then Campo_Prov = "????????" Else Campo_Prov = Right$("00000000" + Campo_Prov, 8)
    If Campo_Tr = Empty Then Campo_Tr = "*" Else Campo_Tr = Right$("00000000" + Campo_Tr, 8)
 
MsgBox "Voy a buscar..." & vbCrLf & vbCrLf & Ruta & Campo_Year & Campo_Prov & Campo_Tr & ".PDF"
 
    File = Dir(Ruta + Campo_Year & Campo_Prov & Campo_Tr & ".PDF")
    While Len(File) > 0
        MsgBox File
        File = Dir()
    Wend
End Sub

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