Recherche une petite macro

Bonjour a tous, Forum bonjour

Excel 2007 sous windows 7

J’ai un disk dur (H:\) avec une liste de fichiers (.avi)

Je transfert cette liste du DD (H:\) vers la colonne (A1 :A) de la feuil(1) d’excel

Une fois la liste dans la colonne (A) a l’aide de macros, je peux modifier la liste soit :

1- Toute la liste en majuscule ou bien en minuscule
2- Mettre la première lettre en majuscule et autre possibilité, gras, rouge etc etc

Exemple de titre :
(LE PREMIER CERCLE.AVI) ou bien (le premier cercle.avi) ou encore (Le Premier Cercle.Avi)

Donc peu importe la façon dont les titres sont écrits en colonne (A)

Je souhaiterai svp une petite macro SUB() VBA que je puisse appeler pour faire une copie
de la liste modifier vers le disc dur (H:\)

But :
On copie la liste en colonne (A)
On modifie selon besoin la liste dans la colonne
Puis appeler la macro pour copier et enregistrer la liste vers le DD

Je vous remercie de votre temps ainsi que pour votre aide.

Bon W-end a vous.

Cordialement Ray

13 réponses

Résumé de la discussion

Un utilisateur dispose d'une liste de fichiers .avi sur un disque H:, qu'il importe en colonne A d'une feuille Excel 2007 et souhaite modifier via des macros (majuscules/minuscules/capitalisation) puis sauvegarder la liste sur le disque. Plusieurs contributions proposent de copier la liste de la colonne A vers une colonne J (ou B), de modifier ensuite dans cette colonne et de renvoyer les noms sur le disque via une macro. D'autres évoquent la gestion des extensions, les éventuelles incohérences d'ordre entre Excel et le disque, et une erreur d'exécution 53, préconisant des tests et une approche cohérente.

