Enlever début de nom

Résolu
Bonsoir a toutes et tous, Forum bonsoir



Excel 2007 VBA

A la suite d'une mauvaise manipulation sur mon fichier de vidéos, un logiciel de gestion de DVD m'a re-batptiser mes noms de films comme ci dessous

Films non triés - Film de Inconnu, en Inconnu - Tarzan.avi
Films non triés - Film de Inconnu, en Inconnu - Les bronzés.avi
Films non triés - Film de Inconnu, en Inconnu - Blanche neige.avi

Avec un petit code VBA comment supprimer (juste) cette phrase qui se trouve devant le nom du film.

(Films non triés - Film de Inconnu, en Inconnu -)

Films stocker dans répertoire sur autre Disk dur E:\Videos

Et comme la liste est longue pas envi de renommer tout un par un

Merci par avance pour votre aide

Cordialement Ray

5 réponses

  1. Bonjour
    en VBA, en supposant que la liste commencce en A2
        For i = 2 To [A2].End(xlDown).Row
    Titre = Right(Cells(i, 1), Len(Cells(i, 1)) - InStr(InStr(1, Cells(i, 1), "-", 1) + 1, Cells(1, 1), "-", 1) - 1)
    Cells(i, 1) = Titre
    Next
    ou avec une formule excel dans la colonne B
    =DROITE(A2;NBCAR(A2)-TROUVE("-";A2;TROUVE("-";A2;1)+1)-1), faire une recopie jusqu'en bas, puis un copier-collage spécial "valeur".

    Bonne journée
    cdlt
    1
    1. Modérateur
      Salut VieuxRay,

      Cette procédure boucle sur tous les fichiers d'un répertoire, et, si leur nom contient ce que tu décides, cette partie est supprimée :

      Sub AppelRenomme()
      'Tu peux aisément adapter la partie de texte à supprimer des noms de fichiers
      RenommeFichiers "Films non triés - Film de Inconnu, en Inconnu - "
      End Sub
      
      Sub RenommeFichiers(StrEnTrop As String)
          Dim Chemin As String, Fichier As String
          Dim AncienNom As String, NouveauNom As String
          Dim objShell As Object, objFolder As Object
       
          'Définit le répertoire contenant les fichiers
      
          Set objShell = CreateObject("Shell.Application")
          Set objFolder = objShell.BrowseForFolder(&H0&, "Choisir un répertoire", &H1&)
      
          If objFolder Is Nothing Then
              MsgBox "Abandon opérateur", vbCritical, "Annulation"
          Else
              Chemin = objFolder.ParentFolder.ParseName(objFolder.Title).Path & "\"
          End If
       
          'Boucle sur tous les fichiers du répertoire.
          Fichier = Dir(Chemin & "*.*")
          Do While Len(Fichier) > 0
              AncienNom = Fichier
              If Left(AncienNom, Len(StrEnTrop)) = StrEnTrop And Len(AncienNom) > Len(StrEnTrop) Then
                  NouveauNom = Right(AncienNom, Len(AncienNom) - Len(StrEnTrop))
                  'Renomme le fichier
                  Name AncienNom As NouveauNom
              End If
              Fichier = Dir()
          Loop
      End Sub
      


      Cordialement,
      Franck
      'Pensez aux balises de code : bouton <>, 
      'Précisez le langage dans la liste déroulante. Ex : code java
      1
      1. Salut Frenchie83

        Merci beaucoup pour ta réponse et le chti code.

        Mais je me suis sans doute mal exprimé, désolé.

        La liste ne se trouve donc pas dans un programme Excel.

        C'est pour cela que je souhaiterai faire juste un petit code qui rebaptiserai convenablement la liste a ma place.

        Ma liste de films se trouve stocker dans le répertoire (E:\Videos) sur mon autre disk dur.

        Il me faut donc intervenir sur la liste elle mème dans le répertoire (E:\Videos)

        Le but est de supprimer la phrase qui a été rajouter devant le nom d'origine de mes films par le logiciel a cause d'une erreur de manipulation de ma part.

        Maintenant je me retrouve avec une liste rebaptiser exactement comme ci-dessous
        Donc effacer uniquement ce qui est en GRAS les 2 tirets et la virgule

        Films non triés - Film de Inconnu, en Inconnu - Tarzan.avi
        Films non triés - Film de Inconnu, en Inconnu - Les bronzés.avi
        Films non triés - Film de Inconnu, en Inconnu - Blanche neige.avi

        Je te souhaite une excellente journée et merci

        Cordialement Ray
        0
        1. Salut pijaku

          Merci pour ta réponse et le petit code, c'est sympa

          j'ai une petite erreur quand je lance la macro.

          Erreur d'execution 53

          Fichier introuvable

          la ligne de code ci dessous se mets en jaune

          Name AncienNom As NouveauNom

          je ne vois pas pourquoi

          Merci a toi et une bonne journée

          Cdlt Raymond
          0
          1. Modérateur
            Peux tu essayer en pas à pas?
            0
          2. Ok je fait l'essai pas a pas

            a mon retour quelques courses a faire merci

            Raymond
            0
          3. Modérateur
            Comme quoi, il faut toujours penser à tester un code avant de répondre...
            Excuse moi, je ne l'ai pas fait.
            Mea Culpa, Mea Culpa, Mea Culpa...

            Il faut remplacer la ligne
             Name AncienNom As NouveauNom 
            par :

            Name Chemin & AncienNom As Chemin & NouveauNom


            J'ai également omis de citer mes sources... C'est par ICI.
            0
        2. Bonsoir pijaku

          Désoler pour la réponse tardive des obligations non prévues.

          Bon j'ai essayer avec la modification et c'est bon toute ma liste est renommer

          en un temps record nickel

          je te remercie beuacoup pour ton aide et ton petit code m'a vraiment bien aider et fait gagner du temps

          Encore merci je te souhaite de bonnes fètes de fin d'année et j'espère que le père noël va te gater énormément.

          bon W-end également et a une prochaine fois sans doute

          merci pour ton savoir partagé bien cordialement Raymond
          0
          1. Modérateur
            De rien Vieux Ray,
            Bon week end et bonnes fêtes à toi et ta famille.
            A+
            0