Besoin d'aide VBA renommer des fichier

Résolu/Fermé
west-c Messages postés 17 Date d'inscription lundi 2 juillet 2007 Statut Membre Dernière intervention 19 mai 2010 - 3 janv. 2008 à 09:49
west-c Messages postés 17 Date d'inscription lundi 2 juillet 2007 Statut Membre Dernière intervention 19 mai 2010 - 3 janv. 2008 à 15:39
Bonjour tout le monde,
Bonne année, et tout mes meilleurs voeux pour 2008.

Je dois fair un programme en vba sous Excel qui permet de copié et de renommer des fichiers (photos).
Je possède dans la colonne L les noms des photos, et dans la colonne M les nouveaux noms que je dois leur attribuées.
Ce dossier se trouve sur le résaux.
J'ai commencé quelque chose mais sa ne marche pas. Quelqu'un peut-il m'aider?
Ai-je utilisé la melleur méthode?
J'ai due fair bcp d'erreur je pense.


Je suis allé cocher dans Outils, Références, « Microsoft Scripting Runtime »


Sub renommer_photo()

'déclaration des variables

Dim ancien_nom As String 'va enregistrer l'ancien nom de la photo
Dim nouveau_nom As String 'va enregistrer le nouveau nom de la photo
Dim i As Integer
Dim dernligne As Integer 'cette variable va rechercher la derniere ligne du tableau
Dim j As Integer
Dim oFSO As Scripting.FileSystemObject
Dim oDrv As Scripting.Drive
Dim oFld As Folder
Dim oFl As Scripting.File


Sheets("Feuil1").Select

'recherche de la derniere ligne

i = 1
Cells(i, 12).Select
Do
i = i + 1
Loop Until Cells(i, 12) = "" And Cells(i + 1, 12) = "" And Cells(i + 2, 12) = ""
dernligne = i - 1


'Instanciation du FSO
Set oFSO = New Scripting.FileSystemObject

'enregistrement des noms (ancien et nouveau) de la photo en renomme les fichiers
For j = 2 To dernligne
ancien_nom = Cells(j, 12).Value & ".eps" '.eps est l'extansion de la photo
nouveau_nom = Cells(j, 13).Value & ".eps"

'Instanciation de l'objet File
If oFSO.FileExists("U:\Images2\" & ancien_nom) Then
Set oFl = oFSO.GetFile("U:\Images2\" & ancien_nom)
End If

'copie du fichier
oFl.Copy "U:\image_renomée2\" & nouveau_nom, True

Next j

End Sub


Merci pour votre aide!
Et encor bonne année !
A voir également:

26 réponses

Je suis allé voir la photo et le nom de la photo commence pas un espace
C'était peut-être celui du répertoire qui se terminait par un espace...

ce n'est pas moi qui est nommé les photos
Mais c'est toi qui m'avait déjà dit plus haut qu'il n'y avait pas d'espace. grrrr :-)

Pour recopier un fichier utilise FileCopy. Note que Name permet aussi de déplacer un fichier en le renommant
0
west-c Messages postés 17 Date d'inscription lundi 2 juillet 2007 Statut Membre Dernière intervention 19 mai 2010 1
3 janv. 2008 à 15:10
Oui dsl j'ai seulement verifié si il y avait un espace après mais c'est vrai que j'ai pas verifié si il y en avait un avant (sa me semblait logique qu'il y en ai pas).

Une derniere question, sais-tu comment je peut faire pour supprimer cet espace en trop a l'aide d'un code vba?

En tout cas merci bcp tu m'as bcp aidé!
0
pas testé :

rep$="u:\images2\"
a$= dir(rep$ & "*.*")

while a$<>""
if left$(a$=" ") then Name rep$ & a$ as rep$ & mid$(a$,2)
wend
0
west-c Messages postés 17 Date d'inscription lundi 2 juillet 2007 Statut Membre Dernière intervention 19 mai 2010 1
3 janv. 2008 à 15:19
Merci bcp !!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
hum, hum, beaucoup d'erreurs...

rep$="u:\images2\"
a$= dir(rep$ & "*.*")
while a$<>""
if left$(a$,1)=" " then Name rep$ & a$ as rep$ & mid$(a$,2)
a$=dir
wend
0
west-c Messages postés 17 Date d'inscription lundi 2 juillet 2007 Statut Membre Dernière intervention 19 mai 2010 1
3 janv. 2008 à 15:39
ok c'est noté merci.
0