Bonsoir,
J'aime bien les MAIS, heu ? le maïs...
Ci-joint le fichier modifié, en version Ultime !
Quelques précisions :
La position de la macro - j'ai mis la macro dans la feuille "Chrono par artiste" en faisant un clic droit sur l'onglet de la feuille et choisi dans le menu "visualiser le code".
Dans VBA on peut alors choisir "Worksheet" puis "Activate", ce qui a pour effet de lancer les instructions à l'activation de la feuille.
Un clic sur l'onglet, et hop la macro se lance et la zone d'impression se règle.
La réponse aux problèmes de cellules vides mais pleines - Au vu de mon niveau de VBA j'ai contourné le problème par des tests :
pour les lignes : les formules revoient "0" si la cellule source est vide, donc mise en place d'un test "si différent de 0" alors on est sur la dernière ligne avec une info d'inscrite.
pour les colonnes : un peu plus compliqué - il y a des cellules avec des formules qui renvoient "0" si la cellule source est vide, et des formules "MAJUSCULE" qui ne renvoient rien mis à par la formule elle même... Pour ces cellules, on test la longueur de la chaine de caractère de la cellule => longueur de la chaine de caractère de rien, même en majuscule, est égal à "0".
On s'aperçois que s'il y a "majuscule" alors il y a forcément "formule, formule", donc on décrémentera directement de 3 colonnes lors des test.
Donc la solution finale, qui est la mienne mais peut-être pas la meilleur au niveau programmation, est la suivante :
on recherche la dernière colonne utilisée (cellule à valeur nulle mais qui contient une formule)
on rentre dans une boucle "infinie" (non définie).
on remonte vers la colonne A en décrémentant de 3 tant que cette dernière colonne utilisée à une longueur de chaine de caractère égale à 0, ainsi de suite jusqu'à la colonne dont la chaine de caractère sera supérieur à 0, donc il y a un nom.
Précision : je fais le test sur la ligne 1, mais la zone d'impression est à partir de la ligne 2, vu votre fichier exemple. Mais ceci vous savez déjà le modifier...
on recherche la dernière ligne utilisée.
On rentre dans une boucle infinie.
on remonte vers la ligne 1 en décrémentant de 1 tant que cette dernière ligne utilisée à une valeur égal à 0, ainsi de suite jusqu'à la ligne dont la valeur sera différente de 0.
Avec ces valeurs il ne nous reste plus qu'à définir la zone d'impression.
Je me suis permis de mettre en "commentaire" l'embryon de code que vous aviez fait.
@ bientôt
Loureed