• 👏 Bienvenido a nuestra comunidad Excel

    ¿Todavía no estás registrado? 😲

    Registrate gratis aquí y podrás:

    💪 Hacer preguntas a los expertos
    ⬇️ Descargar ejemplos y plantillas
    🏅 
    Acceder a contenidos premium

Crear carpetas

Akkar

Member
mucha casualidad tiene que ser, que cambié todos los archivos de valoraciones, quitando ese espacio y curaciones no lo hice:
A la primera,
valoraciones 3 y curaciones 160(igual que la otra vez)
valoraciones 2y curaciones 114(igual que la segunda vez) en valoraciones me quedo 1 para quitar espacio, y las otras 2 no estaban en origen
valoraciones 2 y curaciones 91 (el mismo patrón)

voy a limpiar todos esos espacios(160) y a ver que pasa
 

Akkar

Member
ahi voy quite todos los espacios
y Valoración pues perfecto, quedo con 2 que no estan
curación en varios intentos todos me salieron asi, 98,36,3,1

voy siguiendo pistas a ver

Edito

la ultima que quedaba la arregle, le faltaba un numero en el CC
pero para limpiar tuve que hacer varios intentos, 98,35,2,0

sigo buscando...

re-edito:

Creo que son repetidas...., al igual que en valoraciones, imagino, que cuando encontraba una con espacio, daba un salto, y por eso
cuando volvia a ejecutar, habían menos. Así si son repetidas, hace algo paracedido y al volver a ejecutar, las mueve reemplazando la misma
es mi teoria
voy a probar de juntar todos los archivos, así los repetidos se reemplazaran ahi, y ejecutare a ver
 
Última edición:

Akkar

Member
pues no fue la solución

varios intentos de nuevo, 187,37,4 y 2(los que no estaban en origen)

no se me ocurre más, que pueda ser
 

Héctor Miguel

Well-known member
no se me ocurre más, que pueda ser
estos son los puntos importantes (como vas comprobando en tus intentos):

1) la clave es el codigo de paciente (CCxxxxxxxx) que debe ser exactamente igual entre:
- el anotado en la columna 4 de la tabla "tablaPacientes"
- el mencionado en los nombres de los archivos *.pdf

2) si hay espacios en uno (CC x x x x x), tiene que ser con los mismos espacios "el otro"
OJO: a vba no le puedes andar jugando a que "adivine" que se trata del mismo CCxxxxxx
- son "fallas" de vba (que le toca al usuario corregir)
- podrias dar una "vuelta de tuerca" a la forma de buscar (semi)coincidencias
- pero se necesita saber (con exactitud) el "tipo de anormalidades" que estimas encontrar (?)

3) si existen dos (o mas) *.pdf's con el mismo CCxxxxxx, solo quedara el ulitmo "procesado"
- se pasan a la carpeta del paciente (segun el auxiliar asignado en la columna 2 de "tablaPacientes")
- se eliminan de la carpeta donde se encontraron ("Valoraciones Agosto20" o "Curaciones para organizar agosto20")

preguntas:
1) cuantos "pacientes" tienes en la "tablaPacientes" de tus pruebas ?
2) de esos pacientes, cuantos tienen dos (o mas) *.pdf's en las carpetas de busqueda ?
3) cual es el numero maximo de esos "mas de dos" *.pdf's de un paciente ?
 

Akkar

Member
Pero no entiendo pues, como al repetir la ejecucion se van moviendo todos los archivos, aunque sean 3 repes

Me estoy volviendo loko , una cafetera llevo ya y mucho sueño :), no se como haceis vosotros

me pongo a resolver esas preguntas
 

Akkar

Member
estos son los puntos importantes (como vas comprobando en tus intentos):

1) la clave es el codigo de paciente (CCxxxxxxxx) que debe ser exactamente igual entre:
- el anotado en la columna 4 de la tabla "tablaPacientes"
- el mencionado en los nombres de los archivos *.pdf
la única diferencia es el "_" que los separa del nombre, en la tabla de pacientes

