Problème stabilité Macro - Création liste avec nom des feuilles du classeur

GuillaumA

XLDnaute Occasionnel
Re bonjour à tous,

J'ai un système qui génère la liste de toutes les feuilles de mon classeur. Cette liste se met automatiquement à jour lorsque je crée une nouvelle feuille dans mon classeur.
Seulement j'ai un soucis, si j'ouvre plusieurs classeurs, cette liste peut bugger et m'afficher des #DIV! et je doit alors manuellement refaire la liste.

J'utilise ceci:
Une liste de 29 cellules dans la colonne H et dans lesquelles se trouve toujours la même formule: =NomsOnglets(LIGNE())
NomsOnglets est se réfère à une option explicit mis dans un module à part:
Code :
Option Explicit

'Propose list of all the Workbook sheets in the mail attached file section
Function NomsOnglets(i As Integer) As String
Application.Volatile
On Error Resume Next
NomsOnglets = Sheets(i).Name
On Error GoTo 0
End Function

J'ai appelé la liste crées "Onglets" et cette dernière couvre la zone H1:H30. Cette dernière me sert à créer des listes déroulantes des noms de feuille.

Hormis le bug dit préalablement, cette liste me pause problème aussi sur deux autres points:
Elle couvre les 30 cellules même si ces dernières sont vide et pas seulement celles remplis avec des noms de feuilles (Le nombre de feuille est variable car l'utilisateur peut en créer, mais se situe généralement autour de 15 feuilles)

Elle ne me permet pas d'exclure des feuilles de la liste que je ne veut pas voir apparaître.

Comme il m'es très important d'avoir quelque chose de stable, je vous appelle à l'aide sur ce sujet :(

Je joint un fichier en exemple.

Amicalement,
Guillaume
 

Pièces jointes

  • MonExemple.xls
    25 KB · Affichages: 64

bérylion

XLDnaute Occasionnel
Re : Problème stabilité Macro - Création liste avec nom des feuilles du classeur

Re bonjour à tous,

J'ai un système qui génère la liste de toutes les feuilles de mon classeur. Cette liste se met automatiquement à jour lorsque je crée une nouvelle feuille dans mon classeur.
Seulement j'ai un soucis, si j'ouvre plusieurs classeurs, cette liste peut bugger et m'afficher des #DIV! et je doit alors manuellement refaire la liste.

J'utilise ceci:
Une liste de 29 cellules dans la colonne H et dans lesquelles se trouve toujours la même formule: =NomsOnglets(LIGNE())
NomsOnglets est se réfère à une option explicit mis dans un module à part:
Code :
Option Explicit

'Propose list of all the Workbook sheets in the mail attached file section
Function NomsOnglets(i As Integer) As String
Application.Volatile
On Error Resume Next
NomsOnglets = Sheets(i).Name
On Error GoTo 0
End Function

J'ai appelé la liste crées "Onglets" et cette dernière couvre la zone H1:H30. Cette dernière me sert à créer des listes déroulantes des noms de feuille.

Hormis le bug dit préalablement, cette liste me pause problème aussi sur deux autres points:
Elle couvre les 30 cellules même si ces dernières sont vide et pas seulement celles remplis avec des noms de feuilles (Le nombre de feuille est variable car l'utilisateur peut en créer, mais se situe généralement autour de 15 feuilles)

Elle ne me permet pas d'exclure des feuilles de la liste que je ne veut pas voir apparaître.

Comme il m'es très important d'avoir quelque chose de stable, je vous appelle à l'aide sur ce sujet :(

Je joint un fichier en exemple.

Amicalement,
Guillaume


Salut

une solution :

Code:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
For Each o In Sheets
    If o.Visible Then onglets = onglets & ";" & o.Name
Next
With Sheets(1).[b9].Validation
    .Delete
   .Add Type:=xlValidateList, Formula1:=onglets
End With
End Sub

:confused:
 
Dernière édition:

Fo_rum

XLDnaute Accro
Re : Problème stabilité Macro - Création liste avec nom des feuilles du classeur

bonsoir

une autre façon de faire.
Les 2 macros dans ThisWorkbook servent à initialiser la liste (à l'ouverture et en cas d'adjonction ou de suppression d'onglets).
Remarque : je ne me préoccupe pas de la "visibilité" des onglets.
 

Pièces jointes

  • ListeNomsOnglets.xls
    25 KB · Affichages: 90

GuillaumA

XLDnaute Occasionnel
Re : Problème stabilité Macro - Création liste avec nom des feuilles du classeur

Bonjour bérylion, bonjour Fo_rum, bonjour le fil, le forum,
J'ai testé vos deux méthodes, je n'y arrive pas avec la première, mais en revanche la seconde correspond à ce que je recherche !
En effet Fo_rum, ta méthode permet d'avoir une liste stable, offrant une liste déroulante réduite au minimum, et me permettant de masquer des feuilles !
Bref tous ce que je recherche!

Merci à vous deux !

Guillaume.
 
Dernière édition:

MJ13

XLDnaute Barbatruc
Re : Problème stabilité Macro - Création liste avec nom des feuilles du classeur

Bonjour à tous

Juste une idée sur la fabrication de la liste quand on clique sur la feuille1.
 

Pièces jointes

  • MonExemple2.zip
    12.9 KB · Affichages: 53

Discussions similaires

Statistiques des forums

Discussions
311 735
Messages
2 082 024
Membres
101 873
dernier inscrit
excellllll