Bonjour,
Je fais toujours un test avant de publier du code.
Désolé mais cela fonctionne parfaitement sauf qu'en changeant les adresses (B6:B10 au lieu de mon test qui portait sur B3:E3), tu as évidemment ajouté une cellule soit 5 cellules à remplir au lieu de 4, donc CountA vaut 5 quand toutes les cellules sont rempiies et pas 4
De plus, tu écris que c'est B10 qui doit contenir plus de 6 caractères or tu testes RNG(4) et c'est RNG(5) dans ce cas là (B10 est le 5ème élément de B6:B10).
Petite remarque : Au lieu de tester le nombre de cellules remplies avec une constante, tu peux le faire avec la propriété Rng.Count
Case Application.WorksheetFunction.CountA(rng) = rng.Count And Len(rng(4)) = 7
Je constate aussi que le Case Else masque la Feuil1 et que si la condition est remplie tu fais un Activate sur Feuil1 or on ne sait pas activer une feuille masquée, il faut d'abord la rendre visible. Par contre, tu peux lire et écrire dans une feuille masquée.
Il n'y a aucune raison sauf si tu dois rendre la main à l'utilisateur sur cette feuille d'activer une feuille.
On le répète tous les jours sur ce forum, pas d'Activate, Select etc... c'est parfaitement inutile et cela ralenti l'exécution de la procédure.
Alors par contre
(à la base, ma plage de cellules obligatoire est : Range("b6:b10,b12:b14,b44:b45") avec b10 et b:12 qui doivent contenir chacune plus de 6 caractères.)
Ceci est un nouvel élément dont tu n'as pas parlé au début. Tes cellules ne sont pas contiguës alors Rng(x) posera problème.
Partager