2) si hay espacios en uno (CC x x x x x), tiene que ser con los mismos espacios "el otro"
OJO: a vba no le puedes andar jugando a que "adivine" que se trata del mismo CCxxxxxx
- son "fallas" de vba (que le toca al usuario corregir)
- podrias dar una "vuelta de tuerca" a la forma de buscar (semi)coincidencias
- pero se necesita saber (con exactitud) el "tipo de anormalidades" que estimas encontrar (?)
no he visto separaciones en los números. Lo único lo que te comente, que corregí pero en la lista, que era un espacio entre cc y el numero

3) si existen dos (o mas) *.pdf's con el mismo CCxxxxxx, solo quedara el ulitmo "procesado"
- se pasan a la carpeta del paciente (segun el auxiliar asignado en la columna 2 de "tablaPacientes")
- se eliminan de la carpeta donde se encontraron ("Valoraciones Agosto20" o "Curaciones para organizar agosto20")
Para estar seguro de eso, debería probar sin una carpeta?¿? probaré con curaciones, ya que valoraciones "siempre" hay una sola valoracion
haré pruebas con eso a ver. Pero si no se me olvidó, creo que te comenté que en curaciones pueden haber hasta 9 o más con la misma cc, depende el paciente tiene mas o menos curas(aunque como los archivos, los acabe y entregué ya, muchos los tengo unidos y por eso hay menos curaciones)

preguntas:
1) cuantos "pacientes" tienes en la "tablaPacientes" de tus pruebas ?
182

2) de esos pacientes, cuantos tienen dos (o mas) *.pdf's en las carpetas de busqueda ?
muchos, esto tambien voy a comprobarlo por si me da 98

3) cual es el numero maximo de esos "mas de dos" *.pdf's de un paciente ?
Entiendo que la pregunta es cuantas curaciones(archivos) serían como maximo

yo el maximo que he visto son 10 curaciones en el mes, pero serian 12 archivos como maximo

no se si te conteste bien esta pregunta
 

Héctor Miguel

Well-known member
la única diferencia es el "_" que los separa del nombre, en la tabla de pacientes
es el caracter con el que el codigo separa el CCxxxxx (que se encuentra al final de la celda)
lo que te comente, que corregí pero en la lista, que era un espacio entre cc y el numero
ese espacio "es la diferencia" (a menos que este en ambos lados: celda y pdf)
en curaciones pueden haber hasta 9 o más con la misma cc
... esto tambien voy a comprobarlo por si me da 98
si hay varios pdf's con el mismo CCxxxxxx, cual es (exactamente) la diferencia entre ellos ?
 

Akkar

Member
es el caracter con el que el codigo separa el CCxxxxx (que se encuentra al final de la celda)
Sería en el centro, justo entre el nombre y el CC

ese espacio "es la diferencia" (a menos que este en ambos lados: celda y pdf)
yo lo corregí a mano, pero aun así, como no depende siempre de mi crear los archivos , yo me fijaré seguro, que este sin espacios,
pero no puedo asegurar que se consiga siempre.
Tendría solución?

si hay varios pdf's con el mismo CCxxxxxx, cual es (exactamente) la diferencia entre ellos ?
La diferencia, son las fechas de curación que van todas al principio


Anexo los resultados de mi ultima prueba

hay un total de 43 archivos con 2 o más repeticiones de CC
de esos 43, 16 son de 3 o más
de esos 16, 2 son de 4

no me cuadran los numeros ya que quedaron 98 archivos sin mover
 

Héctor Miguel

Well-known member
como no depende siempre de mi crear los archivos , yo me fijaré seguro, que este sin espacios,
pero no puedo asegurar que se consiga siempre.
Tendría solución?
como vas "pintando" la situacion real a la que te enfrentas (cada vez mayor detalle pero desafortunadamente "a cuenta-gotas" ?)

1) se aprecia la necesidad de un "sistema" que permita la "normalizacion" de los datos entre todos los que intervienen (o sea...)
- quien genera los archivos *.pdf
- quien anota los codigos de los pacientes

