IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Renommer des fichiers en masse à partir d'une liste excel


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2013
    Messages : 9
    Par défaut Renommer des fichiers en masse à partir d'une liste excel
    Bonjour
    Je voudrais renommer des fichiers que j'ai dans un répertoire à partir d'une liste qui est sur un fichier excel qui contient dans une colonne les noms des anciens fichiers avec leurs extensions et dans l'autre colonne les noms des nouveaux fichiers avec leurs extensions.

    par exemple j'ai un fichier a.doc dans mon répertoire et dans ma liste excel a.doc c'est l'ancien nom et le nouveau nom c'est b.doc. je voudrais renommer ce fichier automatiquement.
    merci

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Teste ceci mais adapte auparavant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    Sub Test()
     
        Dim Plage As Range
        Dim Cel As Range
        Dim Dossier As String
     
        'adapter le chemin...
        Dossier = "C:\Dossier\SousDossier\"
     
        'en colonne A de la feuille active à partir de A1
        With ActiveSheet
     
            Set Plage = .Range(.Cells(1, 1), .Cells(.Rows.Count, 1).End(xlUp))
     
        End With
     
        'ancien nom en colonne A et nouveau nom en colonne B
        For Each Cel In Plage
     
            'Impératif, les fichiers doivent être fermés !
            Name Dossier & Cel.Value As Dossier & Cel.Offset(, 1).Value
     
        Next Cel
     
    End Sub

  3. #3
    Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2013
    Messages : 9
    Par défaut
    Merci
    j'ai essayé ton bout de code mais quand j'éxécute j'obtiens un message d'erreur sur la ligne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Name Dossier & Cel.Value As Dossier & Cel.Offset(, 1).Value
    Le message d'erreur est le suivant
    erreur 53 fichier introuvable
    pourtant j'ai bien précisé le chemin où se trouvent mes fichiers

  4. #4
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Les noms des fichiers sont bien en colonne A et les nouveaux noms en colonne B ?
    La première ligne (cellules A1 et B1) sont des entêtes ou non ?
    Sinon, poste un petit classeur exemple !

  5. #5
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Bonjour,
    Citation Envoyé par sophia1989 Voir le message
    Merci
    j'ai essayé ton bout de code mais quand j'éxécute j'obtiens un message d'erreur sur la ligne:

    Name Dossier & Cel.Value As Dossier & Cel.Offset(, 1).Value

    contrôle la valeur de tes variables en passant le curseur de la sourie sur Dossier et Cel.Value....

    ou tu remplace ta ligne par Message bopx

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox Dossier & Cel.Value  & vbCrlf & Dossier & Cel.Offset(, 1).Value

  6. #6
    Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2013
    Messages : 9
    Par défaut
    J'ai essayé d'afficher la valeur de la variable Dossier en utilisant ta ligne de code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox Dossier & Cel.Value  & vbCrlf & Dossier & Cel.Offset(, 1).Value
    çà m'affiche le chemin concaténé au nom de la colonne
    çà ne me renomme pas les fichiers

    ce que je ne comprends pas c'est pourquoi il n'accède pas aux fichiers que je veux renommer et qui sont contenus dans un même répertoire
    je m'explique
    j'ai un répertoire nommé fichiers qui contient deux fichiers a.docx et e.xlsx que je veux renommer
    j'ai un fichier excel qui contient deux colonnes la première nommée ancien nom qui contient dans ses cellules a.docx et e.xslx
    et la deuxième colonne nommée nouveau nom qui contient dans ses cellules b.docx et f.xslx

    quand je déclare au sein du programme la variable Dossier comme ceci Dossier = "C:\Users\user\Desktop\fichiers"
    et que je l'affiche en utilisant msgbox il m'affiche le chemin uniquement
    je voudrais pouvoir récupérer le contenu de la variable pour l'exploiter dans la boucle
    je ne sais pas comment faire

  7. #7
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Citation Envoyé par sophia1989 Voir le message
    J'ai essayé d'afficher la valeur de la variable Dossier en utilisant ta ligne de code
    MsgBox Dossier & Cel.Value & vbCrlf & Dossier & Cel.Offset(, 1).Value

    çà m'affiche le chemin concaténé au nom de la colonne
    çà ne me renomme pas les fichiers
    ...
    Le but du message box c'est d'afficher le contenu de la concaténation de tes variables afin d'être sur que tu effectue le bon calcul ...

    qu'affiche exactement le message box ?

  8. #8
    Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2013
    Messages : 9
    Par défaut
    le msgbox affiche C:\Users\user\Desktop\fichiersanciennom
    C:\Users\user\Desktop\fichiersnouveaunom

Discussions similaires

  1. Renommer des fichiers en masse
    Par Christophe dans le forum Shell et commandes GNU
    Réponses: 9
    Dernier message: 07/08/2015, 10h27
  2. Réponses: 1
    Dernier message: 13/01/2011, 12h45
  3. [Upload] Renommer des fichiers en masse en ligne
    Par gras_s dans le forum Langage
    Réponses: 4
    Dernier message: 04/04/2008, 11h57
  4. Réponses: 4
    Dernier message: 11/07/2007, 20h28
  5. Recherche d'un script PHP pour renommer des fichiers en masse
    Par pekka77 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 20/11/2006, 00h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo