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 :

Nom onglet fichier excel [XL-2013]


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    Contrôleur de gestion
    Inscrit en
    Juin 2014
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Contrôleur de gestion

    Informations forums :
    Inscription : Juin 2014
    Messages : 15
    Par défaut Nom onglet fichier excel
    Bonjour,
    J'ai un fichier avec un nombre X d'onglet.
    Je souhaiterais que chaque onglet s'intitule comme sa cellule L12
    Est ce que quelqu'un a une solution?
    Merci d'avance

  2. #2
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For each Onglet in sheets
       Onglet.name = Onglet.Range("L12")..Value
    Next Onglet

  3. #3
    Membre averti
    Homme Profil pro
    Contrôleur de gestion
    Inscrit en
    Juin 2014
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Contrôleur de gestion

    Informations forums :
    Inscription : Juin 2014
    Messages : 15
    Par défaut
    merci,

    mais j'ai un message d'erreur

    Erreur de Compilation:
    Erreur de syntaxe

  4. #4
    Membre Expert Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Par défaut
    salut il y a un "." de trop à "..value"
    il faut mettre ".value"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For Each Onglet In Sheets   
         Onglet.Name = Onglet.Range("L12").Value
    Next Onglet
    mais si il n'y a pas de valeur dans la cellule L12 il y aura une erreur....

    tu peux l'éviter avec un petit test comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    For Each onglet In Sheets
       If onglet.Range("L12") <> "" Then
          onglet.Name = onglet.Range("L12").Value
       Else
            MsgBox "La cellule L12 de l'onglet " & onglet.Name & " est vide"
       End If
    Next onglet

  5. #5
    Membre averti
    Homme Profil pro
    Contrôleur de gestion
    Inscrit en
    Juin 2014
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Contrôleur de gestion

    Informations forums :
    Inscription : Juin 2014
    Messages : 15
    Par défaut
    T'es un as,
    SUPER
    Merci

    je voudrais ajouter a cette macro :
    - mise en page de toutes les feuilles du classeur : ajuster sur une page
    - copier toutes les feuilles dans fichier TEST MACRO

    merci davance

  6. #6
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par Niconewrest Voir le message
    - mise en page de toutes les feuilles du classeur : ajuster sur une page
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Worksheet.PageSetup.FitToPagesTall = 1
    Worksheet.PageSetup.FitToPagesWide = 1
    Pour l'insérer dans le code qui a déjà été donné, il faut bien sûr remplacer Worksheet par Onglet.

    - copier toutes les feuilles dans fichier TEST MACRO
    Mettre en dehors de la boucle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ThisWorkbook.SaveCopyAs "TEST MACRO"

  7. #7
    Membre averti
    Homme Profil pro
    Contrôleur de gestion
    Inscrit en
    Juin 2014
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Contrôleur de gestion

    Informations forums :
    Inscription : Juin 2014
    Messages : 15
    Par défaut
    Dis toi que tu parle à une brèle de la VBA,
    mais qui essaye....

    j'ai donc mis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub Misenpage()
    For Each ONGLET In Sheets
         ONGLET.Name = ONGLET.Range("L12").Value
    Next ONGLET
    ONGLET.PageSetup.FitToPagesTall = 1
    ONGLET.PageSetup.FitToPagesWide = 1
    End Sub
    Et ca marche pas....

  8. #8
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    Bonjour, bonjour !

    En fait il y a une erreur de casting dès la ligne n° … Ah zut !

    conformément aux règles du forum ‼ (avec même une animation pour les pas doués …)

  9. #9
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par Niconewrest Voir le message
    Dis toi que tu parle à une brèle de la VBA,
    mais qui essaye....
    Comme le disait le philosophe Alain : "Chacun est aussi intelligent qu'il veut".
    Sans cautionner une affirmation aussi extrême, je me contenterais de prétendre : "L'aide VBA est accessible à tous".

    Je te conseille donc d'éviter de te contenter de recopier ce code mais d'essayer de le comprendre en allant te renseigner dans l'aide VBA au sujet des différents éléments qu'il contient.
    Un autre philosophe géographiquement et historiquement plus éloigné, Confucius, a émis une maxime à laquelle je me réfère souvent : "Donne un poisson à un homme, tu le nourris pour la journée. Apprends-lui à pêcher et tu le nourris pour la vie".

    Pour en revenir à des considération plus terre-à-terre, la "boucle" dont je parle concerne ce qui va de "For" à "Next". Il faut donc placer les deux nouvelles lignes entre ces deux lignes-là.
    Telle qu'il est, ton code ne changera la mise en page que pour le dernier onglet (celui sur lequel pointe la variable "Onglet" une fois la boucle terminée.

    Par contre, c'était le bon emplacement pour le SaveCopyAs qui, lui, concerne le classeur tout entier (il se réfère au Workbook) et non à chaque feuilles (Sheet ou Worksheet) individuellement.

    Dernier détail : à ta place, je commencerai le code (juste après la ligne du Sub) par une déclaration :
    Ca marche très bien sans pour une petite macro comme celle-ci, mais si tu comptes progresser en VBA, autant prendre de bonnes habitudes et déclarer tes variables avec leur type.

  10. #10
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut


    Sheet

    Worksheet !

    Sinon risque d'erreur de casting

  11. #11
    Membre averti
    Homme Profil pro
    Contrôleur de gestion
    Inscrit en
    Juin 2014
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Contrôleur de gestion

    Informations forums :
    Inscription : Juin 2014
    Messages : 15
    Par défaut
    Super
    Merci bcp

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2003] Inserer une variable dans un nom de fichier Excel
    Par Zertozerto dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 08/03/2011, 11h35
  2. [AC-2003] Exporter vers Excel - Incrémenter le nom du fichier Excel
    Par jeanpierre78 dans le forum IHM
    Réponses: 8
    Dernier message: 22/02/2011, 11h52
  3. Importer nom du fichier excel dans un champs access
    Par ariehh dans le forum Access
    Réponses: 2
    Dernier message: 20/07/2009, 09h50
  4. Récupérer le nom du fichier Excel ouvert
    Par malabarbe dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 11/06/2009, 12h52
  5. récuperer nom de fichier Excel dans acces
    Par darkspoilt dans le forum VBA Access
    Réponses: 1
    Dernier message: 21/05/2007, 06h09

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