Rajouter 0 si entre 2 bornes composante Num = 2 au lieu de 3

Résolu

Bonjour,

Suite au listage des fichiers présents dans un répertoire, je désire les renommer.....

J'utilise pour cela 2 Macros :

1- Liste des fichiers

2- Renommage des fichiers

Une opération entre les 2 est nécessaire :

Colonne A = liste

Colonne B Formule

Colonne A = Nouveau nom de fichier

Je souhaite que lorsque le nom du fichier ne comporte que 2 composantes numériques après Le mot "TIT, la formule prévoit de rajouter un 0 devant.

Exemple :

31052023-REF838544-TIT43-Z.pdf devient  REF838544_(TIT43Z).pdf

Je souhaite que,

31052023-REF838544-TIT43-Z.pdf devienne  REF838544_(TIT043Z).pdf

La formule en Colonne B n'est pas correct......

https://www.cjoint.com/c/MFbmey2Fi5D

Merci d'avance,


Windows / Firefox 102.0

4 réponses

  1. Salutations

    Et sans macro

    Pour B2 une formule plus courte

    =SUBSTITUE(DROITE(A2;NBCAR(A2)-CHERCHE("tit";A2)+1);".pdf";"")

    Par contre pour C2 une formule plus longue pour la recherche des nombres à 2 chiffres

    =STXT(A2;CHERCHE("ref";A2);9)&"_("&GAUCHE(B2;3)&SI(NBCAR(SUBSTITUE(GAUCHE(B2;CHERCHE("-";B2)-1);"TIT";""))=2;"0"&SUBSTITUE(GAUCHE(B2;CHERCHE("-";B2)-1);"TIT";"")&DROITE(B2;NBCAR(B2)-CHERCHE("-";B2)+1);SUBSTITUE(GAUCHE(B2;CHERCHE("-";B2)-1);"TIT";"")&DROITE(B2;NBCAR(B2)-CHERCHE("-";B2)+1))&").pdf"

    https://www.cjoint.com/c/MFboIRKE84o

    Cordialement

    1
    1. La même un peu plus courte

      =STXT(A2;CHERCHE("ref";A2);9)&"_("&GAUCHE(B2;3)&SI(NBCAR(SUBSTITUE(GAUCHE(B2;CHERCHE("-";B2)-1);"TIT";""))=2;"0";"")&SUBSTITUE(GAUCHE(B2;CHERCHE("-";B2)-1);"TIT";"")&DROITE(B2;NBCAR(B2)-CHERCHE("-";B2)+1)&").pdf"

      Cordialement

      1
    2. @PapyLuc51

      Bonjour PapyLuc51,

      C'est court, efficace et plus facile pour les non adeptes du VBA !

      Je prend aussi .....!

      Cdlt

      0
    3. @PYGOS69

      Demain je tenterai de faire directement sans recourir à la colonne B

      Bonne soirée

      Cordialement

      1
    4. @PapyLuc51

      Bonjour PYGOS69

      .

      Sans passer par des colonnes de calculs intermédiaires, la formule est assez longue (C'est la version la plus courte que j'ai trouvée -feuillet ESSAI3)

      .

      =SUBSTITUE(GAUCHE(DROITE(A2;NBCAR(A2)-CHERCHE("-";A2));CHERCHE("TIT";DROITE(A2;NBCAR(A2)-CHERCHE("-";A2)))+2);"-T";"_(T")&SI(NBCAR(GAUCHE(SUBSTITUE(A2;GAUCHE(A2;CHERCHE("tit";A2)+2);"");NBCAR(SUBSTITUE(A2;GAUCHE(A2;CHERCHE("tit";A2)+2);""))-NBCAR(DROITE(A2;NBCAR(A2)-CHERCHE("-";A2;21)+1))))=2;"0";"")&SUBSTITUE(SUBSTITUE(A2;GAUCHE(A2;CHERCHE("tit";A2)+2);"");".p";").p")

      .

      sinon un passage par DONNEES/CONVERTIR (voir feuillet ESSAI4)

      https://www.cjoint.com/c/MFcnvnQLfzo

      .

      Cordialement

      1
  2. Salut PYGOS69

    Je viens de m'apercevoir que les formules données maintiennent un tiret "-" dans le groupe alphanumérique entre les parenthèses ; ce qui ne correspond pas à ta demande  

    "31052023-REF838544-TIT43-Z.pdf devienne REF838544_(TIT043Z).pdf"

    J'ai tout corrigé

    https://www.cjoint.com/c/MFdgr2QifFo

    Cordialement

    1
    1. Bonjour PapyLuc51,

      Oui en effet ! Merci pour la correction !

      Cdlt

      0
  3. Bonjour PapyLuc,

    Merci !  Pour ta perséverance !Je teste ça ....

    Cdlt

    0