liste déroulante renomme Onglet

jo50160

XLDnaute Junior
bonsoir à tous, voilà je voudrais pouvoir renommer mes onglet avec une liste déroulante,
j'ai récupérer ce code sur ce forum,

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("E1")) Is Nothing Then
ActiveSheet.Name = Range("E1")
End If
End Sub

qui marche très bien via une cellule, mais pas avec une liste déroulante.

Si quelqu'un pouvez m'aider ça serait sympa.

Dans ma feuille de calcul j'ai,

1 liste déroulante avec janvier,février, ect.

Et une autre avec les année 2010,2011,etc.

Merci
PS je suis nul en VBA
 

Hulk

XLDnaute Barbatruc
Re : liste déroulante renomme Onglet

Hello,

Ben si j'ai bien compris ton code fonctionne, mais il faut maintenant que tu crées ta liste dans la celllule E1 !

Click "Données/Validation" puis dans "Autotiser" tu mets "Liste" et dans "Source" tu mets par exemple A;B;C;D

Le mieux est de déposer ton fichier allégé et sans données confidentielles !
 
Dernière édition:

jo50160

XLDnaute Junior
Re : liste déroulante renomme Onglet

Hello,

Ben si j'ai bien compris ton code fonctionne, mais il faut maintenant que tu crées ta liste dans la celllule E1 !

Click "Données/Validation" puis dans "Autotiser" tu mets "Liste" et dans "Source" tu mets par exemple A;B;C;D

Le mieux est de déposer ton fichier allégé et sans données confidentielles !

Salut Hulk

Non, si tu écris normalement dans la "cellule E1", le code fonctionne très bien, mais par-contre dès que tu créer une liste déroulante dans la "cellule E1" cela ne fonctionne pas.
 

jo50160

XLDnaute Junior
Re : liste déroulante renomme Onglet

Salut Hulk

je te joint mon fichier, tu trouvera en feuille 2 l'explication.

Merci pour ton aide.
 

Pièces jointes

  • essai2.xlsm
    20.9 KB · Affichages: 131
  • essai2.xlsm
    20.9 KB · Affichages: 141
  • essai2.xlsm
    20.9 KB · Affichages: 137

Hulk

XLDnaute Barbatruc
Re : liste déroulante renomme Onglet

Bonjour tout le monde :)

Ben étant donné que je travaille (encore :eek:) avec Excel 2003, j'ai du convertir ton fichier xlsm en xls et j'imagine que c'est pour ça que je n'ai pas vu de liste déroulante dans ton classeur.

Cela dit essaie ce code, pas de raison qu'il ne joue pas..
Code:
Sub InsereFeuille()

    On Error Resume Next

    FeuilleCrée = Range("I1").Text

    Sheets(FeuilleCrée).Select

    If Err = 9 Then 'Si la feuille n'existe pas
        Sheets("Feuil2").Copy After:=Sheets(Sheets.Count)
        ActiveSheet.Name = Sheets("Feuil2").Range("I1").Text
    Else
        MsgBox "La feuille ''" & FeuilleCrée & "'' existe déjà !"
    End If

    On Error GoTo 0
    
    Sheets("Feuil2").Select

End Sub
Méthode inspirée de Pyrof, membre du Forum, merci à lui.


À tous les lecteurs :

Je n'ai pas trouvé ce que Err = 9 veut dire exactement, si quelqu'un avait un lien avec la liste des types d'Err, ça serait gentil !
 

Discussions similaires

Statistiques des forums

Discussions
312 632
Messages
2 090 337
Membres
104 507
dernier inscrit
mag7748