a) si los CCxxxxxx tienen espacios, se puede corregir con alguna "vuelta de tuerca" en la forma de comparar desde vba
b) si se equivoca alguno en los caracteres (dislexia, omision, agregados, etc.) apareceran dificultades de no facil solucion (?)
La diferencia, son las fechas de curación que van todas al principio
2) si la diferencia entre varios CCxxxxxx (iguales o repetidos) ES la "pseudo" fecha (al inicio de los *.pdf's)
a) CCxxxxxx DEJA de ser el (unico) punto "clave" para identificar archivo-paciente
b) la "pseudo" fecha tampoco parece ser una "constante", algunos *.pdf la tienen (al inicio) y otros NO (mensajes #18 y #28)
c) otras veces hay un espacio entre dia y mes al inicio del nombre del *pdf (mensaje #54)
d) el nombre del paciente tampoco parece ser una referencia solida (?)

como ves, siguen saliendo "detalles del tintero" (tendras mas "perdidos" en algun otro lado ?)
 

Akkar

Member
como vas "pintando" la situacion real a la que te enfrentas (cada vez mayor detalle pero desafortunadamente "a cuenta-gotas" ?)

1) se aprecia la necesidad de un "sistema" que permita la "normalizacion" de los datos entre todos los que intervienen (o sea...)
- quien genera los archivos *.pdf
- quien anota los codigos de los pacientes

a) si los CCxxxxxx tienen espacios, se puede corregir con alguna "vuelta de tuerca" en la forma de comparar desde vba
b) si se equivoca alguno en los caracteres (dislexia, omision, agregados, etc.) apareceran dificultades de no facil solucion (?)

2) si la diferencia entre varios CCxxxxxx (iguales o repetidos) ES la "pseudo" fecha (al inicio de los *.pdf's)
a) CCxxxxxx DEJA de ser el (unico) punto "clave" para identificar archivo-paciente
b) la "pseudo" fecha tampoco parece ser una "constante", algunos *.pdf la tienen (al inicio) y otros NO (mensajes #18 y #28)
c) otras veces hay un espacio entre dia y mes al inicio del nombre del *pdf (mensaje #54)
d) el nombre del paciente tampoco parece ser una referencia solida (?)

como ves, siguen saliendo "detalles del tintero" (tendras mas "perdidos" en algun otro lado ?)
Los datos en el tintero :) no es que los oculte, no tengo la experiencia tuya. Todos han surgido al ver los resultados, al ponerme a
analizar el porque no se mueven unos y otros si.

1-) Normalmente soy yo quien genera los archivos pdf, pero cuando no hay tiempo me colaboran.
los códigos se generan a mano. Se abre el pdf, y se hace un copy past, sobre el nombre y el CC, y al guardar, se tiene que eliminar las
fallas del copy past, normalmente son espacios y ":", pero se deja normalmente nombre CCxxxxx(digo normalmente por las fallas que
he visto al usar la macro, que antes ni te fijas) y se añade fecha si es correspondiente(si es cura, cuando se hizo) y si es valoración(se
añade fecha y al final del CCxxxxx(VAL) para diferenciarla).

a-) Sólamente sería corregir el posible fallo CC xxxxxxx es el único espacio, a no ser que haya espacios a la derecha de los números.

b-) Siempre pueden aparecer, somos humanos. Lo bueno, que al menos yo, procurare no fallar, con lo que cuesta arreglar esto. No es
el tema. Pero los fallos en CCxxxxxx los tengo claros, así que podría solucionarlos. Y esta macro solo la usaré yo.

2-) Creo que respondí con la 1. Añado que cada paciente se le hace x curas cada mes, entre 1-12, la primera de cada mes es la valoración.
Aunque es una cura igualmente, es obligatoria.

a-) Pienso que si es la clave, para todo esto. Porque aunque pongamos los nombres de referencia, siempre estarán repetidos. Las fechas
no son siempre las mismas, así que no hay forma de buscarlas.

b-) Los pdf que no tienen fecha, "normalmente" son los que se unen. Se quitan las fechas al juntar todos los pdf con el mismo nombre, o
sea las curas realizadas en el mes, con la valoración.

