Liens hypertextes + incrémentation de feuilles

Résolu/Fermé
Naghoan - 5 févr. 2018 à 16:32
Arnaud3P Messages postés 27 Date d'inscription vendredi 4 décembre 2009 Statut Membre Dernière intervention 8 février 2018 - 6 févr. 2018 à 10:09
Bonjour,

Je souhaite créer un classeur de 51 feuilles, dont 50 sont des formulaires concernant les données de 50 personnes différentes. Ils se présentent de la manière suivante :

- En D1, j'ai le nom de la personne
- En R1, j'ai le prénom de la personne
- En AC1, j'ai le sexe de la personne
- En C3, j'ai l'age de la personne
- Etc etc

Ces formulaires sont nommés 1, 2, 3, 4, ... 50.

Puis dans la première feuille du classeur (disons nommée "Récap"), il s'agit de faire un résumé de tout ces formulaires. Ansi :

- Dans la première ligne, j'ai les intitulés des informations (N°,Nom, Prénom,...)
- Dans la deuxième ligne, en A2, j'ai le numéro de la feuille correspondante (1). En B2, j'ai le nom de la personne du 1er formulaire (='1'!$D$1). En C2, le prénom (='1'!$R$1), etc etc
- Dans la troisième ligne, A3 = 2, B3 = '2'!$D$1, C3 = '2'!$R$1, etc etc
Et ainsi de suite jusqu'au 50e formulaire, à la ligne 51.

Le premier problème, c'est que je souhaite également créer un lien hypertexte pour qu'en cliquant sur chacune des données de la première page (Récap), ça me renvoie à la donnée correspondante dans le formulaire.
J'ai commencé avec cette formule :

En B2 par exemple : =LIEN_HYPERTEXTE("[nom du classeur]'1'!D1"; '1'!$D$1)

Mais lorsque je tire la formule pour l'incrémenter, rien ne bouge. La feuille du lien et de la valeur reste la "1".
Si je fais une 2e ligne à la main, avec en B3 : =LIEN_HYPERTEXTE("[nom du classeur]'2'!D1"; '2'!$D$1), que je sélectionne les 2 lignes et que je les tire pour les incrémenter, alors chaque ligne suivante sera 1 puis 2 successivement. Ca ne passe jamais à 3, 4, etc.. (je ne sais pas si c'est très clair =D ).

Du coup j'ai trouvé une petite astuce et j'utilise la formule suivante :

En B2 : =LIEN_HYPERTEXTE("[nom du classeur]'"&A2&"'!D1"; '1'!$D$1).

Le '"&A2&"'! me permet de remplacer le '1'!, et quand je tire la formule, il est bien incrémenté. Le lien hypertexte est donc incrémenté. Seulement je ne peut pas utiliser cette méthode pour la valeur de la cellule : lorsque je tape en B2 =LIEN_HYPERTEXTE("[nom du classeur]'"&A2&"'!D1"; '"&A2&"'!$D$1), la cellule m'affiche "#REF!"

Je dois donc changer le numéro des feuilles à la main, et 50 lignes de données multipliées par 140 données, ça fait un paquet...

Deuxième problème, dont je me suis aperçu après avoir changé à la main le numéro de toutes les feuilles (oui je l'ai quand même fait, ne pensant ne pas avoir d'autre solution...) :

Le classeur concerne les données de personnes sur un lieu donné. Mais comme nous avons plusieurs antennes, il faudra créer le même classeur pour les autres lieux. Et lorsque je modifie le nom du classeur, tous mes liens hypertexte deviennent faux, puisqu'ils conservent le nom du classeur que j'ai tapé à l'origine.

Et là, ben j'ai les boules, parce qu'en procédant comme je l'ai fait depuis le début, ça veut dire qu'il faut que je change le nom du classeur dans plus de 7000 cases, ou que je refasse un nouveau classeur quasiment copié/collé mais que je modifie de nouveau les numéros de feuilles dans les formules.

J'ai regardé un peu partout, sauf que je ne trouve pas vraiment de sujets comparables au mien. D'autre part, je vois beaucoup de problèmes du genre résolus avec des macros, mais je ne m'y connais absolument pas (ça m'était même inconnu dans ce logiciel, avant que je ne cherche une solution pour mon problème).

Alors j'espère que vous pourrez me confirmer qu'il y a bien un solution plus simple et plus rapide pour faire mon classeur, et que vous pourrez m'aiguiller dans ce sens.

Merci (et désolé pour le pavé).

4 réponses

cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
5 févr. 2018 à 18:42
Bonjour,

Voilà un exemple à adapter en vba:

https://www.cjoint.com/c/HBfrPBEOfdQ
1
Bonjour,

C'est très intéressant, ça attise ma curiosité concernant le VBA et ce qu'il est possible de faire avec... J'imagine de plus qu'il ne s'agit là que d'un exemple rapide.

