Couleur et nom onglet = Couleur et nom de la cellule A1 même

Bonjour,

Mon souhait que :

- l'onglet de la feuille 1 se nomme comme le texte de la cellule A1 de la feuille 1 ET que la couleur de la feuille 1 soit identique à la couleur de la cellule A1 de la feuille 1.

- l'onglet de la feuille 2 se nomme comme le texte de la cellule A1 de la feuille 2 ET que la couleur de la feuille 2 soit identique à la couleur de la cellule A1 de la feuille 2.

-....etc ......

MERCI

@+++


malpas a écrit :

Bonjour,

Mon souhait que :

- l'onglet de la feuille 1 se nomme comme le texte de la cellule A1 de la feuille 1 ET que la couleur de la feuille 1 soit identique à la couleur de la cellule A1 de la feuille 1.

- l'onglet de la feuille 2 se nomme comme le texte de la cellule A1 de la feuille 2 ET que la couleur de la feuille 2 soit identique à la couleur de la cellule A1 de la feuille 2.

-....etc ......

MERCI

@+++

Bonjour,

Sub test()
For Each sht In Worksheets
 sht.Select
 If Not Range("A1") = "" Then
 With ActiveSheet
   .Name = Range("A1").Value
   .Tab.Color = Range("A1").Interior.Color
 End With
 End If
Next
End Sub

Bonjour le fil, bonjour le forum,

@sabV

Si je peux me permettre une petite variante ...

Option Explicit
Sub test()
Dim Sht As Worksheet

For Each Sht In Worksheets
    If Not Range("A1") = "" Then
        With Sht
            .Name = .Range("A1").Value
            .Tab.Color = .Range("A1").Interior.Color
        End With
    End If
Next
End Sub
 

Joseph

Re-Bonsoir,

Oui c'est ce que je souhaite et cela fonctionne.

Par contre je souhaiterai que le code fonctionne lorsque je sors de la cellule après la saisie du texte; je pense que c'est possible mais je ne suis pas un expert en visual basic donc je vous sollicite à nouveau.

MERCI

@+++

Bonjour le fil, bonjour le forum,

En VBE, regarde chacune des feuilles, elles ont toutes le même code qui est une détection de A1 et un appel à la macro du Module1.RenommeOnglets.

Joseph

68malpas1.xlsm (18.96 Ko)

Bonsoir,

J'ai un doute sur la façon de faire. ça me parait dangereux de lancer la macro sur chaque feuille si on modifie sur une feuille.

Pour ma part, je travail dans l'autre sens ( ormis la couleur que je n'utilise pas ); C'est le nom de la feuille qui pilote la cellule.

Pas de risque d'avoir dupliquer des feuilles sans changer en A1 ce qui pourrait poser problème.

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Target, Range("A1")) Is Nothing Then

    Application.EnableEvents = False

    ActiveSheet.Name = Range("A1")
    ActiveSheet.Tab.Color = Range("A1").Interior.Color

    Application.EnableEvents = True

End If
End Sub

A voir, si tu veux partir dans ce sens dès demain matin j'ai un abouti au taf.

Bonjour le fil, bonjour le forum,

@Harissa23

Oui, c'est très pertinent.

Joseph

J'avoue que mon message n'est pas clair...

Par contre j'ai étais confronté au problème, je préfère au finale la cellule édité par le nom de la feuille que l'inverse.

Au taf, j'ai une feuille que je duplique, toujours bleu, le nom est un numéro de série, xxx ou xxx à xxx, la couleur bleu est là pour limiter une macro du type " pour chaque feuille bleu elle récupère les numéros de pièce,qté...de pièces utilisées "

Mais oui je suis pas clair...c'est pas faute d'avoir chercher à éditer ^^, désolé !

retraite8 a écrit :

Bonjour le fil, bonjour le forum,

En VBE, regarde chacune des feuilles, elles ont toutes le même code qui est une détection de A1 et un appel à la macro du Module1.RenommeOnglets.

Joseph

Bonjour,

Je repris le code de retraite8 est je l'ai adapté à mes conditions et contraintes.

la macro devrait se réaliser à la sortie de la cellule "F5" de l'onglet "test".

Mais un message d'erreur et je tourne en rond depuis vendredi soir sans trouver !

si qq'un a une idée.

MERCI

Bonjour malpas, bonjour le fil, bonjour le forum,

Tel que le mentionnait Harissa23, partir d'une cellule pour renommer un onglet peut parfois poser problème.

Essaie ceci : dans le module1 >

Sub RenommeOnglets()
Dim Sht As Worksheet

On Error Resume Next    ' je n'ai rajouté que cette ligne pour gérer les erreurs

For Each Sht In Worksheets
    If Not Range("F5") = "" Then
        With Sht
            .Tab.Color = .Range("F5").Interior.Color
            .Name = .Range("F5").Value
        End With
    End If
Next
End Sub

Joseph

Bonsoir,

MERCI, cela fonctionne !

@++++

Rechercher des sujets similaires à "couleur nom onglet meme"