Modifier nom d'une image dans un dossier à partir de excel

juliensav

XLDnaute Junior
Bonjour à tous,

J'ai un petit projet et j'aimerais connaître si cela est faisable.

Dans mon classeur, j'ai environ 5000 produits
Colonne A : #de produit
Colonne B : Nom du fichier de l'image existante -- exemple : 123.jpg
Les images sont situés dans un document sur mon ordinateur.
Colonne C : Le nom du fichier que j'aimerais donner à l'image : produit_en_acier_123.jpg
Le nom en C varie d'un produit à l'autre.

Est-ce quelqu'un pourrait me dire comment faire si c'est faisable.

Je vous remercie d'avance.
 

camarchepas

XLDnaute Barbatruc
Re : Modifier nom d'une image dans un dossier à partir de excel

Bonjour,

Oui , ça vole, euk , oui c'est possible

Il faut juste une table d'équivalence quelque part , ou une méthode de construction
l'on suppose avoir dans un onglet references le nom de l'ancienne image et dans la colonne à coté le nom de la nouvelle
le principe

Code:
dim Ancien as string , Nouveau as string
dim Trouve as range
Dim Repertoire as string 
Repertoire ="c:\dossier\Images"
Ancien =dir(Repertoire )
Do until Ancien <>""
 set trouve = sheets("References").range("B:B").find(ancien, lookat;=xlwhole)
 if not trouve is nothing then 
  nouveau = trouve.offset(0,1)
 name Repertoire & ancien as Repertoire & nouveau
 end if
Ancien =dir
loop
 
Dernière édition:

juliensav

XLDnaute Junior
Re : Modifier nom d'une image dans un dossier à partir de excel

Salut,

Un énorme merci de m'avoir répondu.

J'ai essayé votre formule et de mon côté ca ne fonctionne pas. J'ai crée dans le C un dossier "dossier" et dans dossier "Images" : C:\dossier\Images

J'ai mis en pièce jointe un exemple du fichier que j'ai avec la formule inséré. Je ne maitrise vraiment pas ce genre de formule....

Etes vous en mesure de me guider svp

Merci

Bonjour,

Oui , ça vole, euk , oui c'est possible

Il faut juste une table d'équivalence quelque part , ou une méthode de construction
l'on suppose avoir dans un onglet references le nom de l'ancienne image et dans la colonne à coté le nom de la nouvelle
le principe

Code:
dim Ancien as string , Nouveau as string
dim Trouve as range
Dim Repertoire as string 
Repertoire ="c:\dossier\Images"
Ancien =dir(Repertoire )
Do until Ancien <>""
 set trouve = sheets("References").range("B:B").find(ancien, lookat;=xlwhole)
 if not trouve is nothing then 
  nouveau = trouve.offset(0,1)
 name Repertoire & ancien as Repertoire & nouveau
 end if
Ancien =dir
loop
 

Pièces jointes

  • image nom.xls
    37 KB · Affichages: 25
  • image nom.xls
    37 KB · Affichages: 31
  • image nom.xls
    37 KB · Affichages: 34
Dernière édition:

camarchepas

XLDnaute Barbatruc
Re : Modifier nom d'une image dans un dossier à partir de excel

bonjour ,
et oui , il faut malgré tout en faire une routine ,
J'ai apporté quelques corrections .

Quelques indices me font croire que tu es sous MAC ??????


Code:
Sub Renomme()
Dim Ancien As String, Nouveau As String
Dim Trouve As range
Dim Repertoire As String
Repertoire = "c:\dossier\Images\"
Ancien = Dir(Repertoire)
Do Until Ancien <> ""
 Set Trouve = sheets("References").range("B:B").find(Ancien, lookat:=xlWhole)
 If Not Trouve Is Nothing Then
  Nouveau = Trouve.Offset(0, 1)
 Name Repertoire & Ancien As Repertoire & Nouveau
 End If
Ancien = Dir
Loop
End Sub
 

juliensav

XLDnaute Junior
Re : Modifier nom d'une image dans un dossier à partir de excel

Désolé d'encore une fois vous déranger...J'ai ajouté la formule à mon fichier, mais je n'ai vraiment aucune connaissance dans ce domaine...j'ai remis le fichier en pièce jointe.

