Excel - vba o macro==??

 
Vista:

vba o macro==??

Publicado por jeshua (8 intervenciones) el 23/07/2007 23:41:19
Hola, foristas!
tengo un problema que no se como resolver espero me puedan ayudar,,, tengo una carpeta con x archivos en excel,,. y lo que necesito es renombrarlos...ponerles un nombre seguido de un numero consecutivo... lo quise hacer con codigo vb pero no tengo idea de que instrucciones utilizar.. si alguien tiene alguna sugerencia o comentario se lo agradeceria mucho..

Saludos!!

Jeshua
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

RE:vba o macro==??

Publicado por frany (62 intervenciones) el 26/07/2007 21:09:05
A que te refieres con renombrarlos.

Ponerles a todos los archivos el mismo nombre y con un indice al final de dicho nombre que sea incremental?

Hice algo parececido para ordenar fotos lo mismo el codigo te puede servir variandolo un poco. Prueba a cambiar *.jpg por *.xls

Esta rutina asigna la fecha de creacion del archivo y un nombre si quieres ( que es unico para todos los archivos)

Para que funcione correctamente deberas crearte una carpeta que contenga los archivos de excel , alli mismo deberas tener el archivo ejecutable de excel donde pongas esta macro, dentro de esa carpeta deberas crear una carpeta que se llame ORDENADOS.

Como te dije esto es para fotos, y la verdad que tendras que adaptar algo ya que me parece que te daria un error al tener tus archivos excel en la misma carpeta que el libro con esta macro.

La rutina principal es BUSQUEDA a la cual la llamas desde excel con ejecucion de macros o creandote un boton para ello.

SUERTE

Public larchivo
Public modificado As Date
Public nnombre As String


Sub busqueda()
Dim fecha As String
Dim final As String
Dim indice As String
Dim longitudarchivo
Dim prefijo As String

prefijo = InputBox("Prefijo?")
Set fs = Application.FileSearch
With fs
carpeta = .Application.ActiveWorkbook.Path
.LookIn = carpeta
.SearchSubFolders = False
.Filename = "*.jpg"
If .Execute(SortBy:=msoSortByLastModified, SortOrder:=msoSortOrderAscending, AlwaysAccurate:=True) > 0 Then

MsgBox "There were " & .FoundFiles.Count & _
" file(s) found."
For i = 1 To .FoundFiles.Count
fichero = .FoundFiles(i)
ShowFile (fichero)
fin = Right(fichero, larchivo)
longitud = Len(fichero)
inicio = Left(fichero, longitud - larchivo)
indice = i
numero = indice / 10000
fin1 = Format(numero, "###.0000")
fin2 = Right(fin1, 4)

NombreViejo = fichero: NombreNuevo = carpeta & "\ordenados\" + prefijo + nnombre + "_" + fin2 + ".jpg"

Name NombreViejo As NombreNuevo

Next i
Else
MsgBox "There were no files found."
End If
End With

End Sub

Sub ShowFile(fichero)
Dim fs, f, s
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFile(fichero)

modificado = f.DateLastModified
nnombre = Format(modificado, "yyyy mm dd")

larchivo = Len(f.Name)

End Sub
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