Liste des onglets dans une feuille calcul Excel

rlebigre

XLDnaute Nouveau
Bonjour à tous,

J'ai un fichier Excel comportant un certain nombre d'onglet. Lorsque je créer des onglets 'manuellement', je suis obligé de mettre à jour la liste des onglets dans un des onglets du fichier Excel. En fait cette liste me sert dans un Combobox afin de sélectionner un onglet et d'ajouter des infos dedans.

En fait je voudrais que la liste se mette à jour à chaque ouverture du classeur.

Autres point que je n'arrive pas à résoudre.
Je voudrais que la liste se créer sans prendre en compte 2 onglets ayant des noms bien distincts ('Accueil' et 'tab')

Merci de l'aide que vous pourriez m'apporter.

Cordialement.
 

JLOr

XLDnaute Nouveau
Bonjour,

Envoie ton fichier en pièces jointes (format zip).

Avant tout développement, sais-tu qu'un clic droit sur les 4 flèches qui permettent de naviguer entre tous les onglets (en bas à gauche de l'écran) fait apparaitre la liste des feuilles et te permet d'en choisir une facilement.

JLOr
 

rlebigre

XLDnaute Nouveau
Salut!

Voila un exemple de mon fichier. [file name=Classeur1_20050725143653.zip size=12846]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Classeur1_20050725143653.zip[/file]
 

Pièces jointes

  • Classeur1_20050725143653.zip
    12.5 KB · Affichages: 429

Hervé

XLDnaute Barbatruc
bonjour rlebigre, jlor (on se croirait dans une film de SF avec vos speudos :) )

Une proposition, sans passer par une feuille, directement dans l'userfom :

Private Sub ComboBox1_Click()
Sheets(ComboBox1.Text).Select
Unload UserForm1
End Sub

Private Sub userform_initialize()
Dim ws As Worksheet

For Each ws In Worksheets
   
If ws.Name <> 'Tab' And ws.Name <> 'Accueil' Then
&nbsp; &nbsp; &nbsp; &nbsp; ComboBox1.AddItem ws.Name
&nbsp; &nbsp;
End If
Next ws

&nbsp; &nbsp; &nbsp; &nbsp;
End Sub


salut
 

Hervé

XLDnaute Barbatruc
re

Je suppose que c'est les items de la combobox que tu veux classer, pas les feuilles du classeur.

Private Sub userform_initialize()
Dim ws As Worksheet
Dim i As Byte, j As Byte
Dim temp As String

For Each ws In Worksheets
&nbsp; &nbsp;
If ws.Name <> 'Tab' And ws.Name <> 'Accueil' Then
&nbsp; &nbsp; &nbsp; &nbsp; ComboBox1.AddItem ws.Name
&nbsp; &nbsp;
End If
Next ws

For i = 0 To ComboBox1.ListCount
&nbsp; &nbsp;
For j = i + 1 To ComboBox1.ListCount - 1
&nbsp; &nbsp; &nbsp; &nbsp;
If ComboBox1.List(i) > ComboBox1.List(j) Then
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; temp = ComboBox1.List(i)
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ComboBox1.List(i) = ComboBox1.List(j)
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ComboBox1.List(j) = temp
&nbsp; &nbsp; &nbsp; &nbsp;
End If
&nbsp; &nbsp;
Next j
Next i
&nbsp; &nbsp; &nbsp; &nbsp;
End Sub

salut
 

Discussions similaires

Réponses
1
Affichages
155
Compte Supprimé 979
C

Statistiques des forums

Discussions
312 492
Messages
2 088 938
Membres
103 988
dernier inscrit
Feonix