Copier une cellule dans une autre feuille selon une liste

Bonjour,

Dans mon fichier de 132 feuilles, j'ai un premier onglet "Sommaire" où la liste des feuilles est inscrite suivant le nom du classeur qu'elle représente.

Par exemple:

A2: Sheet1

B2: Invoice 1152-E1-1

A3: Sheet1 (2)

B3: Invoice 1152-E1-2

Je cherche à renommer les onglets (A) selon ce qui se trouve en B...

Merci de m'aider! J'ai Kutools mais pour une raison que j'ignore, ça ne fonctionne pas...

Bonjour,

en supposant que la feuille "Sommaire" soit en premier,

Sub Renommer_Feuille()
Set sh1 = Sheets("Sommaire")
LastRow = sh1.Cells(Rows.Count, 1).End(xlUp).Row
For Each c In sh1.Range("A2:A" & LastRow)
   Sheets("Sheet" & c.Row - 1).Name = sh1.Cells(c.Row, 2).Value
Next
End Sub

Bonjour!

Ça n'a fonctionné seulement que pour la première feuille qui se nomme Sheet1, les suivantes se nomment ainsi:

Sheet1

Sheet1 (2)

Sheet1 (3)

Sheet1 (4)

Sheet1 (5)

Sheet1 (6)

Sheet1 (7)

Sheet1 (8)

Sheet1 (9)

Sheet1 (10)

Sheet1 (11)

Sheet1 (12)

Sheet1 (13)

Sheet1 (14)

.......... jusqu'à Sheet1 (132)

Bonjour mchardy418,

Je te propose ce code VBA :

Option Explicit

Sub Essai()
  Worksheets("Sommaire").Select: Application.ScreenUpdating = 0
  Dim dlig&, lig&, chn$: dlig = Cells(Rows.Count, 2).End(xlUp).Row
  For lig = 2 To dlig
    With Cells(lig, 1)
      chn = .Offset(, 1) ' chn : nouveau nom de la feuille
      If chn <> "" Then
        If .Value <> "" Then Worksheets(.Value).Name = chn
      End If
    End With
  Next lig
End Sub

dhany

Bonjour le forum,

Dans son énoncé initial, mchardy418 a écrit :

J'ai Kutools mais pour une raison que j'ignore, ça ne fonctionne pas...

Pour ceux qui se demandent quel est ce logiciel Kutools, voici 2 liens :

dhany

Ça fonctionne parfaitement!!! MERCI

Mon problème c'est qu'il y a des cellules où le texte contient plus de 35 caractères. Est-ce que je pourrais alors copier dans cellule A1 de la sheet du nom en A, le contenu de B?

Attention ! un nom de feuille est de 31 caractères maximum !!!

Donc si A1 (par exemple) contient une chaîne de 35 caractères : [B1] = Left$([A1], 31) fait qu'on aura bien en B1 le nom de feuille sur 31 caractères maxi ; oui mais en cas de noms trop proches, cette troncature risque d'aboutir à des doublons de noms de feuille ➯ plantage ! exemple : "ABCFGH2" tronqué à 4 caractères donne "ABCF" et "ABCFJK5" tronqué à 4 caractères donne la même chose ; or 2 feuilles différentes ne peuvent pas avoir le même nom !

dhany

Rechercher des sujets similaires à "copier feuille liste"