c-) falla humana al elaborar el nombre, incluso he visto algunas que pone agos. Lo "normal" es ddAGO.

d-) No, es el menos solido de todos, por eso siempre dije el CC, que es el único seguro.

Siempre intento ser los más explicativo posible, no quiero dejarme ningun detalle, no te molestes por el tintero, es lo que te dije, falta de experiencia.

Agradezco mucho tu tiempo. Y tu paciencia.

Pta. Se me ocurrió una cosa, para futuro, si estas de acuerdo y ves viable, colocar otro codigo, que sea (1)(2)(3).... numero de la curacion, no podría ser repetido, pero claro, si estan unidos... se le podría colocar (uni), o si se te ocurre una forma fácil de diferenciarlos .
 

Héctor Miguel

Well-known member
Normalmente soy yo quien genera los archivos pdf, pero cuando no hay tiempo me colaboran
como parte de un "sistema de normalizacion" de los datos, podria sugerir algo +/- como lo siguiente:

1) usar invariablemente un prefijo al crear los *.pdf que considere lo siguiente:
a) ddMMM(val) cambiando el final de "(val)" a "(cur)" segun se trate y de la carpeta donde se vaya a guardar
b) SIN espacios en ese prefijo, que el primer espacio separe del nombre (este si que va a tener varios espacios)

2) usar como sufijo el CCxxxxxx (que el ultimo espacio sea el delimitador del codigo
- o en su caso, que el separador entre nombre y codigo sea (tambien) un " _ " (guion bajo)
- asi se podria "liimpiar" si dentro del codigo (CCxxxxxx) se colara algun espacio de mas (?)

3) esto supone que dentro de las carpetas a (re)acomodar ("Valoraciones Agosto20" o "Curaciones para organizar agosto20")
- podrian existir varios codigos-paciente pero NUNCA dos sufijos iguales ("ddMMM(xyz)")
- a menos que en un mismo dia algun paciente reciba mas de una "valoracion" o "curacion" (?)

los 3 puntos anteriores pasarian a ser parte de un "procedimiento estandar"
- si solo lo llevas a cabo tu, no habra problemas
- si llegas a recibir colaboracion... (debieran apegarse al procedimiento ?)

si tienes ideas para resolver lo que se ha presentado (hasta ahora) ?... es buen momento para comentarlas
 

Akkar

Member
como parte de un "sistema de normalizacion" de los datos, podria sugerir algo +/- como lo siguiente:
Si estuve pensando en ello.

1) usar invariablemente un prefijo al crear los *.pdf que considere lo siguiente:
a) ddMMM(val) cambiando el final de "(val)" a "(cur)" segun se trate y de la carpeta donde se vaya a guardar
b) SIN espacios en ese prefijo, que el primer espacio separe del nombre (este si que va a tener varios espacios)
Me gusta ese sistema, y así tenemos opción nueva de búsqueda.
faltarían unos códigos: Nov, dep, hos, cov y si esta completo, no lleva fecha, podria ser 00AGO(com)

00AGO(com) Pepito los Palotes CC123456789
08AGO(val) Pepito los Palotes CC123456789
15AGO(cur) Pepito los Palotes CC123456789
18AGO(nov) Pepito los Palotes CC123456789
20AGO(hos) Pepito los Palotes CC123456789
24AGO(cov) Pepito los Palotes CC123456789
31AGO(dep) Pepito los Palotes CC123456789

2) usar como sufijo el CCxxxxxx (que el ultimo espacio sea el delimitador del codigo
- o en su caso, que el separador entre nombre y codigo sea (tambien) un " _ " (guion bajo)
- asi se podria "liimpiar" si dentro del codigo (CCxxxxxx) se colara algun espacio de mas (?)
Prefiero el espacio, no se como se podría limpiar eso

3) esto supone que dentro de las carpetas a (re)acomodar ("Valoraciones Agosto20" o "Curaciones para organizar agosto20")
- podrian existir varios codigos-paciente pero NUNCA dos sufijos iguales ("ddMMM(xyz)")
- a menos que en un mismo dia algun paciente reciba mas de una "valoracion" o "curacion" (?)
No es posible repetir curaciones el mismo día. Aunque los auxiliares a veces se equivocan y repiten fecha, pero eso es una de
las tareas que tengo que arreglar, y me toca editarlas. Así que no pasará

