Adaptation macro Renomme fichiers 2003 vers 2010

Brigitte

XLDnaute Barbatruc
Bonjour,

J'avais habitude d'utiliser une macro de jb (boisgontier) sous excel 2003 pour renommer des fichiers (de tous types : xls, jpg...). Le principe est d'ouvrir le fichier de jacques, de cliquer sur "ouvrir répertoire", faire ok... ca liste les fichiers dudit répertoire...

Mais là où j'ai un souci, c'est que cette macro semble ne pas pouvoir aller dans les sous répertoires depuis que j'utilise Excel 2010.

Rien à faire, quand je clique sur "ouvrir répertoire" et vais chercher un sous sous-répertoire, ca ne liste que ce qui est à la racine, rendant caduque le listage...

Y aurait-il qqchse dans le code qui soit incompatible entre 2003 et 2010, est-ce adaptable ? Si d'aventure qqun passait par là ayant les deux versions et pouvant tester, et me dire si possible d'évoluer... ce serait cool, j'adorais cette macro.

Merci à vous.

CODE :

Code:
Sub ListeFichiers()
  Range("A2:C65000").ClearContents
  [E12].ClearContents
  ChDir ThisWorkbook.Path   ' répertoire de l'appli
  dossier = ChoixDossier()
  If dossier = "" Then Exit Sub
  ligne = 2
  nf = Dir("*.*")           'premier fichier xls
  Do While nf <> ""
    Cells(ligne, 1) = nf
    Cells(ligne, 2) = FileDateTime(nf)
    ligne = ligne + 1
    nf = Dir                  ' suivant
  Loop
End Sub

Je précise que le fichier est un fichier excel 2003 (xls). Et la mention 'premier fichier xls n'a pas d'importance, ca liste bien tous les fichiers sous 2003.
 

Pièces jointes

  • 1 Copie de jb-ListeFichiersRepertoireRenomme2.xls
    97 KB · Affichages: 132
  • 1 Copie de jb-ListeFichiersRepertoireRenomme2.xls
    97 KB · Affichages: 133
  • 1 Copie de jb-ListeFichiersRepertoireRenomme2.xls
    97 KB · Affichages: 135
Dernière édition:

YANN-56

XLDnaute Barbatruc
Re : Adaptation macro Renomme fichiers 2003 vers 2010

Bonjour Brigitte, et à ceux qui passeront par ici,

Je n'ai rien à dire pouvant aider à résoudre ton souci,

J'apprends tout juste à conduire. Alors; il ne faut pas me demander d'ouvrir le capot.

Je le ferai donc seulement avec mon coffre à bises pour t'en offrir une au passage. :)

Amicalement,

Yann
 

david84

XLDnaute Barbatruc
Re : Adaptation macro Renomme fichiers 2003 vers 2010

Bonjour tout le monde,
chez moi (Xl 2007) la macro "Fichier répertoire fonctionne". Bien entendu, la boîte de dialogue ne te propose que les dossiers puisque
Code:
With Application.FileDialog(msoFileDialogFolderPicker)
et non les fichiers.

La macro "Ajout Texte" ne donne rien initialement.
Je l'ai donc modifiée comme ceci :
Code:
Sub ajoutTexte()
  If [E12] <> "" Then
    For Each c In Selection
     'If c.Column = 3 And c.Value <> "" Then
     If c.Value <> "" Then
       c.Offset(0, 2).Value = [E12] & "_" & c.Value
     End If
    Next c
  End If
End Sub
et cela fonctionne (ne pas oublier d'ajouter un texte en E12 et de sélectionner les fichiers à modifier).
La macro "Modifier noms" fonctionne.
Attention : faire les tests sur un dossier comportant des fichiers tests car les noms sont modifiés.
A+
 
Dernière édition:

Brigitte

XLDnaute Barbatruc
Re : Adaptation macro Renomme fichiers 2003 vers 2010

Merci David, bisous Yves,

Oui David, mon problème ne réside pour l'instant qu'en la première partie. Quand je clique sur "ouvrir répertoire", je vais chercher un répertoire (parfois sous sous sous sous répertoire)... et c'est là que j'ai souci sur mon pc équipé de 2010 (mais ne sais si le pb vient de là) puisque sur l'autre avec 2003, ca marche (mais je préfère utiliser le petit) : je choisis, je fais ouvrir (ou ok, je sais plus) et ca ne liste pas les bons fichiers... seulement ceux à la racine... peut être es tu allé chercher un répertoire assez proche de la racine... essaie avec un sous sous sous sous... répertoire.

Et je peux essayer 20 fois de suite, rien... et même si je déplace le répertoire en question (pour ne rien te cacher, il s'agit de 200 photos prises à Barcelone et que je veux renommer facilement grâce à cette appli) sous le Bureau, ca ne marche pas non plus... perque ? pourtant ca prend bien les jpg (à la racine) donc ce n'est pas un problème de suffixe.

Quant à ajout de texte, ca permet, en saisissant un mot, ou davantage dans la case, de rajouter cela à tous les noms de fichiers sélectionnés... je m'en servais surtout pour le boulot pour renommer automatiquement les fichiers (quels qu'ils soient : doc, xls, pdf) d'un répertoire en rajoutant "CA-" devant... pour conseil d'administration.
 
Dernière édition:

david84

XLDnaute Barbatruc
Re : Adaptation macro Renomme fichiers 2003 vers 2010

Re Brigitte,
j'ai testé avec sur un dossier éloigné de la racine et ne comportant que des fichiers .xls et pas de soucis particulier.
Il faudrait que quelqu'un ayant Excel 2010 fasse un essai pour voir ce que cela donne.
A+
 

Paritec

XLDnaute Barbatruc
Re : Adaptation macro Renomme fichiers 2003 vers 2010

Bonjour Brigitte:), David:),
et vive le modernisme, 2007 était merdique fichier 5 à 6 fois plus gros en .xls et 2010 va être pire??? D'après ce que je lis par ci par là c'est encore pas d'une compatibilité extrême .
allez je retourne sur mon 2003
bonne journée
a+
papou:)
 