Néanmoins, dans le fichier que vous avez créé, les fiches sont faites à partir de la première feuille. Dans mon cas, on remplit les formulaires et c'est la première feuille qui doit être créée à partir de chaque formulaire (on ne s'en sert ensuite que pour faire des bilans).

Merci tout de même pour votre réponse, je pense que je creuserais les possibilités du logiciel =)
0
Arnaud3P Messages postés 27 Date d'inscription vendredi 4 décembre 2009 Statut Membre Dernière intervention 8 février 2018 2
5 févr. 2018 à 19:14
Bonjour,

Dans un premier temps, une solution possible pour récupérer le nom du classeur assez facilement (il faudra toutefois enregistrer le classeur en .xlsm) :
dans le menu "Formules", un clic sur "Gestionnaire de noms" puis sur "Nouveau "
nom : nomclasseur
fait référence à : =GAUCHE(LIRE.CLASSEUR(1);TROUVE("]";LIRE.CLASSEUR(1)))

Pour pouvoir recopier les formules (à partir du prénom)dans les colonnes suivantes, il faudrait peut-être ajouter une ligne en dessous des entêtes avec la cellule dans laquelle se situe chaque donnée et l'inclure dans la fonction indirect, par exemple en faisant :
Ajout d'une ligne en dessous des entêtes :
A2 inscrire "Emplacement", B2 inscrire D1, C2 inscrire R1 etc

Pour créer les liens avec les noms de famille, voici une piste avec la fonction INDIRECT et un appel à "nomclasseur" :
en B3 : =LIEN_HYPERTEXTE(nomclasseur&"'"&$A3&"'!"&B$2;INDIRECT($A3&"!"&B$2))
La recopie vers le bas est possible

en c3 : =INDIRECT($A3&"!"&C$2)
La recopie est possible vers la droite et vers le bas.

https://support.microsoft.com/fr-fr/office/indirect-indirect-fonction-474b3a3a-8a26-4f44-b491-92b6306fa261?ui=fr-fr&rs=fr-fr&ad=fr

Cordialement,
1
Bonjour,

C'est exactement ça ! Tout fonctionne, je ne connaissais pas cette fonction. Merci beaucoup, je suis d'autant plus rassuré que le fait de tirer une formule dans l'intégralité du tableau permet d'éviter les erreurs dans certaines cellules.
0
Arnaud3P Messages postés 27 Date d'inscription vendredi 4 décembre 2009 Statut Membre Dernière intervention 8 février 2018 2
6 févr. 2018 à 10:09
Bonjour,

S'il est envisagé de filtrer les informations, il pourrait être encore plus judicieux de mettre la ligne des emplacements en première ligne, au dessus des entêtes (nom, prénom, etc), de modifier les formules avec B$1 au lieu de B$2 puis d'activer le filtre sur la ligne 2 pour trier les données.

Cordialement,
0
Merci pour ces réponses, j'essaierai ça demain et je vous tiens au courant.

Bonne soirée
0
Raymond PENTIER Messages postés 58396 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 25 avril 2024 17 094
5 févr. 2018 à 22:37
Bonjour.

Voudrais-tu envoyer ton modèle de formulaire (avec des données bidon) par Cjoint.com ?
Je pense qu'il faudrait reconsidérer toute la philosophie de ton travail, et créer un fichier plus logique avec 2 feuilles au lieu de 51 :
- une feuille regroupant toutes les données de tes 50 personnes (une personne par ligne),
- une feuille de consultation avec l'aspect d'un formulaire.

C'est ainsi que je gère mon annuaire téléphonique et ma bibliothèque.
Et c'est ce principe que j'utilise ici : https://forums.commentcamarche.net/forum/affich-37641917-excel-principe-d-edition-de-devis-facture-commande
0
Raymond PENTIER Messages postés 58396 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 25 avril 2024 17 094
5 févr. 2018 à 22:39
Petite précision, qui n'est pas superflue :
pas besoin de liens hypertextes, mais juste d'une ligne déroulante de cellules ...
0
Bonjour,

Je pense qu'il est effectivement possible de faire quelque chose de plus simple. Mais ce n'est pas le but =D.

En fait, nos bases de données actuelles sont faites sous Microsoft Works, un logiciel qui n'est plus vraiment d'actualité et qui pose quelques problèmes, notamment lorsque nous avons un(e) nouvel(le) employé(e) à qui il faut expliquer le fonctionnement (et corriger les erreurs pendant les premiers temps).

L'objectif était de faire une base de donnée la plus ressemblante possible à la version sous Works, afin de ne pas perturber les habitudes de chacun =P.

Merci tout de même pour votre réponse. Le sujet est résolu, la réponse précédente convient parfaitement à mon problème.
0