Bonsoir Ali, Robert, le forum,
Je ne comprends pas ce que tu souhaites de plus car le code proposé par Robert correspond parfaitement à ta demande initiale : lorsqu'il rencontre une cellule dont une des feuilles porte le nom, il affiche un message et passe à la cellule suivante !
Par contre, tu aurais peut-être dû prévenir qu'il y avait des noms identiques mais pas forcément avec la même casse, ça pose effectivement des problèmes car si une feuille est nommée 'toto' et que l'on rencontre 'TOTO' dans la colonne D, la macro essaiera de la créer et tu auras un message d'erreur...
Tu peux modifier la ligne de test de la procédure de Robert :
If Sheets(x).Name = Cel.Value Then
qui deviendra
If UCase(Sheets(x).Name) = UCase(Cel.Value) Then
ce qui t'évitera les messages d'erreur...
Sinon, en ce qui concerne ta boucle initiale, pour que tu ne restes pas sur la cellule D2, il faut quand même que tu indiques, dans ta boucle, que tu changes de cellule
Do While aaa <> ''
Sheets.Add after:=Sheets('menu')
ActiveSheet.Name = aaa
Sheets('injection').Select
selection.range('A2').select
' ou encore avec Offset...
Loop
Voili voilà
Amicalement
Charly