Dresser une liste des onglets en y modifiant le nom de certains

Magic_Doctor

XLDnaute Barbatruc
Bonjour,

J'ai dans mon classeur plusieurs feuilles nommées.
Dans chaque feuille il y a un "ComboBox" qui contient la liste de toutes les feuilles du classeur sauf celle de la feuille active (la présence, dans la liste, du nom de cette feuille étant tout à fait inutile). Quand on sélectionne un item de la liste on va vers la feuille correspondante.
Dans l'ensemble des feuilles du classeur il en est 2 un peu particulières (les 2 dernières). Normalement ces 2 feuilles ne devraient s'ouvrir, quand on sélectionne leur nom dans une liste, que grâce à un mot de passe (problème non encore résolu). Pour avertir l'usager que ces 2 feuilles ont un accès, disons, limité, je voudrais que dans les listes où apparaissent leurs noms, ceux-ci soient suivis d'un symbole.
Exemple :
Liste chronologique des noms des feuilles : "BD", "Psy", "Divers", "Relookage", "Items", "HelpSheet"
Si nous sommes, supposons, dans la feuille "Psy", apparaîtra alors dans la liste déroulante :
BD
Divers
Relookage
Items
HelpSheet

Et je voudrais qu'il y ait :
BD
Divers
Relookage
Items SYMBOLE
HelpSheet SYMBOLE

Est-ce possible ?

Merci d'avance pour toute aide.
 

Pièces jointes

  • Listes_Onglets.xls
    145 KB · Affichages: 48
  • Listes_Onglets.xls
    145 KB · Affichages: 49
  • Listes_Onglets.xls
    145 KB · Affichages: 50

Softmama

XLDnaute Accro
Re : Dresser une liste des onglets en y modifiant le nom de certains

Bonjour Magic_Doctor,

un exemple en fichier joint.
++
 

Pièces jointes

  • Listes_Onglets.xls
    66.5 KB · Affichages: 63
  • Listes_Onglets.xls
    66.5 KB · Affichages: 65
  • Listes_Onglets.xls
    66.5 KB · Affichages: 65

job75

XLDnaute Barbatruc
Re : Dresser une liste des onglets en y modifiant le nom de certains

Bonjour Magic Doctor, Softmama :)

En retard, mais comme je l'ai fait :

Code:
Private Sub ComboBox1_DropButtonClick()
Dim vfeuille As Object, v$
ComboBox1.Clear
For Each vfeuille In ActiveWorkbook.Sheets
  v = vfeuille.Name & IIf(vfeuille.CodeName = "Hoja5" Or vfeuille.CodeName = "Hoja6", "*", "")
  If vfeuille.Name <> ActiveSheet.Name Then ComboBox1.AddItem v
Next
End Sub

Private Sub ComboBox1_Click()
If Right(ComboBox1, 1) = "*" Then
  MsgBox "Accès limité..." 'ou code avec mot de passe
  Exit Sub
End If
Sheets(ComboBox1).Activate
End Sub
A+
 

job75

XLDnaute Barbatruc
Re : Dresser une liste des onglets en y modifiant le nom de certains

Re,

J'ai modifié la 2ème macro pour qu'on puisse facilement adapter un mot de passe :

Code:
Private Sub ComboBox1_DropButtonClick()
Dim vfeuille As Object, v$
ComboBox1.Clear
For Each vfeuille In ActiveWorkbook.Sheets
  v = vfeuille.Name & IIf(vfeuille.CodeName = "Hoja5" Or vfeuille.CodeName = "Hoja6", "*", "")
  If vfeuille.Name <> ActiveSheet.Name Then ComboBox1.AddItem v
Next
End Sub

Private Sub ComboBox1_Click()
Dim v$
v = ComboBox1
If Right(v, 1) = "*" Then
  v = Left(v, Len(v) - 1)
  MsgBox "Accès limité..." 'ou code avec mot de passe
  Exit Sub
End If
Sheets(v).Activate
End Sub
A+
 

Magic_Doctor

XLDnaute Barbatruc
Re : Dresser une liste des onglets en y modifiant le nom de certains

Bonsoir job75,

Nos posts se sont croisés.
Je viens d'essayer ta solution en y mettant un "InputBox" pour le mot de passe, mais malheureusement ça ne passe pas...

Private Sub ComboBox1_Click()

Dim v$, mdp$

v = ComboBox1
mdp = InputBox("Mot de passe ?", "Accès limité")

If Right(v, 1) = "*" Then
v = Left(v, Len(v) - 1)
If mdp = "zaza" Then
MsgBox "le mdp est bien zaza"
Else
MsgBox "Recalé, le mdp n'est pas " & mdp
Exit Sub
End If
End If

Sheets(v).Activate

End Sub

Où me suis-je planté ?
 

Discussions similaires

Statistiques des forums

Discussions
312 203
Messages
2 086 196
Membres
103 153
dernier inscrit
SamirN