Bonjour
Rien que sur la Feuille 2, il existe 4089 noms d'onglets. La pluspart sont répétés en moyenne 40 fois, preuve que la sélection manuelle lors de l'enregistrement n'est pas pratique.
VBA n'est pas dans mes spécialités et mes solutions tiennent surtout de la "bidouille" et, ce n'est que parce que personne ne répond (pas de solution miracle peut-être) que je m'avance.
L'inconnue est que je ne sais pas qu'elle est la longueur maxi d'un code toléré par vba
En dehors des 2 ou 3 lignes de code pour sélectionner les fichiers, si j'étais confronté à ton problème, avec mon peu de connaissances:
1) j'utiliserais ce code qui liste les feuilles d'un classeur dans une colonne, après avoir créé une Feuille et l'avoir nommée Liste des Feuilles et je classerais cette liste en alpha, pour regrouper les fichiers sous leur lettre générique.
2) Dans la colonne B de cette Feuille, j'entrerais une formule du style
=CAR(34)&A2&CAR(34) que j"incrémenterais jusqu'au bas, puis je ferais un Copier-Collage-Spécial- Valeur de cette colonne
3) Je copierais cette colonne et la collerais dans une Feuille Word
4) j'utiliserais la propriété des Tableaux Word et je le transformerais en Texte "Séparé par des virgules" pour obtenir un texte en ligne conforme au code vba
5) Je recopierais la partie de ce texte (Lettre générique qui m'intéresse) et la collerais dans ma macro (pour éviter les doublons de noms d'onglets)
Je sais, c'est bidouille, mais rationnel.
Le Code pour lister les onglets après avoir créé une feuille nommée Liste des Feuilles:(Auteur Joss)
Sub ListeFeuilles()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set ArrFeuil = Sheets("Liste des feuilles")
ArrFeuil.Cells(1, 1).Value = "Tableau des feuilles"
For i = 2 To ActiveWorkbook.Sheets.Count
ArrFeuil.Cells(i, 1).Value = Sheets(i).Name
Next i
Application.DisplayAlerts = True
Alerte = True
Application.ScreenUpdating = True
End Sub
Bon courage, tout de même. Si j'avais eu le fichier (avec des feuilles blanches) j'aurais essayé par curiosité.
Cordialement