Marlysa

XLDnaute Nouveau
Re : Adaptation macro Renomme fichiers 2003 vers 2010

Sur mon Excel 2010 ta macro ne fonctionne pas. De plus à la sélection du répertoire ou il prend en compte le répertoire parent !!

Quelle version de 2010 as tu? 32 bits ou 64 bits? Car sous 64bits les fonctionnalités de type application.FileDialog(msoFileDialogFolderPicker) risquent de ne pas marcher!
 
Dernière édition:

pierrejean

XLDnaute Barbatruc
Re : Adaptation macro Renomme fichiers 2003 vers 2010

Re

Curieux !!

Teste le fichier S.T.P
 

Pièces jointes

  • 1 Copie de jb-ListeFichiersRepertoireRenomme2.xls
    98.5 KB · Affichages: 103
  • 1 Copie de jb-ListeFichiersRepertoireRenomme2.xls
    98.5 KB · Affichages: 105
  • 1 Copie de jb-ListeFichiersRepertoireRenomme2.xls
    98.5 KB · Affichages: 103
Dernière édition:

Marlysa

XLDnaute Nouveau
Re : Adaptation macro Renomme fichiers 2003 vers 2010

Brigitte essaye ce code:
Code:
Sub ListeFichiers()
Dim SousRep As Object
Dim fso As Object, LeDossier As Object



  Range("A2:C65000").ClearContents
  [E12].ClearContents
  ChDir ThisWorkbook.Path   ' répertoire de l'appli
  Dossier = ChoixDossier()
  If Dossier = "" Then Exit Sub
  ligne = 2
  Dossier = Dossier & "\"
  nf = Dir(Dossier & "*.*")           'premier fichier xls
  Do While nf <> ""
    Cells(ligne, 1) = nf
    Cells(ligne, 2) = FileDateTime(Dossier & "\" & nf)
    ligne = ligne + 1
    nf = Dir                  ' suivant
  Loop
  
  Set fso = CreateObject("Scripting.FileSystemObject")
  Set LeDossier = fso.GetFolder(Dossier)
  
  For Each SousRep In LeDossier.SubFolders
        nf = Dir(SousRep & "\*.*")           'premier fichier xls
        Do While nf <> ""
          Cells(ligne, 1) = nf
          Cells(ligne, 2) = FileDateTime(SousRep & "\" & nf)
          ligne = ligne + 1
          nf = Dir                  ' suivant
        Loop
    Next SousRep
  
  
End Sub
 

Brigitte

XLDnaute Barbatruc
Re : Adaptation macro Renomme fichiers 2003 vers 2010

Re,

Pierre, non malheureusement, bug au même endroit.
Marlysa : gros merci, ca marche impecc... pourrais tu nous dire ce qui fait que ca change ? enfin en gros, le principe... car même si je vois que la macro est plus longue, différente... je vois pas trop ce qui buggait.

En revanche une fois que j'ai double cliqué sur un nom listé à gauche, modifié ce nom (à la main pour exemple), quand je clique sur "modifie nom", j'ai encore un bug :

Name c.Value As c.Offset(0, 2).Value

dans la macro :

Code:
Sub modifieNom()
For Each c In Range([A2], [A2].End(xlDown))
   If c.Offset(0, 2) <> "" Then
     Name c.Value As c.Offset(0, 2).Value
   End If
Next c
End Sub

Est ce que ca peut venir de la position de la cellule du fait du changement de la macro (quoique j'ai des doutes, j'ai rien changé...

Merci à vous en tout cas... Marlysa si tu peux regarder la fin, car sans la fin, la macro de listage ne m'est pas utile ;-( :rolleyes:
 
Dernière édition:

Marlysa

XLDnaute Nouveau
Re : Adaptation macro Renomme fichiers 2003 vers 2010

J'ai rajouté une boucle qui parcourt tous les répertoires et sous répertories:
For Each SousRep In LeDossier.SubFolders

Next


J'ai également utilisé le conseil de Pierre Jean en utilisant son "/" en plus.

**** Update ****
La mise à jour du nom des fichiers ne marche pas car comme tu ne garde pas le chemin de chaque sous répertoires, le programme n'est donc pas capable de retrouver le fichier vu qu'il cherche dans le répertoire de la base de la recherche.
 
Dernière édition:

Discussions similaires

Réponses
19
Affichages
2 K

Statistiques des forums

Discussions
312 202
Messages
2 086 177
Membres
103 152
dernier inscrit
Karibu