nom des onglets dans une liste

  • Initiateur de la discussion Initiateur de la discussion pascal21
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

pascal21

XLDnaute Barbatruc
bonjour le forum et bon dimanche
Code:
[FONT=[arial]][SIZE=3]Sub ListeOnglets()
    Range("A1").Select
    ActiveCell.Value = "Liste des onglets"
    For i = 1 To Worksheets.Count
         [a1].Offset(i, 0).Value = Worksheets(i).Name
    Next i
End Sub[/SIZE][/FONT]
j'ai trouvé ce bout de code pour avoir une liste des onglets afin de selectionner les onglets grace à une zone de liste
j'ai mis cela dans workbook/change sheets
mais il y a un problème
1er la recherche des onglets est longue, bon là à la limite ça peut aller
2eme le pc est considerablement ralenti voir bloqué
je pense que cela est du au fait que ça refait le calcul à chaque changement de feuille (d'où le blocage)
il faut pourtant que ça se remette à jour car le nom des onglets peut être ammené à changé
comment faire
le nom des onglets est lié à la cellule b1 de chaque feuille (ça reprends le contenu de b1) est-il possible de déclencher la macro sur le clic en b1?
merci
 
Re : nom des onglets dans une liste

Bonjour,

Si tu parles de l'évènement:

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

End Sub

Effectivement cela ralentit considérablement car à chaque changement de valeur d'une cellule quelconque du classeur, la macro est relancée.

essaie plutôt dans l'évènement:

Private Sub Workbook_SheetActivate(ByVal Sh As Object)

End Sub

La macro sera lancée uniquement sur activation d'une feuille.

Peux-tu nous dire quel est le but de cette liste des feuilles? Il y a peut-être un autre moyen d'y parvenir.

A bientôt
 
Re : nom des onglets dans une liste

Bonjour,

Et aussi un fil sur lequel j'avais posé une question sur le comptage et le listage des feuilles d'un classeur :

https://www.excel-downloads.com/threads/compter-le-nombre-de-feuilles.51111/

par notre ami inégalable _Thierry.

Sub ListeFeuille()
Dim i As Byte

For i = 1 To ThisWorkbook.Worksheets.Count
Cells(i, 1) = ThisWorkbook.Worksheets(i).Name
Next

End Sub

Et en prime (comme ca elle sera là) : le comptage

Sub CompteFeuille()
MsgBox "Ce Classeur contient : " & ThisWorkbook.Worksheets.Count & " Feuilles"
End Sub

Voici celle de Creepy du même fil :

Sub Nb_Feuille()
MsgBox Worksheets.Count
End Sub



Bon dimanche.

Edit : en PJ le classeur fait avec les macros de Thierry ...
 

Pièces jointes

Dernière édition:
Re : nom des onglets dans une liste

Salut Pascal, Hasco, Brigitte, Le Forum

Une fonction Personalisée de JBOIGONTIERS

Code:
Function NomsTousOnglets() 'JBOIGONTIERS
Dim j As Byte, i As Byte
   Application.Volatile
   Dim temp(255, 1)
   j = 0
   For i = 2 To Sheets.Count ' a partir de la 2ème Feuille
      temp(j, 0) = Sheets(i).Name
      j = j + 1
   Next i
   NomsTousOnglets = temp
End Function
 

Pièces jointes

Dernière édition:
Re : nom des onglets dans une liste

bonjour à tous
ce code fontionne mais il ralentit le calcul à chaque changement de feuille
mais au moins le pc ne se bloque pas

Code:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
  For i = 1 To ThisWorkbook.Worksheets.Count
Sheets(26).Cells(i, 1) = ThisWorkbook.Worksheets(i).Name
Next
End Sub
est-il possible de démarrer la macro lorsque la valeur de b1 des feuilles, change
 
Re : nom des onglets dans une liste

excuses moi brigitte si je t'ai froissé
j'ai repris ton code qui est assez proche de celui que je mettais mais il marche mieux (moins lent)
j'avais bien lu le lien donné mais sans trouvé de quoi aller avec mon "soucis" du moment il y a bien un autre lien donné par je ne sais plus qui (qu'il me pardonne si il lit ce msg) mais c'est sur l'ancien forum et c'est un peu bazard pour y accèder (problème d'identification qui ne se fait pas)
au final je cherche maintenant à lié cette macro à la cellule b1 des feuilles 1 à 10
mais je ne sais pas à quel evennement de la feuille y mettre n'y quel code écrire
peut-être un truc du genre
Code:
 if range("b1").value =change then
 
Dernière édition:
Re : nom des onglets dans une liste

Re,

Si tu parles du code donné dans mon post, il s'agit du CODE DE THIERRY, pas du mien (tu t'en souviendrais du mien, hi hi... il buggerait, vu mes dons).

Je précise que ce code servait dans un classeur de 143 feuilles, déjà pas mal, hein ? et ca marche en une seconde...

Ensuite, de quel lien parles tu qui bugge, on peut t'aider à le retrouver si tu veux... Dis nous.
 
Dernière édition:
Re : nom des onglets dans une liste

il s'agit du lien donné par jepi67
Code:
Private Sub onglets()

 Dim i As Byte

For i = 1 To ThisWorkbook.Worksheets.Count
.Cells(i, 1) = ThisWorkbook.Worksheets(i).Name
Next
End Sub
voila le code que j'ai mis dans la feuille 25
donc comment appeller la macro lorsque je change la valeur de la cellule b1 des feuilles 1 à 10
merci
 
Re : nom des onglets dans une liste

c'est possible que ce soit ce lien etant donné que je n'ai pu l'ouvrir tout à l'heure
mais je n'ai rien trouvé qui m'interresse
le but de l'opération est de mettre cette liste dans une zone de liste et de choisir les onglets dans cette liste car je voudrais enlever les onglets au bas de la feuille

edit je pense que je vais relancer un autre post car ma question est différente de celle du départ a savoir: comment lancer une macro au changement de valeur dans une cellule
 
Re : nom des onglets dans une liste

Je vais sans doute dire une énorme bêtise.

1. Tu utilises une des macros préconisées pour faire la liste des onglets avec liens hypertexte.
2. Puis tu suis par une insertion/nom/définir et une formule avec décaler pour faire une liste déroulante de ladite liste.
3. Puis tu récupères cette liste (avec son nom) pour faire ta zone de liste...
4. Tu rajoutes une mise à jour de cette liste chaque fois qu'on rajoute qqchse dans la liste

L'enregistreur de macro peut pas faire ca ?

Plus facile à dire qu'à faire, sans doute... Mais je sais pas t'aider...
 
Re : nom des onglets dans une liste

Salut à tous,

Un exemple (VBA) à adapter.
Si tu veux la même action sur chaque onglet à la suite d'un changement du contenu de B1, il faut avoir la même macro évènementielle dans chaque feuille !
Tu peux aussi explorer la piste proposée par Brigitte (salut).

 

Pièces jointes

Re : nom des onglets dans une liste

re-bonjour à tous
excel-lent bravo tu as su comprendre se que je voulais dire
par contre je ne souhaite pas la liste dans toutes les feuilles mais uniquement dans une seul chez moi la (25)
comment en reprenant ton exemple faire en sorte de n'avoir cette liste que sur une feuille
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
735
Réponses
2
Affichages
523
Retour