Bonjour yannickb19, le forum,
Merci pour le retour,
Merci pour ce code, ça fonctionne très bien maintenant, dommage que je ne comprenne pas la syntaxe.
Private Sub Worksheet_Activate()
'j'utilise l'évènement activation de la feuille
'a chaque fois que tu actives cette feuille, le code est exécuté
Dim tb, sh As Worksheet, lig% 'déclaration des variables
'tb pour tableau ; sh pour feuille ; lig pour ligne
tb = Array("KPI", "facturation", "articles", "clients")
'on stocke le nom des feuilles à exclure dans le tableau tb
Sheets("KPI").Range("B5:B20").ClearContents
'on efface le contenu de la colonne B de B5 à B20
lig = 5
'ligne de départ
For Each sh In ThisWorkbook.Worksheets
'on boucle sur toutes les feuilles du classeur
If IsError(Application.Match(sh.Name, tb, 0)) Then
'on recherche la feuille dans le tableau
'si une erreur est générée, c'est qu'elle n'y figure pas
Sheets("KPI").Cells(lig, 2) = sh.Name: lig = lig + 1
'on écrit le nom de l'onglet en B5 puisque lig=5, 2 pour deuxième colonne donc B
'on incrémente lig de 1 à chaque tour de boucle,
'donc au 2ème tour, lig=6....
End If
'fin de la condition
Next sh
'feuille suivante
End Sub
En espérant que cela t'aide,
Cordialement,