Renommer des onglets automatiquement

Bonjour à tous,

Mon problème est le suivant : Comment peut-on renommer des onglets automatiquement à partir d'une même feuille et de renommer aussi leur nom dans des macros ?

Je m'explique.

Dans mon fichier, j'ai mon premier onglet qui me permet d'activer un certains nombre d'onglet en fonction d'un nombre renseigné dans une cellule. Une fois généré, je veux pouvoir modifier le nom de ces onglets à partir de ce premier onglet. Mais voilà, si je modifie leurs noms, la macro qui me permet de faire apparaître ces onglets ne fonctionne plus ...

J'ai réussit a trouvé comment changer le nom des onglets sur votre forum mais cela ne se fait pas automatiquement on dois cliquer sur l'onglet pour que le changement soit pris en compte.

Donc :

1)Pouvais-vous me dire s'il est possible de modifier le nom des onglets seulement en remplissant des cellules ?

2)Connaissez-vous une macro (ou autre) qui permette de modifier un nom d'onglet dans une autre macro en fonction d'une cellule ?

J'espère avoir été clair.

Pour vous aider à comprendre, je vous joins le fichier en question.

Les cellules à remplir sont dans l'onglet "Questionnaire" cellules G9 à G28.

Merci pour vos réponses.

Bonjour

En premier lieu, enlevez toutes les macros placées dans toutes les feuilles E0...

Ensuite mettre ce code dans THISWORKBOOK

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim i As Integer
On Error Resume Next
i = ActiveSheet.Index
If i >= 3 Then Sheets(i).Name = Sheets("Questionnaire").Range("G" & i + 6)
End Sub

Ensuite modifier votre macro dans la feuille questionnaire

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("D14")) Is Nothing Then
On Error Resume Next
....
....
End if
End sub

on peut rendre ce code plus petit aussi

Si ok, merci de cloturer le fil lors de votre réponse en cliquant sur le V vert à coté du bouton EDITER

Cordialement

Bonjour Dan,

Merci pour la réponse rapide.

je vais essayer et je vous tiens au courant


Cela fonctionne même si j'ai pas compris ce que signifie ce code

Je suis pas contre un code plus petit si vous l'avez.

Par contre, est-il possible de changer le nom sans avoir à cliquer sur l'onglet pour que cela le prenne en compte ?

re

Par contre, est-il possible de changer le nom sans avoir à cliquer sur l'onglet pour que cela le prenne en compte ?

utilisez ce code à placer dans la feuille Questionnaire qui répond à votre demande et masque ou affiche les feuilles selon la valeur de D14

Private Sub Worksheet_Change(ByVal Target As Range)
 Dim i As Byte
 Application.ScreenUpdating = False
 If Not Intersect(Target, Range("D14")) Is Nothing Then
     For i = 1 To 20
        On Error Resume Next
        If i + 2 = Target + 2 Then
            Worksheets(Target + 2).Visible = 1
        ElseIf Target = 0 Then Worksheets(i + 2).Visible = 1
        Else: Worksheets(i + 2).Visible = 0
    End If
    Next
End If
If Not Intersect(Target, Range("G9:G28")) Is Nothing Then
    Sheets(Target.Row - 6).Name = Sheets("Questionnaire").Range("G" & Target.Row)
End If
End Sub

Un chiffre 0 en D14 fera réapparaitre toutes les feuilles masquées

Cordialement

Bonjour,

Merci pour le code.

Petit problème, c'est qu'il me fait apparaitre juste une seule feuille alors que je veux afficher un nombre de feuille (ex: si je marque 3 je veux faire apparaitre les 3 premières feuilles). Sinon pour la prise en compte de la modif du nom de la feuille c'est nickel c'est ce que je voulais.

Cordialement.

re

Dans le code modifiez ces deux lignes

If i + 2 <= Target + 2 Then
Worksheets(i + 2).Visible = 1

Cordialement

Re Dan,

Merci pour tous les codes, mon problème est résolu et cela fonctionne comme je le souhaitais.

Rechercher des sujets similaires à "renommer onglets automatiquement"