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.

Preguntas similare

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
Respuesta Responder a este mensaje
#2 Desastres
24/11/2009 - 17:59 | Informe spam
Hola Héctor.Gracias.
Todos los nombres que di en el planteamiento, son ficticios pero, aunque extraordinariamente raros,
posibles. Para ser un paso más real supón, antes de seguir sobre el correo anterior
A)-(un proveedor) Fabricas Asociadas de Muñecas de Onil Sociedad Anónima (Empresa real y legal) es
un poco largo verdad?, Por ejemplo, puede sustituir a Pedro Luís y que sustituiré, si fuera el caso,
en un primer paso por FAMOSA (Proveedor Nº1 Y contablemente el 40000001) y luego por 00001
B-Centre Comercial El Pardillo de Aranjuez (Empresa ficticia, pero hay alguna de nombre más largo,
en este caso Pudiera se Jose Carlos) ( es el cliente 425 y contablemente el 43000425. Luego 00425
Al principio intentaba clarificarlo todo en una primera ojeada.
Imagina este nombre de archivo, y/o descripción en un siento contable:
Factura 2009 de fecha 12-01-2008 de Fabricas Asociadas de Muñecas de Onil Sociedad Anónima a Centre
Comercial El Pardillo de Aranjuez
Al final si lo hago bien, y no cambio de opinión, ni meto la pata demasiado, llegaré a:
08011205000020090000100425-45257,12?
Donde: Para un caso de representación
080112= Fecha
05 =el tipo de documento
00002009= nº de documento
00001 = el proveedor
00425= el cliente
45257,12= el importe ( esto lo tengo más verde) y aún no decidido. Porque para hacer el cambio
tendría que abrir libro a libro y no todos lo tienen en el mismo lugar absoluto (F12), por lo que
automatizarlo, sería casi imposible

Tienes razón. Como ves hay algo más.
Básicamente dos. ( de momento)
1ª) Que los nombres no son para nada uniformes.Lo tendré que aplicar yo( porque conozco lo que hay)
en BASTANTES pasadas y aún así meteré la pata. Seguro.( otra alternativa seria subir los datos
mediante un bucle, de uno en uno, a un formulario con bastantes más campos, abrir el fichero
simultáneamente y poner la cantidad manualmente o decir donde está), lacoñapuntocom
Tener todo en cuenta, para mi tête, es casi imposible. Hay ficheros bastante dispares como:
Factura 2009 pedro Luis - José Carlos ( Todos los nombres son ficticios pero posibles)
Factura 2009 de pedro Luis a José Carlos
25-1-2008 Factura 2009 de pedro Luis a José Carlos
2512008 Factura 2009 de pedro Luis a José Carlos ( aquí el mes no es 01 sino 1)
25012008 Factura 2009 de pedro Luis a José Carlos
2008-01-25 Factura 2009 de pedro Luis a José Carlos
20080125 Factura 2009 de pedro Luis a José Carlos
nf-2009-1 (en este caso yo sé QUIEN es 1, Representa a una empresa).
d1a425f2009 ( del Proveedor 1 al cliente 425, factura 2009)

sustituye los nombres, por los del inicio del pos y te datas una idea del batiburrillo
un cognazo, o un buen ejercicio de concentración. Según se mire.
2º) de lo que vea en el código, si lo tuviera, aprendería a:

