Salut Benji, le Forum
Bon alors quand même, il faut aussi avoir quelques structures rigides dans la conception d'un classeur. Tu ne vas pas me faire croire que tu ne peux avoir ta fraction de string de 3 digits que n'importe où dans le nom de ta feuille !
VBA peut pratiquement tout faire, mais franchement là c'est un peu comme si on fait travailler une personne pour faire du rangement toute la journée parceque tout ce que l'on imprime, on le jette à travers la pièce en vrac !
Non un nom de feuille, généré en auto, ou généré par le User doit avoir un minimum de structure.
Si admettons le règle est que ta string est en fin de nom de feuille (exemple Feuil1_01, Feuil1_02, Feuil2_01, Feuil2_02, Feuil3_03 etc...)
Une macro toute simple comme celle-ci te fera ta collection sans souci, il suffit que tu fasses appliquer une règle stricte dans la dénomination des feuilles :
Sub Feuille3DigitRight()
Dim WS As Worksheet
Dim msg As String
For Each WS In Sheets
If Right(WS.Name, 3) = "_01" Then
msg = msg & WS.Name & vbCrLf
End If
Next WS
MsgBox msg
End Sub
Car maintenant si c'est la String "_01" que tu dois trouver n'importe où dans des noms de feuilles pouvant avoir des longueurs variables c'est une vrai usine à gaz (non fiable car de toute manière dans une telle anarchie tu pourrais avoir un User qui ait nommé la feuille "LaFeuille-01TsoinTsoin" et pas "LaFeuille_01TsoinTsoin")
Voilà c'est ma façon de voir les choses, car sinon c'est du "Find", et ensuite du "Mid" avec un sacré code pour être sûr que les trois digits sont contigus dans la chaine...
Bon Courage et Dimanche
@+Thierry