Nombres antiguos

23/11/2009 - 18:08 por Desastres | Informe spam
Hola.

Tengo un directorio que parece un bebedero de patos y quiero limpiarlo


Suponed un Formulario con :

una etiqueta = Quitar y junto un textBox Vacío( se pone lo que hay que quitar. En este caso
cualquiera de lo puesto entre comas en el textbox pedro Luis, Luís, pedro, luis, luís pedroluis,
pedroluí, pedro luis, de)

una etiqueta = PONER y junto un textBox Vació( se pone lo que hay que PONER aquí en este
caso "Luis_Pedro - " )

una etiqueta =Poner al principio y junto un opción botón

una etiqueta =Poner al final y junto un opción botón



una etiqueta ="Ordenar por" y junto un opción botón "Fecha"

una etiqueta =Poner al final y junto un opción botón "Tamaño"



Quisiera hacer algo como lo que digo a continuación , pero que mister Excel me entienda. Lo pongo
todo en castellano , por si algo no lo pongo bien



ChDir "E:\A\"

Supongamos que hay entre otros, 3 ficheros

a- "Factura 2009 de pedro Luis - José Carlos (2).xls""

b- "Luis_Pedro - Factura Jose Carlos "

c "Luis_Pedro - Factura Jose Carlos 1"


Nombre = ""

Nombre2 = ""
for bucle1= 1 to "numero de ficheros en este directorio"



Nombre= Al nombre que tenga el fichero

extensión = Nombre_del_Fichero menos desde el punto hasta el final ( .xls)

Nombre= Nombre - extensión



For bucle2 = 1 To len(nombre)

1º) Quita los números

2º) Quita lo que pone en el textbos asociado a la etiqueta QUITAR

3º) Quita los dobles espacios

4º) Quita cualquier carácter que no se una letra

5º) Quita letras acentuadas

6º) Quita el ultimo carácter si es un espacio

7º) Crea "Nuevo Nombre" con lo que quede.

Next bucle 2

A este "Nuevo Nombre" añadirle (según el botón de opción seleccionado, al principio o al
final , el textbox PONER (supongamos que es al principio)

(aquí debe quedar) Nombre2 = "Luis_Pedro - Factura Jose Carlos"

Si en el directorio existe Nombre2 entonces Nombre2 = Nombre2 & " 1" (u otro numero,
siempre de uno en uno (2,3,4,5,6,7,8)Limite el numero ficheros del directorio

es decir en este caso Nombre2= "Luis_Pedro - Factura Jose Carlos 2" (Si, como en este
caso hay varios "Luis_Pedro - Factura Jose Carlos " que los ordenara por fecha o tamaño

next bucle

Nombre2 = Nombre2 & Extensión

guardar Nombre2

Borrar "Factura 2009 de Pedro Luis - José Carlos (2).xls" ( el Nombre del que partimos, en el
directorio)

terminar con esta locura.


Agradecería una mano.

Alguna cosa se hacer. pero lo relativo a directorios, contaje, búsqueda de partes y su sustitución,
así como nombrar con números ascendentes dependiendo de la fecha, no está a mi alcance


Saludos y ... Excel entes vibraciones
Des As Tres No imprimas, ganemos un árbol... o tres hojinas.
 

Leer las respuestas

#1 Héctor Miguel
24/11/2009 - 07:35 | Informe spam
hola, Des !

Tengo un directorio que parece un bebedero de patos y quiero limpiarlo
Suponed un Formulario con :
una etiqueta = Quitar y junto un textBox Vacio (se pone lo que hay que quitar.
En este caso cualquiera de lo puesto entre comas en el textbox pedro Luis, Luís, pedro, luis, luís pedroluis, pedroluí, pedro luis, de)
una etiqueta = PONER y junto un textBox Vacio (se pone lo que hay que PONER aqui en este caso "Luis_Pedro - ")
una etiqueta =Poner al principio y junto un opcion boton
una etiqueta =Poner al final y junto un opcion boton
una etiqueta ="Ordenar por" y junto un opcion boton "Fecha"
una etiqueta =Poner al final y junto un opcion boton "Tamaño"
Quisiera hacer algo como lo que digo a continuacion, pero que mister Excel me entienda.
Lo pongo todo en castellano, por si algo no lo pongo bien (...)



partiendo de lo que se pondria en el textbox "Quitar" y del ejemplo de supuestos archivos en el directorio:
a) que se esperaria que haga esta macro...
si en lugar de existir el primero de los archivos: "Factura 2009 de pedro Luis - José Carlos (2).xls"
se encuentra con otro "similar" que se llamara: "Factura 2009 de pedro Luis - Luis Carlos.xls" (???)
b) aceptarias que el codigo de la macro (con nula intervencion del usuario)...
lo cambie a: "Luis_Pedro - Factura Carlos.xls"
en lugar de: "Luis_Pedro - Factura Luis Carlos.xls" (???)

(hay mas...)

saludos,
hector.

__ resto de OP __
ChDir "E:\A\"
Supongamos que hay entre otros, 3 ficheros
a- "Factura 2009 de pedro Luis - José Carlos (2).xls"
b- "Luis_Pedro - Factura Jose Carlos "
c- "Luis_Pedro - Factura Jose Carlos 1"
Nombre = ""
Nombre2 = ""
for bucle1= 1 to "numero de ficheros en este directorio"
Nombre= Al nombre que tenga el fichero
extension = Nombre_del_Fichero menos desde el punto hasta el final ( .xls)
Nombre = Nombre - extension
For bucle2 = 1 To len(nombre)
1) Quita los números
2) Quita lo que pone en el textbos asociado a la etiqueta QUITAR
3) Quita los dobles espacios
4) Quita cualquier carácter que no se una letra
5) Quita letras acentuadas
6) Quita el ultimo carácter si es un espacio
7) Crea "Nuevo Nombre" con lo que quede.
Next bucle 2
A este "Nuevo Nombre" añadirle (segun el boton de opcion seleccionado, al principio o al final
el textbox PONER (supongamos que es al principio)
(aquí debe quedar) Nombre2 = "Luis_Pedro - Factura Jose Carlos"
Si en el directorio existe Nombre2 entonces Nombre2 = Nombre2 & " 1" (u otro numero
siempre de uno en uno (2,3,4,5,6,7,8) Limite el numero ficheros del directorio
es decir en este caso Nombre2= "Luis_Pedro - Factura Jose Carlos 2"
(Si, como en este caso hay varios "Luis_Pedro - Factura Jose Carlos " que los ordenara por fecha o tamaño
next bucle
Nombre2 = Nombre2 & Extensión
guardar Nombre2
Borrar "Factura 2009 de Pedro Luis - José Carlos (2).xls" (el Nombre del que partimos, en el directorio)
terminar con esta locura.

Agradecería una mano.
Alguna cosa se hacer. pero lo relativo a directorios, contaje, busqueda de partes y su sustitucion
asi como nombrar con numeros ascendentes dependiendo de la fecha, no esta a mi alcance

Preguntas similares