los 3 puntos anteriores pasarian a ser parte de un "procedimiento estandar"
- si solo lo llevas a cabo tu, no habra problemas
- si llegas a recibir colaboracion... (debieran apegarse al procedimiento ?)
No es problema eso

si tienes ideas para resolver lo que se ha presentado (hasta ahora) ?... es buen momento para comentarlas
Ideas a resolver, creo que estan todas dichas. Como mucho será que me expliques detalles de la macro, pero eso
pasará más adelante, porque están aun a un nivel extraterrestre para mi.
El detalle de todo esto era el espacio, el cual tengo que procurar no introducirlo, y si pasará, pues me tocaría manual
y el detalle de las repeticiones, pues creo que con el sistema dicho arriba, y seguramente, algo que tendrás que
añadir a la macro, quedará solucionado.
Lo aprendido estos días, es que si haces un buen trabajo desde el principio, te evitas sorpresas. Hablo de llevar un
sistema y no variarlo. (bueno también hacer fallos, nos hizo ver los posibles errores)

Voy a cambiar todos los nombres al nuevo sistema.

un saludo, y muchas gracias!
 

Akkar

Member
Listo, ya cambie todos los archivos al nuevo sistema :)
Que bonitos quedan así :)

Ya me cuadran las repeticiones, habían muchas valoraciones repetidas en ambas carpetas
 

Héctor Miguel

Well-known member
Ya me cuadran las repeticiones, habían muchas valoraciones repetidas en ambas carpetas
te comento algunas ventajas del "sistema" (que acabamos de inventarnos):

1) ahora que el prefijo avala la existencia de varios archivos-paciente.pdf por (re)organizar:
- no es necesaria la columna 4 del listObject ("tablaPacientes")
- mientras el prefijo ["ddMMM(xyz)"] NO se repita, no hay riesgo de sobre-escribir alguno

2) cambie el modelo-objeto para mover los archivos (ahora se mueven todos en un solo paso)

3) ese mismo prefijo ["ddMMM(xyz)"] podra ser utilizado para busquedas mas especializadas
(en otros procedimientos, segun sean requeridos y cuando se diseñe proposito y forma)

adjunto el nuevo modelo (com/probado)
- nombres inventados
- lineas de codigo con comentarios
 

Adjuntos

Akkar

Member
Estoy mirado primero la macro :)
y agradecerte por todo.

auxiliar = StrConv(Application.Trim(.DataBodyRange(n, 3)), vbProperCase)
' el nombre del "Paciente" encargado del paciente (columna 1 de la tabla) '
paciente = StrConv(Application.Trim(.DataBodyRange(n, 1)), vbProperCase)

esto hace días que queria comentarte

yo intente usarlo y no me salio, pero es para convertir en minusculas y el trim para los espacios(es la que me conocia)??
 

Héctor Miguel

Well-known member
sobre este error (dado que tu estructura de directorios seguro es diferente de la mia), solo te puedo comentar lo siguiente:

1) en tiempo de ejecucion lo causan instrucciones como Kill, Name, Open, ... (que no se estan usando en el nuevo modelo) ?
2) significa que un archivo al que se hace referencia no pudo ser encontrado
3) comprueba (o corrige) las referencias a carpetas en las constantes "tipo", "base", "curaciones", "valoraciones"

con respecto de tu mensaje previo:

1) StrConv(..., vbProperCase) es el equivalente en vba a la funcion de excel =NOMPROPIO(
2) Application.Trim es una llamada a la funcion de excel =ESPACIOS(...
- la diferencia entre Replace(... de vba es que =ESPACIOS(... elimina espacios "extra" en el medio del texto
 
Arriba