Trouverez-vous comment faire ?

Bonjour à tous,

Pour répondre à une question sur la longueur maximale d'un nom de feuille (limite de 31 caractères), voici une petite astuce de sioux pour tenter de simuler un nom long de feuille.

Vous pouvez télécharger le fichier ici.
En cliquand sur la feuille "...et la suite du nom", vous allez vous retrouver sur la feuille 123456789...". Idem pour la feuille "et fin"

simuler-noms-feuilles-tres-longs

Trouverez-vous comment faire ?

PS : je viens juste de penser à cette astuce, donc à considérer avec prudence avant de l'implanter dans vos propres applications.

Gaëtan

Variante sur le lien hypertexte

excel-vba-produitBBonjour à tous,

Suite à mon précédent post, on peut ajouter quelques modifications au projet.

Voici le lien pour le fichier.

Petite piqure de rappel pour lier le menu déroulant à une table via un nom défini.

Tout d'abord en créant le nom sur la table :
creation_du_nom

Puis, on va revenir sur la cellule et ajouter une liste déroulante via la validation de données :
donnees_validation_listes

Finalement on ajoute la formule

Ensuite, si vous voulez que le lien fonctionne non pas sur un nom, mais en utilisant une recherche, on peut utiliser la formule suivante pour rechercher la valeur choisie en B2 dans la table contenant les données :
ADRESSE(EQUIV(B2;Tableau1[Liste des produits];0)+LIGNE(Tableau1[[#En-têtes];[Liste des produits]]);COLONNE(Tableau1[[#En-têtes];[Liste des produits]]));"Aller au " & B2)

Equiv permet de rechercher la position du produit dans la table des produits.
On utiliser ligne et colonne pour localiser ce tableau.

Il faut aussi ajuster la localisation de la feuille, soit dans la même feuille, ou bien dans une autre feuille :
=LIEN_HYPERTEXTE("[" & STXT(CELLULE("nomfichier");TROUVE("[";CELLULE("nomfichier"))+1;TROUVE("]";CELLULE("nomfichier"))-TROUVE("[";CELLULE("nomfichier"))-1) & "]" &
"'" & "Liste" & "'!"
& ADRESSE(EQUIV(B2;Tableau1[Liste des produits];0)+LIGNE(Tableau1[[#En-têtes];[Liste des produits]]);COLONNE(Tableau1[[#En-têtes];[Liste des produits]]));"Aller au " & B2)

On remarquera l'utilisation des ' ' pour encadrer le nom de la feuille, notamment lorsqu'on utilise des espaces dans les noms de feuille.

[EDIT] : Suite au commentaire de DocLeka ci-dessous, on peut aussi utiliser une formule simplifiée pour gérer le nom du classeur :
=LIEN_HYPERTEXTE(
"#'Liste'!"
& ADRESSE(EQUIV(B2;Tableau1[Liste des produits];0)+LIGNE(Tableau1[[#En-têtes];[Liste des produits]]);COLONNE(Tableau1[[#En-têtes];[Liste des produits]]));"Aller au " & B2)

Comme vous le voyez, cette approche ouvre la porte à de nombreuse possibilités de déplacements dans un fichier.

Amuez-vous bien !

Gaëtan Mourmant

Petite variation sur les liens hypertextes

Bonjour à tous,

Voici une petite formule sympathique permettant de lier le choix d'un menu déroulant à un lien hypertexte.

Vous pouvez télécharger ici le le fichier exemple.

lien-hypertexte

1/ Ajout du menu déroulant.

Pour cela, on va
- nommer le tableau contenant les noms
- sur la cellule accueillant la liste déroulante, utiliser Données - Validation - Liste, et ensuite taper le nom.

2/ On va ensuite décomposer la formule complète :
- LIEN_HYPERTEXTE qui permet d'ajouter un lien hypertexte en fonction d'une adresse.
On a aussi besoin de l'adresse du nom défini et correspond au choix.
Pour cela, on a besoin :
- du nom du classeur en cours : STXT(CELLULE("nomfichier");TROUVE("[";CELLULE("nomfichier"))+1;TROUVE("]";CELLULE("nomfichier"))-TROUVE("[";CELLULE("nomfichier"))-1) & "]" &
- du nom de la feuille : STXT(CELLULE("nomfichier";INDIRECT(B2));TROUVE("]";CELLULE("nomfichier";INDIRECT(B2)))+1;20)
- de l'adresse de la cellule : ADRESSE(LIGNE(INDIRECT(B2)),COLONNE(INDIRECT(B2)))

On réunit le tout :
=LIEN_HYPERTEXTE("[" &
STXT(CELLULE("nomfichier");TROUVE("[";CELLULE("nomfichier"))+1;TROUVE("]";CELLULE("nomfichier"))-TROUVE("[";CELLULE("nomfichier"))-1) & "]" &
"'" & STXT(CELLULE("nomfichier";INDIRECT(B2));TROUVE("]";CELLULE("nomfichier";INDIRECT(B2)))+1;20) & "'!" &
ADRESSE(LIGNE(INDIRECT(B2));COLONNE(INDIRECT(B2)));"Aller à " & B2
)

Cela devrait vous ouvrir la porte à de nombreuses applications !

A bientôt.

Gaëtan Mourmant