Hola a todos:
En mi empresa nos ha surgido la necesidad de renombrar muchos
ficheros .tif, sustituyendo el nombre genérico que aparece por el
valor de las celdas de la primera columna de un fichero de Excel, por
lo que me creé una macro en VBA que resolviera la papeleta
En un principio todo parecía correcto, pero cuando probamos en detalle
con los usuarios, me he encontrado que sólo renombra correctamente los
ficheros cuyo nombre original es texto, mientras que si el nombre
original es un número, el programa entra una vez más en el bucle.
Estoy desesperado, no entiendo por qué actúa así, por lo que os
adjunto el código para ver si alguien pudiera echarme una mano.
Sub prueba4() ' Modificación del nombre de un fichero en una carpeta
Dim miruta As String
Dim minombre As String
Dim contador As Integer
miruta = "c:\prueba\*.tif" ' Carpeta donde estan
almacenados los ficheros .tif
minombre = Dir(miruta, vbArchive) ' capturo el primer archivo .tif
contador = 0
Do While minombre <> ""
Name "c:\prueba\" & minombre As "c:\prueba\" & ActiveCell.Value &
".tif" ' renombro el fichero al valor de la celda activa
contador = contador + 1
ActiveCell.Offset(1, 0).Select ' Me desplazo a la celda de
abajo
minombre = Dir ' Capturo el siguiente
fichero .tif
Loop
MsgBox contador ' Cuando ya no hay más
ficheros, miro cuantos se han renombrado.
End Sub
El código lo tengo insertado en un fichero cuya primera columna
contendría los valores que sería el nuevo nombre del fichero (ese
nombre es lo de menos, por ejemplo podrían ser las letras del
abecedario).
Si observáis, el código recoge el nombre del primer fichero contenido
en la carpeta prueba que tiene extensión .tif, y al entrar en el
bucle, sustituye el nombre original del fichero por el valor de la
celda activa, seguidamente se desplaza una celda abajo y pasa a
renombrar el segundo fichero .tif de la carpeta, y así sucesivamente.
Pues bién, si os creáis un pequeño fichero y probáis el código con
tres o cuatro imágenes .tif, observaréis que, si el nombre original de
esos ficheros .tif es texto, las veces que el programa entra en el
bucle son correctas, mientras que si el nombre original de los
ficheros es númerico (como ocurre en mi empresa), el programa entrará
una vez más de las necesarias en el bucle y, en consecuencia lo
renombrará mal.
Y por más que lo miro, reviso, pruebo, no entiendo por qué c... se
comporta así.
Por favor, si alguien pudiera ayudarme le estaría muy agradecido..
Un saludo y muchas gracias por anticipado.
Leer las respuestas