Effectivement je suis sur mac, mais cette manipulation je la fais sur pc.

A première vue, êtes vous en mesure de me dire ce qui cloche dans mon fichier ?

Encore un énorme merci.


bonjour ,
et oui , il faut malgré tout en faire une routine ,
J'ai apporté quelques corrections .

Quelques indices me font croire que tu es sous MAC ??????


Code:
Sub Renomme()
Dim Ancien As String, Nouveau As String
Dim Trouve As range
Dim Repertoire As String
Repertoire = "c:\dossier\Images\"
Ancien = Dir(Repertoire)
Do Until Ancien <> ""
 Set Trouve = sheets("References").range("B:B").find(Ancien, lookat:=xlWhole)
 If Not Trouve Is Nothing Then
  Nouveau = Trouve.Offset(0, 1)
 Name Repertoire & Ancien As Repertoire & Nouveau
 End If
Ancien = Dir
Loop
End Sub
 

camarchepas

XLDnaute Barbatruc
Re : Modifier nom d'une image dans un dossier à partir de excel

Ok ,

Alors voici le fichier un peu transformé par rapport à mon idée d'origine
 

Pièces jointes

  • image nom.xls
    38.5 KB · Affichages: 41
  • image nom.xls
    38.5 KB · Affichages: 47
  • image nom.xls
    38.5 KB · Affichages: 52

juliensav

XLDnaute Junior
Re : Modifier nom d'une image dans un dossier à partir de excel

Wow merci de ton temps... vs êtes un chic type !

Encore une petite chose. Advenant le cas ou j'ai plusieurs images qui ne sont pas disponible dans le dossier, excel me donne un message d'erreur pour chaque ligne : Fichier non trouvé.

Serait-il possible d'ajouter en D une colonne ou il pourrait être indiqué OUI lorsque l'image a été trouvée/modifiée et NON lorsque celle-ci n'a pas été trouvée...

Encore un gros merci.

Ok ,

Alors voici le fichier un peu transformé par rapport à mon idée d'origine
 

camarchepas

XLDnaute Barbatruc
Re : Modifier nom d'une image dans un dossier à partir de excel

Re ,

Et bien voici,

Code:
Sub Renomme()
Dim Ancien As String, Nouveau As String
Dim Tourne As Long
Dim Repertoire As String
Dim LigneFin As Long
Repertoire = "c:\dossier\Images\"
LigneFin = Sheets("References").range("A" & Rows.Count).End(xlUp).Row

For Tourne = 2 To LigneFin
  Ancien = Sheets("References").range("B" & Tourne)
  Nouveau = Sheets("References").range("C" & Tourne)
 If Dir(Repertoire & Ancien) <> "" Then
   Name Repertoire & Ancien As Repertoire & Nouveau
    Sheets("References").range("D" & Tourne) = "Oui"
  Else
  ' MsgBox "Fichier non trouvé"
   Sheets("References").range("D" & Tourne) = "Non"
 End If
Next Tourne
End Sub
 

juliensav

XLDnaute Junior
Re : Modifier nom d'une image dans un dossier à partir de excel

Tout fonctionne très bien.

Merci :)

Re ,

Et bien voici,

Code:
Sub Renomme()
Dim Ancien As String, Nouveau As String
Dim Tourne As Long
Dim Repertoire As String
Dim LigneFin As Long
Repertoire = "c:\dossier\Images\"
LigneFin = Sheets("References").range("A" & Rows.Count).End(xlUp).Row

For Tourne = 2 To LigneFin
  Ancien = Sheets("References").range("B" & Tourne)
  Nouveau = Sheets("References").range("C" & Tourne)
 If Dir(Repertoire & Ancien) <> "" Then
   Name Repertoire & Ancien As Repertoire & Nouveau
    Sheets("References").range("D" & Tourne) = "Oui"
  Else
  ' MsgBox "Fichier non trouvé"
   Sheets("References").range("D" & Tourne) = "Non"
 End If
Next Tourne
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 345
Messages
2 087 462
Membres
103 547
dernier inscrit
matospi