Renomer mes feuilles de classeur Excel

Bonjour,

Je cherche un code VBA pour reprendre dans chaque feuille du classeur les cellules A5 et B2 comme nom de feuille.

J'ai essayé de noter ceci dans VBA:

Sub Renommer_onglets()
ActiveSheet.Name = [A5] & [B2]
End Sub

Pour que cela fonctionne, il faut que je me mette sur chaque feuille du classeur et que j'active ma macro. Cela est donc trop long....

J'aimerais appuyer sur ma macro et que cela se fasse automatique pour tout mon classeur en activant qu'une seule fois ma macro.

De plus, il faudrait rajouter une condition du nombre de lettres à 25 pour le nom de l'onglet.

Pourriez-vous me dire quoi noter dans VBA ?

Merci d'avance.

Sandrine.

Hello,

De plus, il faudrait rajouter une condition du nombre de lettres à 25 pour le nom de l'onglet.

J'ai pas bien compris ce que tu souhaites faire

Tu ne pourras pas mettre 2 fois le même nom dans ton classeur

Je souhaite que toutes les feuilles de mon classeur correspondent aux noms de mes cellules A5 et B2 fusionnées de chaque feuille et ceux sur tout mon classeur.
Les noms des cellules sont bien sûr différentes sur toutes mes feuilles du classeur, il n'y aura pas deux fois le même nom .

Dans le nom de chaque feuille je souhaite que la macro reprennent uniquement les 25 premiers caractères de mes cellules A5 et B2.

Est ce plus clair ?

Merci.

Bonjour

un exemple

la macro est dans le thisworkbook

si cela te convient tu passes le sujet en résolu

Cordialement

15classeur1.xlsm (14.18 Ko)

Bonjour le forum

Bonjour sandrine-c, Joco7915

Je te propose ce code. Attention les 2 espaces vides compris entre & " "& sont considérés comme 2 caractères de la chaine des 25.

Option Explicit

Sub Renommer_Nom_Feuilles()
  Dim Sh As Worksheet, Txt As String

  For Each Sh In Sheets
    With Sh
       Txt = .Range("A5") & "  " & .Range("B2")
         .Name = Left(Txt, 25)
    End With
  Next Sh

End Sub
9sandrine.xlsm (20.92 Ko)

Bonjour…

Autre proposition tenant compte des changements de saisies dans les différentes cellules de base* :

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal R As Range)
  If R.Address = "$A$5" Then
    Sh.Name = "OUPS_" & [B2]: R.Font.Color = vbRed
    R.Font.Color = vbBlack: Sh.Name = Left([A5], 25) & "_" & [B2] ‘noir pour la   couleur d’origine
End If
  If R.Address = "$B$2" Then
    Sh.Name = Left([A5], 25) & "_OUPS": R.Font.Color = vbRed
    R.Font.Color = vbBlack: Sh.Name = [A5] & "_" & [B2]
    End If
End Sub

En cas d’erreur pour le changement de contenu d’une seule des 2 cellules prévues dans l’onglet actif, un message de contrôle d’Excel indique une inadaptation et le nom de la saisie est remplacé par OUPS (pour le visuel).

*s’il y a d’autres onglets non concernés par cette étape, c’est une autre histoire : il faudra réadapter ce code !

Remarque personnelle :

«si le sujet te semble résolu signale le» je trouve que cette condition est à éviter dans la mesure où elle peut empêcher tout autre intervenant de proposer une solution (plus complète voir plus simple, …) sachant qu’il est rare d’avoir un contexte précis donc qui peut engendrer des mises à jour incessantes.

Par contre je suis pour proposer «si cela t'a plu, n'oublie pas de "liker"» pour des remerciements envers les intervenants qui ont donné un peu de temps pour aider le demandeur.

Bonne fin de journée aux lecteurs de passages .

9nom-d-onglets.xlsm (107.78 Ko)

Bonsoir le fil

Bonsoir Ordonc

@Ordonc - Sandrine recherche une macro pour renommer TOUTES les feuilles de son classeur :

Je cherche un code VBA pour reprendre dans chaque feuille du classeur les cellules ... J'aimerais appuyer sur ma macro et que cela se fasse automatique pour tout mon classeur en activant qu'une seule fois ma macro.

Ton code fait son "job" pour chaque nouvelle feuille créée et ce de façon dynamique mais je ne pense pas (peut être me trompe je) que c'est cela qu'elle désirait.

Nota : Concernant la phrase : "Si le sujet te semble résolu signale le". Tu n'as pas tord dans ton raisonnement mais lorsqu'un demandeur remarque un sujet dit "Résolu", il peut se dire : là, je peux peut être avoir la solution à mon problème - Tout cela n'engage que moi bien sur. Et rien n'empêche toute nouvelle réponse (Le sujet remonte).

Bonne soirée à toi ainsi qu'à toutes & à tous

@micalement à toi - Eric

Bonsoir,

Merci à tous pour votre aide.

@Ericool02, tu réponds parfaitement à ma demande, ça fonctionne parfaitement et je comprends la macro. Merci beaucoup

Bonne soirée à tous.

Re…

Sandrine, si tu pars de l’idée que toutes tes saisies conviendront (tu connais tous les risques courus et pourtant il y en a énormément !) tu peux te contenter du code de Ericcool02 (salut ) qui fonctionne très bien tout en lui accordant un like pour accompagner tes remerciements !

Cependant, mais, hé oui (il y en a toujours un), s’il y a une saisie refusée (du genre depuis:) dans le premier (ou autre) onglet, la macro s‘arrêtera et il n’y aura pas de mises à jour pour les noms suivants pourtant valides.

Pour ce faire, il faudra corriger les erreurs. Dans le fichier joint, supprimer(exemple avec un seul refus) les : pour ne garder que depuis et relancer la macro !

oups

Ma proposition part du principe «Il vaut mieux prévenir que guérir !» et que je n’ai pas en tête toutes les conditions de refus ! J'évite les blocages en signalant les causes à corriger !

11nom-d-onglets.xlsm (107.78 Ko)

Nota : toutes les feuilles créées d'un classeur sont nommées (et cela sans doublon), non ?

Bonne continuation à tous les lecteurs ...

Rechercher des sujets similaires à "renomer mes feuilles classeur"