Bonjour baldwin, le forum,
je reproduis ici la copie d'écran de ton post de 15:49 :
moi, ce qui me gêne le plus, c'est pas la position de la ligne rose, mais son contenu : que des 0 ! ça prouve hélas la triste réalité historique : toutes les tribus amérindiennes autochtones ont été massacrées par les colons américains lors de la conquête de l'Ouest ! ils leur ont tout volé, y compris leurs biens, leurs terres, et leur vie !
le jour où Christophe Colomb a découvert le continent américain alors qu'il était parti pour découvrir les Indes, ce jour-là a été pour eux le commencement de leur fin, et une malédiction. (mébon, j'sais bien qu'toi t'y es pour rien... ni moi non plus)
note aussi que si tu mets que des croix dans tes colonnes, j'vois mal comment tu peux avoir des totaux numériques ! ou c'est un autre exemple des fichiers du forum qui sont super-représentatifs du fichier réel ? (c'est ironique, hein ?) ; d'accord, faut pas mettre de données confidentielles, mais faut remplacer les vrais nombres privés par d'autres nombres inventés, pas par des croix !
à part ça (jmd va pas croire que ce soit moi qui écrive ça) : sans VBA, j'aurais simplement sélectionné cette plage de cellules : colonne A à dernière colonne ; ligne 3 à ligne juste au-dessus de la ligne total (quand la ligne total est tout en bas du tableau, donc avant d'avoir été déplacée au milieu) ; puis faire le tri sur la sélection.
mais oui, jmd, il m'arrive à moi aussi, de temps en temps, de proposer une solution 0% VBA ; et même, je suis entièrement d'accord avec toi là-dessus : a) essayer d'abord de faire avec Excel quand c'est possible, et ensuite via VBA ; b) un programme VBA est très souvent étroitement lié aux données de la feuille de calcul (ou même lié à plusieurs feuilles de calcul en même temps) ; sauf exceptions, « un code VBA ne saurait être un programme en soi », pour paraphraser le titre d'un de tes récents sujets ; auquel j'ai d'ailleurs répondu ici : https://forum.excel-pratique.com/viewtopic.php?p=681140#p681140
note bien que la présente conversation est un très bon exemple de manque d'infos : le demandeur (merci baldwin ) n'a pas transmis son fichier, mais à la place une copie d'écran ; qui plus est, cette copie d'écran est partielle, et c'est impossible de déterminer ces trois informations :
* la dernière colonne à droite ; c'est peut-être la colonne T, mais pas forcément puisqu'on ne voit pas de colonne U vide à sa droite
* la ligne des totaux "Nombre de tribus par état" : comme sur la copie d'écran elle est au milieu, impossible de savoir son emplacement réel, avant le tri ; j'sais bien que baldwin a pensé bien faire en montrant une image du problème, mais comme on voit la ligne 34 à moitié et pas plus bas, impossible de savoir quelle est la dernière ligne ; donc impossible de savoir aussi quelle est la ligne juste au-dessus qu'il faut sélectionner pour faire le tri ! ça aussi démontre que même si on voulait faire le tri par VBA, le code VBA n'est pas tout et ne se suffit pas à lui-même ! (comme je l'ai déjà dit : c'est très rare quand c'est le cas) ; certains programmeurs diront : « il y a CurrentRegion ou UsedRange » ; mais je n'aime pas ces automatismes et je m'en méfie, car pour peu que le demandeur ait laissé une ligne vide ou une colonne vide au milieu de ses données, c'est fichu ! il faudrait pouvoir être sûr et certain à 100% qu'y'a aucun vide intercalaire dans les données ! et aussi, qu'il n'y ait pas d'entête de colonne vide ou de nom d'entête double (comme ça arrive parfois).
c'est dans des cas comme ça où je me dis que le demandeur doit croire qu'on lit dans ses pensées, ou qu'on est à côté de lui, devant son écran et derrière son clavier ! désolé, baldwin, mais c'est pas le cas ! j'suis pas du tout télépathe, et j'ai pas non plus l'don d'ubiquité !
note bien, baldwin, que si j'avais pu savoir avec certitude les infos manquantes, j'aurais pu écrire beaucoup plus simplement : sélectionne A3:V39 ... si V est ta dernière colonne et si ta ligne des totaux est la ligne n° 40 ; oui, car rappelle-toi : faut pas la sélectionner, celle-ci : la dernière ligne à sélectionner est celle juste au-dessus.
et si j'ai deviné que ta 1ère ligne de données est la ligne n° 3, c'est pa'c'qu'on voit sur ta copie d'écran partielle que ta ligne d'entêtes est la ligne 2, et qu'elle est figée puisqu'en dessous, on voit pas la ligne 3 mais le bas de la ligne 18 (juste au-dessus de la ligne 19 entière) ; bien sûr, j'ai supposé aussi que t'as pas de ligne 3 vide (ni d'autres lignes vides dessous).
tu vois, jmd, faut parfois faire un vrai travail de détective, et quand on n'a que le code VBA, ce sont les instructions de ce code VBA qui aident à deviner l'emplacement des données sur la feuille. mais hélas, y'a bien des fois où ça suffit pas ! (c'qui est tout d'même bien moins terrible que le massacre des indiens, je te l'accorde ; comme quoi tout est relatif)
dhany