-Contar ficheros en un directorio
-abrirlo secuencialmente
-ver cual es el carácter ASCII de los acentos y ver como se utiliza, o el tratamiento que se le
da
-ver si al espacio " " le tratas así o por su código ASCII
- lo mismo para los dobles espacios
-Sacar la fecha de ultima actualización(creación) de un fichero (aunque releyendo no lo expliqué
nada bien
-Sacar el tamaño del fichero de la ultima actualización(creación) ( si es posible) (aunque
releyendo no lo expliqué nada bien
-dado que casi nunca utilizo funciones de hoja de calculo (para este caso mayúsculas
minúsculas), aprender a tratar las cadenas como sucesiones de código ASCII, lo que me permitiría
pasar mayúsculas a minúsculas y viceversa ( ( si se pudiera decir): si keyascii>65 y keyascii <90
entonces key ascii= keyascii + 32
.

Como ya has visto, no voy a aplicar el procedimiento tal y como esta descrito, porque si lo hiciera
seria perder muchos datos y el sentido.Solo es una forma de aprender procesos. Iría condicionada a
más botones de opción no indicados en el planteamiento
( uno de los primeros pasos que pensaba dar no es el de borrar números( borraría las fecha) sino
cambiar estos . Por ejemplo por 2008 poner la cadena "dosmilocho" ( en cada directorio solo hay,
salvo excepciones, datos de un año)

En respuesta a tus interrogaciones:
El caso de Luis Carlos, que indicas, sería uno de los que dieran problemas, aunque sería muy, muy,
muy poco frecuente( al final abrir el fichero, ver, cerrar y cambiar)
El usuario tendré que ser yo, por que no veo todas las variables ( hay errores producidos al guardar
los libros que no he contemplado, por lo que crearían un paso intermedio para ser sustituidos por
...según viera)

Sé que es confuso, pero es lo que he sido capaz de ir haciendo.
Se sigue necesitando ayuda y si además vienen ideas... mejor que mejor.

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

"Héctor Miguel" escribió en el mensaje
news:
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


Respuesta Responder a este mensaje
#3 Héctor Miguel
25/11/2009 - 02:15 | Informe spam
hola, Des !

Imagina este nombre de archivo, y/o descripcion en un siento contable:
Factura 2009 de fecha 12-01-2008 de Fabricas Asociadas de Muñecas de Onil Sociedad Anonima a Centre Comercial El Pardillo de Aranjuez
Al final si lo hago bien, y no cambio de opinion, ni meto la pata demasiado, llegare a: 08011205000020090000100425-45257,12? ...
... para hacer el cambio... abrir libro a libro y no todos lo tienen en el mismo lugar... (F12), por lo que automatizarlo, seria casi imposible



(por lo pronto) los nombres largos, sin perder de vista que "el largo total" (ruta y archivo) no debera exceder de 255 caracteres
(en mi opinin) no son mas "descriptivos" segun lo kilometricos que los puedas conseguir, si no lo descriptivos que los puedas "acortar"

Tienes razon. Como ves hay algo mas. Basicamente dos. ( de momento)
1) Que los nombres no son para nada uniformes. Lo tendré que aplicar yo (porque conozco lo que hay)...
2) de lo que vea en el codigo, si lo tuviera, aprenderia a: (...)



(definitivamente) para todo lo que pides existen (o se pueden encontrar/desarrollar/...) alternativas de (posible) solucion ;)
el detalle estaria en encontrar el conjunto y la combinacion "adecuada" para lograr dar orden a tan "dispar" de variedades (???)
y como bien ya lo mencionas al fina de este mensaje...
___
Como ya has visto, no voy a aplicar el procedimiento tal y como esta descrito, porque si lo hiciera seria perder muchos datos y el sentido.
Solo es una forma de aprender procesos. Iria condicionada a mas botones de opcion no indicados en el planteamiento ...


¨¨¨¨¨
con relacion a esta parte de tu consulta:
___
-Contar ficheros en un directorio
-abrirlo secuencialmente
-ver cual es el caracter ASCII de los acentos y ver como se utiliza, o el tratamiento que se le da
-ver si al espacio " " le tratas asi o por su codigo ASCII
- lo mismo para los dobles espacios
-Sacar la fecha de ultima actualizacion (creacion) de un fichero (aunque releyendo no lo explique nada bien)
-Sacar el tamaño del fichero de la ultima actualizacion (creacion) (si es posible) (aunque releyendo no lo explique nada bien
-dado que casi nunca utilizo funciones de hoja de calculo (para este caso mayusculas minusculas)
aprender a tratar las cadenas como sucesiones de codigo ASCII, lo que me permitiria pasar mayusculas a minusculas y viceversa
(si se pudiera decir): si keyascii>65 y keyascii <90 entonces key ascii= keyascii + 32


¨¨¨¨¨
gran parte de estas inquietudes son de posible solucion incluso sin el uso de vba (simples nombres y funciones de hoja de calculo)
exceptuando (obviamente) la apertura y el cambio de nombres de los archivos y.. si al final de cuentas
lo que piensas hacer es "revisar a ojo de buen cubero" que cabios le corresponden (o le quedan) a cada uno de los archivos
(creo que) lo mas sano es obtener un listado de los archivos de "X" directorio en una hoja y determinar (escribir) las modificaciones (?)

saludos,
hector.
Respuesta Responder a este mensaje
#4 Desastres
25/11/2009 - 14:53 | Informe spam
Hola Héctor. Gracias.
No es mala idea.
Fue la primera que se me ocurrió, pero tardaría paun ratito.
Cerca de 100 directorios y mas de 6000 ficheros ( en un solo caso) dan para entretenerse.
Lo intentaré con código.
Si puedes facilitar ayuda sobre:
-Contar ficheros en un directorio y abrirlo secuencialmente
-ver añadir o quitar a las cadenas caracteres ASCII , no letras
-Sacar la fecha y el tamaño del nombre de un fichero
se agradecerá.
Saludos y ... Excel entes vibraciones
Des As Tres No imprimas, ganemos un árbol... o tres hojinas.

"Héctor Miguel" escribió en el mensaje
news:
hola, Des !

> Imagina este nombre de archivo, y/o descripcion en un siento contable:
> Factura 2009 de fecha 12-01-2008 de Fabricas Asociadas de Muñecas de Onil Sociedad Anonima a


Centre Comercial El Pardillo de Aranjuez
> Al final si lo hago bien, y no cambio de opinion, ni meto la pata demasiado, llegare a:


08011205000020090000100425-45257,12? ...
> ... para hacer el cambio... abrir libro a libro y no todos lo tienen en el mismo lugar... (F12),


por lo que automatizarlo, seria casi imposible

(por lo pronto) los nombres largos, sin perder de vista que "el largo total" (ruta y archivo) no


debera exceder de 255 caracteres
(en mi opinin) no son mas "descriptivos" segun lo kilometricos que los puedas conseguir, si no lo


descriptivos que los puedas "acortar"

> Tienes razon. Como ves hay algo mas. Basicamente dos. ( de momento)
> 1) Que los nombres no son para nada uniformes. Lo tendré que aplicar yo (porque conozco lo que


hay)...
> 2) de lo que vea en el codigo, si lo tuviera, aprenderia a: (...)

