Re : Adresse de la dernière cellule d'un tableau
Amigos, buenos días,
Je réponds un peu tard. Décalage horaire oblige !
T’as raison Efgé, aujourd’hui j’ai été poupouné !
MJ13, si, par hasard, tu tombes su un de mes autres fils, tu remarqueras que je ne suis pas pingre en explications et exemples divers. Seulement voilà, cette fois-ci tout tenait en une simple phrase et, en guise d’exemple, j’aurais posté une feuille avec un tableau et… c’est tout.
En revanche, MJ13, le « HenrySense » kézako ? J’ai cherché pour ne pas mourir idiot et pouvoir frimer devant les copains après qu’ils m’aient bien pris la tête avec leur « fútbol » et autres « ¡¡¡goooooooooooool!!! », mais j’ai rien trouvé sur le net.
Bravo job ! Je ne pense pas que sous ma latitude beaucoup auraient trouvé…
Je dois avouer que tes deux petites fonctions ont un caractère cabalistique qui conduit le pèlerin qui les lit dans une méditation teintée de perplexité et d’humilité. Que de questions en si peu de phrases… Même lire du René Guénon c’est de la rigolade à côté ! Par exemple, pourquoi faire une boucle de 7 à 10 (d’accord, 4 bords) et non pas de 1 à 4 ? Mais, comme la conjecture de Poincaré (redoutable remède contre les maux de tête), j’admettrai sans trop chercher à comprendre. Ça marche au quart de tour et là est l’essentiel ! Et, qui plus est, tu as pris en compte des situations auxquelles je n’avais absolument pas pensé.
Job, encore merci !
Job est observateur. Il est vrai que je nomme beaucoup de choses ; la raison en est très simple. Si dans une macro il y a, par exemple, [A10] et que, par la suite, je modifie ma feuille et que A10 se retrouve en B25, pfffff… il faut retourner dans la macro et la modifier en conséquence. Si je nomme cette cellule, par exemple « Zaza » (j’aime bien Zaza…), [A10] devient donc [Zaza] et, quoi que l’on fasse dans la feuille, Zaza restera toujours Zaza et l’on n’aura pas à revenir sempiternellement dans la macro. Enfin, c’est comme ça que je vois les choses. Puisque je nomme tous mes tableaux (en général il n’y en n’a pas 36 sur mes feuilles…) je connais donc toujours l’adresse de la 1ère cellule de chacun de mes tableaux nommés (par ex. : [Zaza].Cells(1).Address). La difficulté était de récupérer automatiquement l’adresse de la dernière cellule d’un tableau (nommé) au cas où on modifie sa taille (en général en rajoutant des lignes).
J’aime bien encadrer les cellules de ma feuille où il se passe quelque chose, d’autant plus que je m’évertue, dans la mesure du possible, d’avoir le moins de cellules possibles -que l’on occulte par la suite car inutiles et encombrantes à la vue- en les remplaçant par des calculs dans les macros. Mais, pourquoi pas, après tout, des tableaux sans bordures…
La finalité de tout ça… job l’a très bien comprise en me coupant l’herbe sous les pieds quand il précise dans son dernier post : « Je pense que Magic_Doctor veut en effet un tableau nommé dynamiquement (automatiquement) ». Ainsi, après modification du tableau, on n’a pas à revenir dans la macro pour y faire les reparamétrages.
En revanche, job, si tu me lis, dans la macro événementielle dans le module de feuille, tu as écrit : Range(Cells.Find("TABLEAU", , xlValues, xlWhole)(1, 2)).Name = "zaza"
Je veux bien renoncer à saisir toutes les subtilités de tes deux fonctions, mais là j’aimerais bien comprendre (ce "TABLEAU", par exemple, qui est-il ? d’où sort-il ?). Mais comme (en tout cas dans ma feuille) quand je modifie la taille d’un tableau je suis obligé de modifier similairement celle de trois autres tableaux (par ex. "bibi", "toto" et "lulu") pour des histoires lourdingues de transferts de données, comment transcrire tous ces événements dans la macro ?
J’ai dit !
Bonne après-midi à tous et encore un très grand merci.
¡Y sigue la revolución del VBA!