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 une feuille [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Mars 2011
    Messages
    316
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Contrôleur de Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2011
    Messages : 316
    Par défaut Renommer une feuille
    Bonjour,

    Je reprends comme chaque année un fichier composé de code macro. Jusqu'ici sans encombre

    Ce fichier est construit de la façon suivante
    1 onglet reprenant les données des 4 ou 5 onglets le précédant
    Le premier onglet reprend le nom du mois en fonction d'une cellule
    Les onglets suivants reprennent les numéros de semaine en fonction de la valeur d'une cellule

    Sauf que cette année la macro en erreur 1004 avec pour intitulé "impossible de renommer une feuille comme une autre feuille, ......"

    voici le code

    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    Sub ms()
    Dim K As Long
    Dim i As Long
    Dim j As Long
    Dim l As Long
     
    Application.ScreenUpdating = False
     
     
    K = Worksheets(9).Cells(8, 37).Value
     
     
    Worksheets(9).Name = Worksheets(9).Cells(5, 37).Value
      For i = 2 To 7
     Worksheets(i).Name = Worksheets(i).Cells(6, 1).Value
                If Worksheets(i).Cells(19, 3).Value = 0 Then
                Worksheets(i).Visible = False
                Else
                Worksheets(i).Visible = True
                For j = 1 To 9
     
                Worksheets(j).Tab.ColorIndex = (K)
                Next j
     
                 End If
            Next i
     
                For j = 11 To 108
        If Cells(6, j) = "x" Then
        Columns(j).Hidden = True
        Else
        Columns(j).Hidden = False
     
        End If
             Next j
     
                For l = 18 To 210
                If Cells(l, 107) = "X" Then
                Rows(l).Hidden = True
                Else
                Rows(l).Hidden = False
                End If
                Next l
     
     
    Range("K15").Select
     
    Application.ScreenUpdating = True
     
     
    End Sub
    L'erreur se déclenche sur la ligne 15 de ce code.

    Merci de votre aide

  2. #2
    Membre Expert
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Par défaut
    Bonjour ALEX80800,

    L'erreur ne te semble pas explicite ?
    En cellule A6 (ou Worksheets(i).Name = Worksheets(i).Cells(6, 1).Value) tu as une valeur déjà placée comme nom de feuille ! ^^

    Cordialement,
    Kimy

  3. #3
    Membre éclairé
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Mars 2011
    Messages
    316
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Contrôleur de Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2011
    Messages : 316
    Par défaut
    Kimy_Ire

    J'ai procédé autrement, j'ai demandé le mois de mars puis j'ai demandé le mois de février et la macro fonctionne

    A moitié résolu pour moi, car ça ne règle pas l'erreur.

    Mais pour te répondre, pourquoi la macro ne se met pas en erreur en ligne 13 du code. Le principe est le même

  4. #4
    Membre Expert
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Par défaut
    Je ne comprends pas grand chose à ce que tu fais en fait...
    Tu changes le nom de ta "Worksheets(9)" avec une valeur comprise dedans : Worksheets(9).Cells(5, 37).Value. Ok, pourquoi pas.

    Après, tu te situes dans une boucle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    For i = 2 To 7
    Worksheets(i).Name = Worksheets(i).Cells(6, 1).Value
    Je ne sais ni comment ni pourquoi tu fais cela de cette manière pour autant, tout ce que je sais, c'est que lors d'une itération de i tu essayes de nommer une feuille avec un nom déjà présent dans une autre.

    Excel ne te sort pas des messages d'erreurs pour le plaisir généralement.

    Cordialement,
    Kimy

  5. #5
    Membre éclairé
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Mars 2011
    Messages
    316
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Contrôleur de Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2011
    Messages : 316
    Par défaut
    J'ai compris l'objet de l'erreur

    Pour résumé la construction du fichier

    Onglet 1 le nom du mois repris sur la cellule Ak5
    5 onglets suivants reprenne le numéro de la semaine de la cellule A6
    La cellule A6 est un calcul en fonction d'une table excel qui en fonction d'une date (cellule k4) donne le numéro de semaine
    Le maxi de semaine sur 1 mois est de 6 et le mini est de 5. Donc pour la 5° semaine un calcul spécifique est entré pour dire que si la date est en #NA le numéro de semaine est 0 sinon les autres onglets ont une date donc un numéro de semaine.
    Sauf que pour l'année 2016, le mois de janvier n'a que 4 semaines. Et que si je demande à la macro de passer au mois de février il ne peut renommer l'onglet de la 6° semaine à 0 si un onglet a déjà pour nom 0 (ce qui est le cas de l'onglet de la 5° semaine)
    Espérant avoir clair

    Donc j'ai paramétrer un autre calcul en cellule A6 pour la 6° semaine

    Et la macro fonctionne

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

Discussions similaires

  1. Renommer une feuille
    Par lilemy dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 07/06/2007, 11h01
  2. Comment renommer une feuille en VBA
    Par Jusomi31 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 26/04/2007, 15h43
  3. [VBA-E]copier et renommer une feuille excel
    Par la-breche dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 14/03/2007, 13h49
  4. Renommer une feuille Excel selon table/Access
    Par PAULOM dans le forum Access
    Réponses: 3
    Dernier message: 24/04/2006, 15h32
  5. [VBA-E]renommer une feuille d'un classeur
    Par jeremiegrenoble dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 09/03/2006, 09h17

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