(definitivamente) para todo lo que pides existen (o se pueden encontrar/desarrollar/...)


alternativas de (posible) solucion ;)
el detalle estaria en encontrar el conjunto y la combinacion "adecuada" para lograr dar orden a


tan "dispar" de variedades (???)
y como bien ya lo mencionas al fina de este mensaje...
___
> Como ya has visto, no voy a aplicar el procedimiento tal y como esta descrito, porque si lo


hiciera seria perder muchos datos y el sentido.
> Solo es una forma de aprender procesos. Iria condicionada a mas botones de opcion no indicados


en el planteamiento ...
¨¨¨¨¨
con relacion a esta parte de tu consulta:
___
> -Contar ficheros en un directorio
> -abrirlo secuencialmente
> -ver cual es el caracter ASCII de los acentos y ver como se utiliza, o el tratamiento que se


le da
> -ver si al espacio " " le tratas asi o por su codigo ASCII
> - lo mismo para los dobles espacios
> -Sacar la fecha de ultima actualizacion (creacion) de un fichero (aunque releyendo no lo


explique nada bien)
> -Sacar el tamaño del fichero de la ultima actualizacion (creacion) (si es posible) (aunque


releyendo no lo explique nada bien
> -dado que casi nunca utilizo funciones de hoja de calculo (para este caso mayusculas


minusculas)
> aprender a tratar las cadenas como sucesiones de codigo ASCII, lo que me permitiria pasar


mayusculas a minusculas y viceversa
> (si se pudiera decir): si keyascii>65 y keyascii <90 entonces key ascii= keyascii + 32
¨¨¨¨¨
gran parte de estas inquietudes son de posible solucion incluso sin el uso de vba (simples nombres


y funciones de hoja de calculo)

exceptuando (obviamente) la apertura y el cambio de nombres de los archivos y.. si al final de


cuentas
lo que piensas hacer es "revisar a ojo de buen cubero" que cabios le corresponden (o le quedan) a


cada uno de los archivos
(creo que) lo mas sano es obtener un listado de los archivos de "X" directorio en una hoja y


determinar (escribir) las modificaciones (?)

saludos,
hector.


Respuesta Responder a este mensaje
#5 Héctor Miguel
27/11/2009 - 07:04 | Informe spam
hola, Des !

Si puedes facilitar ayuda sobre:
-Contar ficheros en un directorio y abrirlo secuencialmente
-ver añadir o quitar a las cadenas caracteres ASCII , no letras
-Sacar la fecha y el tamaño del nombre de un fichero



el siguiente mensaje es un pelin largo (asi que te armas de paciencia, ok ?)
y si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.

-Contar ficheros en un directorio y abrirlo secuencialmente

1) si los vas a abrir... no se cual seria la intencion de "contarlos" (?)

