par , 31/01/2020 à 14h02 (1706 Affichages)
Dans un précédent article titré Comment accéder à une cellule du classeur à l'aide de la fonction LIEN_HYPERTEXTE, je montrais comment accéder à une cellule d'une feuille du classeur où se trouve la fonction.
Dans ce billet, je voudrais vous montrer comment à l'aide de la même fonction LIEN_HYPERTEXTE atteindre la première cellule vide d'un tableau structuré
Dans l'illustration ci-dessous, nous pouvons voir à gauche la feuille où se trouve la table permettant d'atteindre des endroits spécifiques du classeur et à droite la feuille contenant le tableau structuré, volontairement décalé pour illustrer l'exemple, dont on souhaite atteindre la première cellule vide (celle où l'on doit écrire la prochaine valeur)
![Nom : Hyperlink GoTo NextRow Table.png
Affichages : 384
Taille : 43,0 Ko](https://www.developpez.net/forums/attachment.php?attachmentid=534945&d=1580475680)
Explication des différentes fonctions utilisées
Petit rappel : Pour atteindre la cellule (A10) d'une feuille (Accueil) du classeur, nous devons écrire dans le premier argument de la fonction LIEN_HYPERTEXTE, la chaîne "#Accueil!A10"
Dans le cas présent, nous devons calculer l'adresse de la cellule à atteindre soit $B$8 pour reprendre notre exemple
Comment renvoyer l'adresse d'une cellule ?
Pour renvoyer l'adresse d'une cellule, nous utiliserons la fonction ADRESSE.
Le premier argument de la fonction ADRESSE est le numéro de la ligne et de deuxième est le numéro de la colonne
Soit pour notre exemple : =ADRESSE(8;2)
Comment renvoyer le numéro de la ligne où débute un tableau ?
La fonction LIGNE permet de renvoyer le numéro de la première ligne d'une plage de cellules (ici le tableau structuré nommé T_PriceList. La première ligne du tableau nommé T_PriceList est 4
Soit pour notre exemple : =LIGNE(T_PriceList[#Tout])
Comment renvoyer le numéro de la colonne où débute un tableau ?
La fonction COLONNE permet de renvoyer le numéro de la première colonne d'une plage de cellules (ici le tableau structuré nommé T_PriceList. La première colonne du tableau nommé T_PriceList est 2
Soit pour notre exemple : =COLONNE(T_PriceList[#Tout])
donc la formule ci-dessous renverra $B$4 or nous devons obtenir $B$8
=ADRESSE(LIGNE(T_PriceList[#Tout]);COLONNE(T_PriceList[#Tout]))
Comment calculer cette prochaine ligne à remplir ?
Pour connaître la prochaine ligne vide du tableau T_PriceList en sachant quel est le numéro de sa première ligne, il suffit de calculer le nombre de lignes que contient ce tableau T_PriceList (ici 4 si l'on compte le titre)
Comment renvoyer le nombre de lignes d'un tableau ?
La fonction LIGNES permet de renvoyer cette valeur
Soit pour notre exemple : =LIGNES(T_PriceList[[#Tout];[Ref]])
La formule complète pour obtenir la prochaine cellule à remplir dans le tableau est
=ADRESSE(LIGNE(T_PriceList[#Tout])+LIGNES(T_PriceList[#Tout]);COLONNE(T_PriceList[#Tout]))
Attention : Si l'on a ajouté la ligne des totaux au tableau structuré, il est préférable de renvoyer à la dernière ligne remplie du tableau et utiliser la touche Tabulation pour aller à la dernière cellule et ainsi le tableau structuré fera l'insertion de la nouvelle ligne.
Il faudra donc soustraire 2 au nombre de lignes du tableau qu'auront calculés les fonctions LIGNE + LIGNES, soit
=ADRESSE(LIGNE(T_PriceList[#Tout])+LIGNES(T_PriceList[#Tout])-2;COLONNE(T_PriceList[#Tout]))
Si nous revenons à notre exemple illustré par l'image du début de l'article, la formule ci-dessus se trouve dans la cellule de la colonne Address du tableau structuré se trouvant dans la feuille nommée Sommaire
La formule complète pour atteindre la prochaine cellule à remplir
Voir ci-dessous la formule complète de la fonction LIEN_HYPERTEXTE permettant d'aller à cette cellule $B$8 de la feuille nommée Liste de prix se trouve dans la cellule de la colonne nommée Sélection du tableau structuré se trouvant dans la feuille nommée Sommaire
=LIEN_HYPERTEXTE("#'" & [@SheetName] & "'!" & [@Address];[@FriendlyText] & " " & [@SheetName])