Compilation avec des noms de feuilles différentes

Bonjour à tous,

Bon je viens vers vous pour chercher de l'aide sur 2 sujets,

-J'ai un fichier qui est constitué de plusieurs feuilles construites de la même manière. J'ai réussi à construire une page de compilation avec la fonction INDIRECT("'feuil"&ligne()&"'!B3), seulement si je renomme le nom de la feuille (ex : feuille renommé prob) elle n'est plus prise en compte dans la compilation

-Deuxième point, je voudrais créer des liens automatiquement sur la feuille "compilation" qui renvoi directement automatiquement sur les autres feuilles.

Merci pour vos réponses les amis

22test.xlsx (11.15 Ko)

Bonjour ,

sur chaque feuille j'ai ajouté la formule suivante en cellule A1

cette formule foctionne uniquement si le classeur est enregistré.

=STXT(CELLULE("filename";$A$1);TROUVE("]";CELLULE("filename";$A$1))+1;9^9)

cette formule retourne le nom de l'onglet

le reste à voir sur le fichier joint, même si vous modifier le nom d'un onglet les formules se calcul correctement,

13kheiro-test.xlsx (11.45 Ko)

Merci de votre aide,

mais le but de ma feuille "compilation", est que à chaque fois qu'on crée une nouvelle feuille, ça s'enregistre automatiquement sur la feuille de compilation, et ce n'est pas le cas dans votre solution

C'est la même chose aussi pour les liens, je voudrais qu'ils se créent automatiquement.

Merci encore,

Bonsoir,

En créant un nom de champ qui liste les feuilles, en utilisant une macro Excel 4 (solution Boisgontier), par ex. NomsF (à voir dans Gestionnaire). Et la formule devient :

=SI(LIGNE()-3<NBVAL(NomsF);INDIRECT("'"&INDEX(NomsF;LIGNE()-3)&"'!B3");"")

Cordialement

NB- Les macros Excel 4 (qui fonctionnent toujours dans les versions récentes d'Excel) sont reconnues comme macro et obligent à enregistrer le classeur en xlsm).

18kheiro-test.xlsm (11.24 Ko)

Merci Mferrand, ça correspond à ce que je veux faire

Une solution pour les liens svp ??

Le liens ?

Oui je m'explique encore :

Je voudrais avoir des liens sur la feuille de compilation, qui renvoient sur les autres feuilles. Par exemple on clique sur la case conforme ou non conforme et ça renvoi à la page concerné. (comme pour E4 de la feuille compilation qui renvoie à la feuille 1).

Je voudrais que les liens se créent automatiquement à chaque fois que je crée une nouvelle feuille (c'est ce que je n'arrive par à faire )

13kheiro-test.xlsm (11.39 Ko)

Bonjour,

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim i%, sadr$
    If Target.Column = 5 And Target.Row > 3 Then
        If Target.Value <> "" Then
            i = Target.Row - 3
            sadr = "'" & Worksheets(i).Name & "'!B9"
            Me.Hyperlinks.Add Target, "", sadr
        End If
    End If
End Sub

Le lien est créé lors de la selection de la cellule qui doit le contenir, si elle affiche une valeur.

Cordialement.

12kheiro-test.xlsm (17.76 Ko)

onjour Mferrrand,

Merci encore une fois pour ton aide, ça correspond effectivement à ce que je veux réaliser.

Mais j'ai un petit soucis , en voulant appliquer la formule : =SI(LIGNE()-3<NBVAL(NomsF);INDIRECT("'"&INDEX(NomsF;LIGNE()-3)&"'!B3");"") , sur un autre fichier, ça ne marche pas, ça m'affiche des cases vides.

Est ce qu'il y a autre chose à faire à part appliquer la formule ??

Sinon pourrais tu mieux m'expliquer la formule et ce que je devrais faire ? merci

La formule n'affiche rien si la feuille n'existe pas ! Décortique-la et tu verras...

Ouais c'est bon, ça marche

Merci Mferrand, un boulot d'artiste

Bonjour tous le monde, Mferrand en particulier,

J'ai un petit souci, en ajoutant une feuille, les liens sur la page compilation son décalés, et ne renvois pas exactement sur les bonnes feuilles (ex: Feuille ajouté prob2) !! y a t'il une solution ??? Merci

8kheiro-test-1.xlsm (18.97 Ko)

Bonsoir,

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim i%, sadr$
    If Target.Column = 5 And Target.Row > 3 Then
        Me.Calculate
        If Target.Hyperlinks.Count > 0 Then Target.Hyperlinks(1).Delete
        If Target.Value <> "" Then
            i = Target.Row - 3
            sadr = "'" & Worksheets(i).Name & "'!B9"
            Me.Hyperlinks.Add Target, "", sadr
        End If
    End If
End Sub

2 petites modifs : J'ai découvert que si une suppression de feuille déclenchait le recalcul automatique, une insertion par contre ne le déclenchait pas, donc l'affichage n'est pas à jour... Le calculate le met à jour, mais au moment de la sélection de la cellule... Si ce décalage te gêne, tu l'enlèves de cette proc. pour le mettre dans une autre sur l'évènement Activate de la feuille, ce qui permettra que cela intervienne avant sélection d'une cellule.

L'autre c'est la suppression d'un lien lorsqu'il existe déjà. Je crois que c'est l'insertion d'un lien différent de celui déjà existant qui provoquait l'erreur...

Cordialement.

Merci encore Mferrand , je viens juste d'appliquer votre solution, vous êtes vraiment top.

Rechercher des sujets similaires à "compilation noms feuilles differentes"