- contarlos (de la forma mas sencilla que se me ocurre)

Sub Cuenta_archivos()
Dim Directorio As String, Tipo As String, Fichero As String
Directorio = "c:\mis documentos\"
Tipo = "*.xls"
MsgBox ExecuteExcel4Macro("counta(files(""" & Directorio & Tipo & """))")
End Sub

- abrirlos (uno por uno, los "trabajas", y LOS CIERRAS)

Sub Abrir_archivos_en()
Dim Directorio As String, Tipo As String, Fichero As String
Directorio = "c:\mis documentos\" ' <= AJUSTA
Tipo = "*.xls"
Archivo = Dir(Directorio & Tipo)
Do While Archivo <> ""
Workbooks.Open Ruta & Archivo
' aqui "trabajas con cada archivo Y LO CIERRAS... '
Workbooks(Archivo).Close SaveChanges:=False ' o True ??? '
Archivo = Dir()
Loop
End Sub

-ver anadir o quitar a las cadenas caracteres ASCII , no letras

2) para esta parte, una posible solucion (sencilla) pudiera ser el uso de expresiones regulares
dependiendo de como necesites "validar" algunos otros caracteres (espacios, guiones, puntos, ???)
por si puedes apuntar algunos detalles mas concretos ?

-Sacar la fecha y el tamano del nombre de un fichero

3) prueba con una macro +/- como la siguiente (en un directorio de pocos archivos)

Sub Muestra_fechas_y_tamano()
Application.ScreenUpdating = False
Dim Msj As String, Ruta As String, Tipo As String, Archivo As String, _
Last As String, Fecha As Date, Hora As Date, Tamano As String
Msj = "Modificado (fecha y hora):" & vbTab & "Tamaño (Kb):" & vbTab & "Nombre archivo:"
Ruta = "c:\mis documentos\" ' <= AJUSTA
Tipo = "*.xls"
Archivo = Dir(Ruta & Tipo)
Do While Archivo <> ""
Last = FileDateTime(Ruta & Archivo)
Fecha = Left(Last, InStr(Last, " ") - 1)
Hora = Mid(Last, InStr(Last, " ") + 1)
Tamano = Format(FileLen(Ruta & Archivo) / 1024, "#,##0.0") & " Kb"
Msj = Msj & vbCr & Fecha & vbTab & Hora & vbTab & Tamano & vbTab & Archivo
Archivo = Dir()
Loop
MsgBox Msj
End Sub

esta es otra forma de obtener diversos atributos de los archivos en una carpeta:
(que puedes adaptar para otras necesidades)...
1) toma la carpeta predeterminada que pongas en 'A1' (p.e. -> c:uta y\sub-carpeta)
2) pone en el rango 'A2:E2' los titulos para algunos de los atributos de los archivos
3) a partir de la fila 3, vacia los nombres de los archivos que se encuentren (y sus atributos)

Sub LIsta_de_archivos()
Application.ScreenUpdating = False
Dim Carpeta As String: Carpeta = Range("a1"): Cells.Clear
Range("a2:e2") = Array("Ruta", "Nombre", "Tamaño", "Modificado", "Tipo")
Listar_archivos_en Carpeta, True
End Sub

Sub Listar_archivos_en(Carpeta As String, Completo As Boolean)
Dim Archivo, SubCarpeta, Fila As Long
Fila = Range("a65536").End(xlUp).Row + 1
With CreateObject("scripting.filesystemobject")
With .GetFolder(Carpeta)
For Each Archivo In .Files
With Archivo
Range("a" & Fila & ":e" & Fila) = Array( _
Application.Substitute(.Path, .Name, ""), .Name, .Size, .DateLastModified, .Type)
End With
Fila = Fila + 1
Next
If Completo Then
For Each SubCarpeta In .SubFolders
Listar_archivos_en SubCarpeta.Path, True
Next
End If
End With
End With
Range("a1:e1").EntireColumn.AutoFit
Range("a1") = Carpeta
Debug.Print ActiveSheet.UsedRange.Address
End Sub
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida