Récupérer le nom des feuilles d'un autre classeur
Bonjour à tous,
J'ai un premier classeur (qu'on appelera TOP) ou j'ai un tableau qui doit lister le nom des feuilles d'un autre classeur, cet autre classeur dans mon projet, est considéré comme une bibliothèque. Le but plus tard est d'avoir plusieurs bibliothèques différentes et de proposer à l'utilisateur quelle bibliothèque il souhaite utiliser lorsqu'il ouvre le premier classeur "TOP" , et par conséquent, la liste des feuilles dans le tableau sur ce classeur changerai en fonction de la bibliothèque voulue.
Je sais que c'est faisable ça ne me semble pas si dur, mais étant relativement nouveau sur VBA, je ne sais pas trop comment faire la chose. Dois-je mettre les classeurs bibliothèque à la même racine que le classeur TOP ? Et comment je peux aller lire les noms des onglets d'un autre classeur (qui n'est pas forcément ouvert, ou alors qui ne sera pas visible par l'utilisateur) puis les stocker dans un tableau sur le classeur TOP ?
Au début j'ai tout mis dans un seul et même excel, mais en terme de praticité et lourdeur c'est pas le mieux je rafraichissait ma liste de cette manière, est ce que j'ai "du bon" dans ce code à reprendre pour faire ce que je souhaite ?
Sub RefreshList()
Application.ScreenUpdating = False
RefreshList_FeuilleActive = ActiveSheet.Name
Dim i As Integer
Worksheets("Liste Taches-commandes").Select
Rows("2:" & Rows.Count).ClearContents 'Je nettoie les lignes de mon tableau
Worksheets("Liste Taches-commandes").Range("A2").Select 'Je me place dans la première case ou je souhaite commencer à remplir mon tableau
For i = 4 To Sheets.Count 'Les feuilles qui m'interressent se trouvent après la 3ème feuille.
ActiveCell.Value = Sheets(i).Name 'Je rempli la case du tableau avec le nom de la (i)ème feuille
ActiveCell.Offset(1, 0).Select 'Je me décale d'une case vers le bas pour la remplir après.
Next i
Sheets(RefreshList_FeuilleActive).Select
MsgBox ("Liste des taches mise à jour")
End Sub
Si je ne suis pas assez clair , n'hésitez pas à me le notifier
Merci d'avance et bonne semaine à vous
pour lister les feuilles d'un classeur ouvert je te donne une piste
Dim nomfeuille As Variant
Dim FeuilCopier As Worksheet 'Onglet qui sera à copier
For Each nomfeuille In ThisWorkbook.Worksheets 'avec Next va prendre les feuilles une à une du classeur
Set FeuilCopier = Worksheets(nomfeuille.Name)
ongletDest.Activate 'action sur feuille active
If nomfeuille.Name = "Liste d'équalisage" Then Exit For 'condition de fin de la boucle for each
Next nomfeuille 'autrement reprend la boucle
après vers un autre classeur je ne suis pas au point encore mais cela ressembe à un truc comme ci dessous
'ChDir "C:\Users\...\Desktop"
'original_Cla = Dir("C:\Users\..\Desktop\... .xlsm")
'Workbooks.Open original_Cla
Je sais que les 2 classeurs doivent être ouvert pour naviguer de l'un à l'autre
Merci, je viens de m'écrire un programme similaire, je pense peut etre lister chaque feuille dans chaque classeur, et avoir la première feuille de chaque classeur comme tableau qui listerai les feuilles, j'aurai ensuite plus qu'a lire le tableau de la premiere feuille du classeur bibliothèque pour connaître le nom des feuilles. A voir, je tatonne...