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 feuille sur un ensemble de fichiers .xls


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Inscrit en
    Décembre 2013
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Décembre 2013
    Messages : 17
    Points : 6
    Points
    6
    Par défaut Renommer feuille sur un ensemble de fichiers .xls
    Bonjour,

    J'aurais besoin de renommer automatiquement la première feuille de chaque .xls d'un dossier en "Sheet1"

    Le chemin du dossier est D:\Users\pch\Desktop\Claims

    Je n'arrive pas à trouver la bonne macro,

    Merci beaucoup d'avance pour votre aide

  2. #2
    Membre éprouvé Avatar de defluc
    Homme Profil pro
    Architecte
    Inscrit en
    Mai 2002
    Messages
    1 383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 383
    Points : 1 199
    Points
    1 199
    Par défaut
    Utilises l'enregistreur de macros et tu auras une solution toute faite.
    Ouvrir un nouveau classeur
    Lancer l'enregistreur de macros
    Ouvrir un premier classeur de D:\Users\pch\Desktop\Claims
    Renommer la feuille
    Fermer le classeur en le sauvant
    Fermer l'enregistreur de macros
    Editer la macro

    L'adapter par une boucle sur tous les classeurs du dossier

  3. #3
    Futur Membre du Club
    Inscrit en
    Décembre 2013
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Décembre 2013
    Messages : 17
    Points : 6
    Points
    6
    Par défaut
    Merci pour ta réponse,

    Comment puis-je l'adapter par une boucle stp :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub Rename_tab()
    '
    ' Rename_tab Macro
    '
     
    '
        Workbooks.Open Filename:= _
            "D:\Users\pch\Desktop\Claims\CLA_CY_ADH_IT_201312_20140116.xls"
        Sheets("Sheet1").Select
        Sheets("Sheet1").Name = "Sheet1"
        Range("B29").Select
        ActiveWorkbook.Save
        ActiveWindow.Close
    End Sub

  4. #4
    Expert éminent
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Points : 7 149
    Points
    7 149
    Billets dans le blog
    7
    Par défaut
    Bonjour,

    Bienvenu sur le faux rhum

    Pour boucler sur les fichiers d'un répertoire, tu peux consulter la FAQ à ce sujet.

    LES FICHIERS SUR LA FAQ DEVELOPPEZ.COM

    Bien Cordialement.

    Marcel

    Dernier billet:
    Suppression des doublons d'un tableau structuré, gestion d'un array

    Pas de messagerie personnelle pour vos questions, s'il vous plaît. La réponse peut servir aux autres membres. Merci.


  5. #5
    Futur Membre du Club
    Inscrit en
    Décembre 2013
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Décembre 2013
    Messages : 17
    Points : 6
    Points
    6
    Par défaut
    Bonjour Marcel,

    J'ai consulté le FAQ mais je n'arrive pas à appliquer correctement la boucle, pourrais-je avoir votre aide svp ?

    Merci

  6. #6
    Expert éminent
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Points : 7 149
    Points
    7 149
    Billets dans le blog
    7
    Par défaut
    Salut,

    mais je n'arrive pas à appliquer correctement la boucle
    Pourrais-tu retourner ton dernier code en indiquant la(les) ligne(s) de code qui pose problème.

    Bien Cordialement.

    Marcel

    Dernier billet:
    Suppression des doublons d'un tableau structuré, gestion d'un array

    Pas de messagerie personnelle pour vos questions, s'il vous plaît. La réponse peut servir aux autres membres. Merci.


  7. #7
    Futur Membre du Club
    Inscrit en
    Décembre 2013
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Décembre 2013
    Messages : 17
    Points : 6
    Points
    6
    Par défaut
    Le voici :

    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
    Sub Rename_tab()
    '
    ' Rename_tab Macro
    '
     
    '
        Workbooks.Open Filename:= _
            "D:\Users\pch\Desktop\Claims\*.xls"
        Sheets("Sheet1").Select
        Sheets("Sheet1").Name = "Sheet1"
        Range("B29").Select
        ActiveWorkbook.Save
        ActiveWindow.Close
    End Sub 
    Loop
    Il manque apparemment un "Do", mais je ne sais pas où le placer.
    Le but est que tous les .xls du dossier aient le même nom de feuille "Sheet1"

    Merci pour ton aide

  8. #8
    Expert éminent
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Points : 7 149
    Points
    7 149
    Billets dans le blog
    7
    Par défaut boucle fichiers
    Salut,

    3 remarques :
    - Je ne vois pas de boucle sur les fichiers
    - Evite ces p... de Select qui ne servent à rien d'autre qu'à rendre la lecture du code plus hardue en l'alourdissant
    - Utilise les balises de code lorqsue tu postes une procédure.

    Dans ton cas, tu pourrais utiliser une procédure argumentée.

    A ADAPTER!

    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
    27
    28
    29
    30
    Option Explicit
     
    Sub BoucleFichiers()
        Dim Chemin As String, Fichier As String
     
        'Définit le répertoire contenant les fichiers
        Chemin = "C:\dossier\"
     
        'Boucle sur tous les fichiers xls du répertoire.
        Fichier = Dir(Chemin & "*.xls")
        'Utilisez la syntaxe suivante pour boucler sur tous les types de fichiers:
        'Fichier = Dir(Chemin & "*.*")
     
        Do While Len(Fichier) > 0
            'écrit le résultat dans la fenêtre d'exécution (Ctrl+G).
            Call change_nom_feuille(Chemin & Fichier)
            Fichier = Dir()
        Loop
     
    End Sub
     
    Public Sub change_nom_feuille(lefichier As String)
     
        Workbooks.Open Filename:=lefichier
        With Workbooks(lefichier)
                .Sheets("Sheet1").Name = "Sheet1"
                .Close SaveChanges:=True
        End With
     
    End Sub
    Etudie bien ce code en en comprenant la logique, et reviens si nécessaire.

    Bien Cordialement.

    Marcel

    Dernier billet:
    Suppression des doublons d'un tableau structuré, gestion d'un array

    Pas de messagerie personnelle pour vos questions, s'il vous plaît. La réponse peut servir aux autres membres. Merci.


  9. #9
    Futur Membre du Club
    Inscrit en
    Décembre 2013
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Décembre 2013
    Messages : 17
    Points : 6
    Points
    6
    Par défaut
    J'ai adapté le code comme suit, mais rien ne se passe lors de l'exécution.
    Désolé mais je suis novice en matière de macros.

    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
    27
    28
    29
    30
    Option Explicit
     
    Sub BoucleFichiers()
        Dim Chemin As String, Fichier As String
     
        'Définit le répertoire contenant les fichiers
        Chemin = "D:\Users\pch\Desktop\Claims"
     
        'Boucle sur tous les fichiers xls du répertoire.
        Fichier = Dir(Chemin & "*.xls")
        'Utilisez la syntaxe suivante pour boucler sur tous les types de fichiers:
        'Fichier = Dir(Chemin & "*.*")
     
        Do While Len(Fichier) > 0
            'écrit le résultat dans la fenêtre d'exécution (Ctrl+G).
            Call change_nom_feuille(Chemin & Fichier)
            Fichier = Dir()
        Loop
     
    End Sub
     
    Public Sub change_nom_feuille(lefichier As String)
     
        Workbooks.Open Filename:=lefichier
        With Workbooks(lefichier)
                .Sheets("Sheet1").Name = "Sheet1"
                .Close SaveChanges:=True
        End With
     
    End Sub

  10. #10
    Expert éminent
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Points : 7 149
    Points
    7 149
    Billets dans le blog
    7
    Par défaut
    Permets-moi de me répéter.
    Les balises de code!

    Pardon. Il fallait 2 arguments.

    A adapter (répertoire)

    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
    27
    28
    29
    30
    31
    32
    Option Explicit
     
    Sub BoucleFichiers()
        Dim Chemin As String, Fichier As String
     
        'Définit le répertoire contenant les fichiers
        Chemin = "tata\"
     
        'Boucle sur tous les fichiers xls du répertoire.
        Fichier = Dir(Chemin & "*.xls")
        'Utilisez la syntaxe suivante pour boucler sur tous les types de fichiers:
        'Fichier = Dir(Chemin & "*.*")
     
        Do While Len(Fichier) > 0
            'écrit le résultat dans la fenêtre d'exécution (Ctrl+G).
            Debug.Print Fichier
            Debug.Print Chemin & Fichier
            Call change_nom_feuille(Chemin, Fichier)
            Fichier = Dir()
        Loop
     
    End Sub
     
    Public Sub change_nom_feuille(ledir As String, lefichier As String)
     
        Workbooks.Open Filename:=ledir & lefichier
        With Workbooks(lefichier)
                .Sheets(1).Name = "Sheet1"
                .Close SaveChanges:=True
        End With
     
    End Sub

    Pour sélectionner la première feuille, coder

    Un conseil.
    Effectue une sauvegarde (copie) de ton répertoire et les fichiers qui y sont attachés avant de lancer ta procédure.

    Bien Cordialement.

    Marcel

    Dernier billet:
    Suppression des doublons d'un tableau structuré, gestion d'un array

    Pas de messagerie personnelle pour vos questions, s'il vous plaît. La réponse peut servir aux autres membres. Merci.


  11. #11
    Futur Membre du Club
    Inscrit en
    Décembre 2013
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Décembre 2013
    Messages : 17
    Points : 6
    Points
    6
    Par défaut
    Merci pour le retour ( j'avais pourant incorporé des balises )
    Cependant rien ne se passe.
    Il faut bien placer le fichier contenant la macro dans le même répertoire que les fichiers?

  12. #12
    Expert éminent
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Points : 7 149
    Points
    7 149
    Billets dans le blog
    7
    Par défaut
    Salut,

    L'emplacement du classeur contenant la procédure n'importe pas.

    Mets la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Call change_nom_feuille(Chemin, Fichier)
    en libellé.
    Puis exécute ta procédure pas à pas.

    Quel résultat te donne ta fenêtre Exécution (CTRL + G)?

    Vois-tu défiler les noms de fichiers et leur chemin complet.
    Dans la négative, c'est ton adressage qu'il faut revoir.

    Bien Cordialement.

    Marcel

    Dernier billet:
    Suppression des doublons d'un tableau structuré, gestion d'un array

    Pas de messagerie personnelle pour vos questions, s'il vous plaît. La réponse peut servir aux autres membres. Merci.


  13. #13
    Futur Membre du Club
    Inscrit en
    Décembre 2013
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Décembre 2013
    Messages : 17
    Points : 6
    Points
    6
    Par défaut
    Ok merci je vais voir ça

Discussions similaires

  1. Réponses: 5
    Dernier message: 12/11/2010, 13h14
  2. [Batch] Exécuter une commande sur un ensemble de fichiers
    Par flo44 dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 23/04/2010, 16h07
  3. traitement sur un ensemble de fichiers selectionner
    Par captainamerica75 dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 13/09/2007, 18h22
  4. Réponses: 37
    Dernier message: 03/10/2006, 17h34
  5. Find & replace sur un ensemble de fichiers
    Par totofweb dans le forum Shell et commandes GNU
    Réponses: 14
    Dernier message: 23/12/2005, 14h29

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