Bobot (l’IA à votre service)
  1. Bonjour,
    Et copier-coller la liste dans quoi pour l'enregistrer sur le disque?
    1. Bonjour Raymond

      si je comprends bien quand même
      (1) je transfert les fichiers du DD en colonne A
      (2) je recopie les fichiers de la colonne A dans la colonne B
      (3) je modifie la colonne B comme j'ai besoin
      (4) on envoie les fichiers modifiés de la colonne B vers le DD

      C'est pas tout à fait ça !!!!

      Pour éviter trop de modifications par rapport à ce qui est fait :
      (1) je copie le nom de chaque fichier du DD en colonne J (plutôt que A)
      (2) je recopie le nom des fichiers de la colonne J dans la colonne A
      Comme avant :
      (3) je modifie la colonne A comme j'ai besoin
      C'est nouveau :
      (4) je modifie le nom des fichiers du DD d'après ce que j'ai modifié en A.
      Note : Si j'ai supprimé les extensions de fichier, j'utilise celles de la colonne J

      1. Salut f894009,

        Merci pour ta réponse

        Une fois la liste modifier dans la colonne (A) avec la macro
        l'enregistrer sur le disck dur H:\

        But remplacer la liste existante du DD par la nouvelle personnalisée.

        Bien sur je vais faire des essais sur autre DD pas envie de perdre tous mes fichiers.

        Merci a toi et bon w-end

        Cdlt Ray
        1. Re,
          But remplacer la liste existante du DD par la nouvelle personnalisée.
          Ca, c'est renommé les fichiers car y a pas de liste sur le DD !
      2. Salut

        Donc on renomme les fichiers existants sur le DD par ceux de la colonne (A)

        si j'ai bien compris ???

        Merci

        Ray
        1. Re,

          A la vue de votre demande, oui
        2. @f894009Re

          ok comme ça alors si c'est possible

          merci
        3. @vieuxrayRe,
          Oui, mais il faut avoir noms anciens et nouveaux
        4. @f894009Re

          Ha là ça se gâtes 2010 fichiers et sans doute plus par la suite

          Je ne sais pas comment faire alors ???

          Cdlt Ray
        5. @vieuxrayRe,

          Ben, vous n'allez peut-etre pas changer le nom de tous les fichiers a chaque fois!!!
          Mais il faut prevoir une colonne anciens noms ou nouveaux noms c'est suivant comment vous verrez la chose
      3. Re

        baht en fait je ne veux pas changer de noms

        je peux actuellement dans la colonne (A) modifier cette liste de noms

        par toute la liste en majuscules ou bien en minuscules

        si par exemple la liste du disque dur est toute en minuscule
        je la transfert dans la colonne (A)
        puis je passe toute la liste en majuscule

        et je souhaiterai donc recopier la liste que je viens de modifier
        vers le disque dur

        effectivement je ne vais pas modifier le nom des vidéos tout les 5 minutes hiih

        mais bon si on peux pas c'est pas grave.

        Merci bon appétit a plus tard

        Cdlt Ray
        1. Re

          je souhaiterai donc recopier la liste
          Non, c'est renommé les fichiers pas autre chose.

          2.5 secondes pour 314 fichiers clef USB

          Sub test()
              temps = Timer
              Fichier = Dir("F:\_Docs_Prog_Excel\*.*")
              Do While Fichier <> ""
                  FichierM = UCase(Fichier)
                  Name "F:\_Docs_Prog_Excel\" & Fichier As "F:\_Docs_Prog_Excel\" & FichierM
                  Fichier = Dir
              Loop
              MsgBox "temps: " & Timer - temps
          End Sub
        2. @f894009Re

          Merci pour le code ok renommé c'est enregistrer

          je ne comprends pas trop la façon de faire de ton code.

          ce que j'ai compris:

          tu mesures le temps mis temps=timer
          on renomme les fichiers avec ucase en majuscules

          après je ne comprends plus je pars d'où je fait quoi et je vais ou ???

          je suis désoler, ca parait simple pourtant mais ????

          Cdlt ray
        3. @vieuxrayRe,
          En effet code simple. Puisque vous passez tous les noms de fichiers soit en minuscules soit en majuscules, en adaptant ce code, pas besoin de colonne supplémentaire
        4. @f894009Re

          j'ai déjà plusieurs macros dans mon USF que je commande avec des checkboxs.

          checkbox(1) macro pour passer toute la liste en minuscule
          checkbox(2) macro pour passer toute la liste en majuscule
          checkbox(3) macro pour mettre la première lettre en majuscule gras + rouge
          checkbox(4) macro qui mets la première lettre de chaque mot en majuscule gras + rouge
          checkbox(5) macro qui m'enlève l'extension (.avi) des fichiers
          checkbox(6) macro qui me remets l'extension (.avi) des fichiers

          Donc je transfert la liste des noms de fichiers qui sont sur le disque dur (H:\) vers la colonne (A)

          ensuite a l'aide des divers macros, je modifie la liste de la colonne a ma convenance.

          mais je ne sais pas effacer ou renommer les fichiers du disque H:\ pour y enregistrer la nouvelle liste de la colonne A

          il manque une macro pour recopier et enregistrer la liste de la colonne A sur le DD (H:\)

          j'ai eu cette macro mais je ne la retrouve plus, elle devait être sur un ancien Pc je pense.

          Bonne soirée a plus tard

          Cdlt Ray
        5. @vieuxrayRe,

          Vous avez donc vire le Slider pour la selection des operations!!!!!!!!!!!!!!!!!!!

          mais je ne sais pas effacer ou renommer les fichiers du disque H:\ pour y enregistrer la nouvelle liste de la colonne A
          Ce qui est surprenant, c'est que vous empilez du code mais vous n'etes pas capable de lire un code (ex: celui que je vous ai mis)
      4. Salut eriiic,

        Merci pour ta réponse

        je connais ce logiciel, mais j'ai juste voulu faire de la programation
        pour m'occuper et tant qu'a faire avoir un but.

        Le plaisir de l'avoir même avec l'aide des gens des divers forums

        Mais merci tout de même d'avoir pris le temps de me répondre.

        bonne journée a toi

        Cdlt Raymond
        1. Re,

          mais comment je fais si je veux une majuscule a chaque mot Ex Le Grand Cirque.Avi

          Le principe reste le meme en lisant les cellules de la colonne A
          Je vous fais un exemple
      5. Bonjour Raymond,

        Deux remarques :

        1) Poster sur plusieurs forums sans en informer personne est un manque de respect envers les bénévoles qui te consacrent de leur temps pour résoudre ton problème !
        N'étant pas au courant, ils perdent leur temps avec des questions déjà résolues sur les autres forums.
        Pendant ce temps là, ils pourraient répondre à d'autres personnes qui eux aussi ont besoin d'aide.

        2) Prends le temps de réfléchir avant de poser une question :
        « Si je disposais d’une heure pour résoudre un problème et que ma
        vie en dépende, je consacrerais les 55 premières minutes à définir la question appropriée à poser, car une fois cela fait, je pourrais
        résoudre le problème en moins de cinq minutes.»

        ALBERT EINSTEIN
        1. Bonjour,

          Patrice33740
          Le monsieur a ecrit plusieurs fois qu'il a un "vieux cerveau" alors .....

          vieuxray:
          un code pour toutes vos manips de noms de fichier, en dehors de la couleur et caracteres gras (pas encore possible)
          Sub Renomme_Fichier()
              With Worksheets("feuil1")
                  derlig = .Range("A" & Rows.Count).End(xlUp).Row         'derniere cellule non vide colonne A
                  Tlist = .Range("A1:A" & derlig).Value       'mise en memoire palge d'infos
              End With
              If derlig = 1 Then
                  Nb = 1
              Else
                  Nb = UBound(Tlist)
              End If
              'boucle sur le tableau infos colonne A
              For N = 1 To Nb
                  If Nb > 1 Then
                      Fichier = Tlist(N, 1)
                  Else
                      Fichier = Tlist
                  End If
                  'renomme fichier
                  Name "H:\" & Fichier As "H:\" & Fichier
              Next N
          End Sub
        2. @f894009Re

          Merci pour la macro, j'ai essayer mais j'ai une erreur d'éxécution 53

          J'ai fait le test directement sur le D-D (H:\)

          Sur le D-D et sur ma feuill1 c'est la même liste identique même nombre de fichiers.

          MAIS la liste n'ai pas trier exactement pareil voir svp le lien ci dessous.

          J'ai fait des essais de tri avec Excel et avec Windows pour le D-D mais impossible d'avoir le même tri dans le même ordre (feuil1 et D-D)

          Je pense que le non fonctionnement du code viendrai du tri heu peut être

          http://www.cjoint.com/c/GApqx0IfCJz

          Merci a plus tard

          Ray
        3. @f894009-
          Name "H:\" & Fichier As "H:\" & Fichier 
          . ???
        4. @Patrice33740Re

          je ne sais pas dans mon programme j'utilise cette syntaxe aussi et ca fonctionne (H:\)

          pour l'instant je ne vois que le tri

          j'ai refais des essais mais ca ne change rien

          je regarde si je trouve un code de tri avec lequel je pourrai trier sur excel et le D-D afin d'utiliser le même tri alphanumérique.

          bonne soirée

          Cdlt Ray
        5. @Patrice33740Re,

          Ca parait surprenant mais ca marche. Dans son fichier
          il recupere le nom des fichiers d'un disque en colonne A
          il peut ecrire en majuscule, minuscule et premiere lettre mots en majuscule si minuscule dans la colonne A
          il a demande a renommer les fichiers sur le disque dans le "style" d'ecriture de la colonne A
          L'avantage de Windows, c'est que peut importe comment vous ecrivez le nom d'un fichier, il le trouve, de ce fait ceci
          Name "H:\" & Fichier As "H:\" & Fichier

          va tres bien
      6. Salut f894009

        J'ai refait des essais ce matin et j'ai toujours cette erreur

        l'Aide d'Excel me donne cette réponse

        Fichier introuvable (erreur 53)

        Particularités

        Le fichier est introuvable à l'endroit spécifié. Causes et solutions de cette erreur :

        Une instruction, par exemple, Kill, Name ou Open, se réfère à un fichier qui n'existe pas.
        Vérifiez l'orthographe du nom de fichier et la spécification du chemin d'accès.

        Et au débogage la ligne ci dessous passe en jaune

        Name "H:\" & Fichier As "H:\" & Fichier


        Voila j'essai de trouver comment faire

        Merci a toi

        Cdlt Raymond
        1. Re,
          Alors ce code est fait pour changer le "style" d'ecriture" pas le changement de nom
        2. @f894009Re

          Ok, bon bath merci pour la réponse.

          Je continue de voir comment faire

          Cdlt Ray
        3. @vieuxrayRe,

          Si vous voulez changer le nom de fichier,,il faut avoir une colonne avec ancien nom et une nouveau nom. Je vous en ai deja parle:
          f894009 - 14 janv. 2017 à 12:02

          Vous avez repondu:
          vieuxray 14 janv. 2017 à 12:21
          Re

          baht en fait je ne veux pas changer de noms


          Alors, encore le "vieux cerveau" en cause?
        4. @f894009Re

          Non pas forcément "vieux cerveau" mais des soucis familiaux les beaux parents pas glop glop

          si je comprends bien quand même
          (1) je transfert les fichiers du DD en colonne A
          (2) je recopie les fichiers de la colonne A dans la colonne B
          (3) je modifie la colonne B comme j'ai besoin
          (4) on envoie les fichiers modifiés de la colonne B vers le DD

          c'est bon comme ça, ou alors je vois pas comment.

          Merci a toi

          Cdlt Ray
        5. @vieuxrayRe,

          les beaux parents pas glop glop
          Desole, esperons que cela aille mieux

          c'est bon comme ça, ou alors je vois pas comment.
          Non, pas bon. Il faut
          Pour les changements de nom, balayer la colonne A et utilisez cette ligne 'instruction

          Name "H:\" & FichierColA As "H:\" & FichierColB

          Suite:
          un exemple, suivant comment vous ecrirez la colonne B, faudra peut-etre ajouter un test si cellule B non vide pour renommer un fichier

          Sub Change_nom_Fichier()
              With Worksheets("feuil1")
                  Derlig = .Range("A" & Rows.Count).End(xlUp).Row         'derniere cellule non vide colonne A
                  Tlist = .Range("A1:B" & Derlig).Value       'mise en memoire plage d'infos
              End With
              If Derlig = 1 Then
                  Nb = 1
              Else
                  Nb = UBound(Tlist)
              End If
              'boucle sur le tableau infos colonne A
              For N = 1 To Nb
                  If Nb > 1 Then
                      FichierColA = Tlist(N, 1)
                      FichierColB = Tlist(N, 2)
                  Else
                      FichierColA = Tlist(1, 1)
                      FichierColB = Tlist(1, 2)
                  End If
                  'renomme fichier
                  Name "F:\_Docs_Prog_Excel\" & FichierColA As "F:\_Docs_Prog_Excel\" & FichierColB
              Next N
          End Sub
          
      7. Re

        il a 46 km de chez moi, notre astronaute !!!

        Bon du coup je peux utiliser la colonne (J) ça m'arrange bien

        Ma colonne A est charger des fichiers (en minuscules) provenant du DD
        même noms et quantité égal.

        colonne A fichiers en minuscules et DD même fichiers aussi en minuscules
        colonne J vide

        je dois faire quoi maintenant svp

        Ray
        1. Re,
          je dois faire quoi maintenant svp
          Ben, de quoi parlions-nous!!!!!
          Vous voulez changez le nom d'un ou plusieurs fichiers ou "style" d'ecriture ?
        2. @f894009Re

          j'ai plusieurs possibilités

          checkbox(3) macro pour mettre la première lettre en majuscule gras + rouge
          checkbox(4) macro qui mets la première lettre de chaque mot en majuscule gras + rouge
          checkbox(5) macro qui m'enlève l'extension (.avi) des fichiers
          checkbox(6) macro qui me remets l'extension (.avi) des fichiers

          je peux avoir besoin de renommer un titre anglais en français
          corriger des titres
          etc etc etc

          Bonne soirée et merci

          Cdlt Ray
        3. @vieuxrayRe,

          Ce qui est faisable en ecriture sur le DD:
          la première lettre en majuscule

          voir la subroutine:
          Sub Renomme_Fichier()
          , valable aussi pour tout majuscule ou tout minuscule sans modif

          et

          je peux avoir besoin de renommer un titre anglais en français
          La, ecrire le nouveau titre colonne J sur la meme ligne que l'ancien titre (autrement pas possible de se reperer)

          voir la subroutine:
          Sub Change_nom_Fichier()
          en la modifiant si vous avez des cellules vides (nom de fichiers pas modifes), la y deux solutions pour faire

          Je vous deconseille: enlever l'extension de fichier car dans l'Explorer de fichiers Windows c'est une option (affichage ou non de l'extension), mais cette extension existe quand meme
      8. Salut Patrice,

        Bon je n'arrive pas a faire, j'ai toujours cette erreur exécution 53.

        Je dois avoir un soucis au niveau de ma liste sur le DD qui pourrai m'engendrer cette erreur 53.

        J'ai sur le DD un fichier en minuscule j'ai beau le renommer, changer de nom en majuscule, etc etc, il se remets automatiquement comme a l'origine en minuscule.

        Donc quand je lance la macro pour renommer sur le DD, ca commence bien une partie de la liste sur le DD est modifier comme voulue,puis ca plante avec erreur 53.

        Il faudrait que je puisse comparer la liste en colonne A et la liste du DD
        autrement dit:

        Je transfert les fichiers du DD en colonne A et après comparer entre les deux
        et voir ou ca bloque.

        Voila mes essais je suis bien sur que les codes fournis sont bons, mais a mon avis un problème d'affichage ou de nom entre liste de la colonne A et la liste du DD

        Pour être bien il faudrait que les deux listes soient identiques non ??

        Quand je charge la colonne A les fichiers débutent par les chiffres puis par lettres les A puis les B etc etc

        Alors que sur le DD le répertoire H:\ ou sont les fichiers l'ordre commence par les chiffres pas trouver le moyen de faire mieux.

        Merci pour l'aide apporter.

        Cdlt Raymond
        1. L'ordre n'a aucune importance !

          Par contre la sémantique est très importante pour se faire comprendre !
          Comme je viens de te l'écrire,il ne s'agit pas de :
          « Je transfert les fichiers du DD en colonne A et après comparer entre les deux »

          mais simplement de :
          J'écris la liste des noms des fichiers du DD dans la colonne A (ou une autre colonne). Il n'y a donc aucune raison de la comparer avec elle même !

          Par contre, comme l'a déjà dit f894009, il faut impérativement 2 colonnes:
          - une avec les noms identiques à ceux du DD a laquelle il ne faut absolument pas faire de modification
          - une autre colonne avec les modification des noms de fichier à faire
        2. @Patrice33740Bonjour a vous deux,

          vieuxray:
          Pouvez-vous mettre votre fichier a dispo pour que nous puissions vous aider au niveau de la structure feuil1 et code VBA
      9. Salut a vous deux,

        Voici ce que j'ai fait en suivant les derniers conseils.
        1) Charger colonne (A) avec fichiers du DD
        2) Colonne (J) identique a la colonne (A)
        3) PUIS j'ai modifier selon besoin colonne (J)
        4) j'ai modifier macro ci dessous pour enregistrer nouvelles données de la colonne (J) vers le DD

        alors j'ai bon ou pas ?????

        Merci pour l'aide


        Public Sub Renomme_Fichier()
        With Worksheets("feuil1")
        Derlig = .Range("J" & Rows.Count).End(xlUp).Row 'Dernière cellule non vide colonne J
        Tlist = .Range("J1:J" & Derlig).Value 'Mise en mémoire plage d'infos
        End With
        '-------------------------------------------------
        If Derlig = 1 Then
        Nb = 1
        Else
        Nb = UBound(Tlist)
        End If

        For N = 1 To Nb 'Boucle sur le tableau infos colonne A
        If Nb > 1 Then
        Fichier = Tlist(N, 1)
        Else
        Fichier = Tlist
        End If

        Name "H:\" & Fichier As "H:\" & Fichier 'Renomme fichier
        Next N
        End Sub
        1. Re,

          Relisez le post 43, vous ne prenez pas la bonne subroutine!!!!
          J'aurai du change le nom de la subroutine Sub Renomme_Fichier() en Style_nom_Fichier() car ca prete a confusion

          De plus la subroutine de changement nom est a modifiee vu que vous utilisez la colonne J a pas B

          Si dans colonne J, seulement titres modifies ce sera plus rapide pour changer le ou les noms sur le disque
        2. Re,

          Non, il faut 2 colonnes donc c'est pas :
          Name "H:\" & Fichier As "H:\" & Fichier

          Plutot que chose comme :
          Name "H:\" & FichierColA As "H:\" & FichierColJ


          Si f894009 demande le fichier, c'est qu'il nous semble qu'a force de demander une petite macro par ci et une autre par là, l'ensemble du projet manque de cohérence.

          Par exemple, tu utilises un listview qui au lieu d'être le reflet du DD est le reflet de la colonne A. C'est là une importante source d'erreur !
        3. @Patrice33740Bonjour Patrice33740
          Le monsieur se trompe de subroutine, il prend celle qui change le "style". Je vais modifier l'autre car les colonnes change A:B devient A et J
      10. Re

        voila j'ai modifier la macro dites moi si c'est bon pour la macro svp

        si c'est bon, je vous lâche, je ne vous embètent plus promis LOL

        merci a vous deux

        je vous mettrai le fichier mais vous mourir de rire ihihihihih

        Ray


        Sub Change_nom_Fichier()
        With Worksheets("feuil1")
        Derlig = .Range("A" & Rows.Count).End(xlUp).Row

        'derniere cellule non vide colonne A
        Tlist = .Range("A1:A" & Derlig).Value

        'mise en memoire plage d'infos
        End With

        If Derlig = 1 Then
        Nb = 1
        Else
        Nb = UBound(Tlist)
        End If
        'boucle sur le tableau infos colonne A

        For N = 1 To Nb
        If Nb > 1 Then
        FichierColA = Tlist(N, 1)
        FichierColJ = Tlist(N, 2)
        Else
        FichierColA = Tlist(1, 1)
        FichierColJ = Tlist(1, 2)
        End If
        'renomme fichier
        Name "H:\" & FichierColA As "H:\" & FichierColJ

        Next N
        End Sub
        1. Re,

          si c'est bon, je vous lâche, je ne vous embètent plus promis LOL
          Ben non, c'est pas bon, mais c'est pas entierement de votre faute (quoique, si vous y regardez de plus pret , vous verrez que c'est pas bon car vous faites la soupe avec le code des deux subroutines sans savoir ce que vous faites )
          voila la subroutine modifiee pour vous
          Sub Change_nom_Fichier()
              Dim Change_Nom As Boolean
              
              With Worksheets("feuil1")
                  Derlig = .Range("A" & Rows.Count).End(xlUp).Row         'derniere cellule non vide colonne A
                  TlistA = .Range("A1:A" & Derlig).Value       'mise en memoire plage d'infos
                  TlistJ = .Range("J1:J" & Derlig).Value       'mise en memoire plage d'infos
              End With
              If Derlig = 1 Then
                  Nb = 1
              Else
                  Nb = UBound(TlistA)
              End If
              'boucle sur le tableau infos colonne A
              Change_Nom = False
              For N = 1 To Nb
                  If Nb > 1 Then
                      If TlistJ(N, 1) <> "" And TlistJ(N, 1) <> TlistA(N, 1) Then
                          FichierColA = TlistA(N, 1)
                          FichierColJ = TlistJ(N, 1)
                          Change_Nom = True
                      End If
                  Else
                      If TlistJ <> "" And TlistJ <> TlistA Then
                          FichierColA = TlistA
                          FichierColJ = TlistJ
                          Change_Nom = True
                      End If
                  End If
                  'renomme fichier
                  If Change_Nom Then
                      Name "H:\" & FichierColA As "H:\" & FichierColJ
                  End If
                  Change_Nom = False
              Next N
          End Sub
          
          


          Changez le nom de l'autre
           Sub Renomme_Fichier()
          en
          Style_nom_Fichier()
          car ca pretera moins a confusion pour vous
        2. Non c'est pas bon !
        3. @f894009Re

          j'ai essayer le dernier et j'ai erreur 53 encore.

          comme demander tout a l'heure voicle lien menant au fichier

          j'ai mis privé sur ci-joint jamais utiliser dites moi svp si vous avez bien eu le fichier, merci

          sortez vos mouchoirs ihihihih

          http://www.cjoint.com/c/GArpVtCRhgz
        4. @vieuxrayRe,
          J'ai recupere le fichier, pour le changement de nom, vous lancez la subroutine a la main ou ??

      Discussions similaires

      Petite majuscule Word

      10 réponses