Création Onglet recap, formules EXCEL ou VBA

Résolu
Bonjour à tous,

J'ai une petite question :
J'ai un fichier avec une 20 d'onglets et un onglet récapitulatif.

Dans cet onglet récap, je liste tous les onglets et je voudrais accéder à une case de chaque onglet pour récupérer une valeur.
J'arrive à faire le lien manuellement avec une commande du type ( ='fiche15'!L5 ) mais je voudrais qu'il récupère automatiquement le nom de l'onglet à gauche et m'inscrive sa valeur à droite.

Pour illustrer (Onglet récap) :

Fiche 5 Donnée de la fiche 5 dans la case 5
Fiche 2 Donnée de la fiche 2 dans la case 5

Merci d'avance,

bonne journée

5 réponses

  1. Bonjour

    Avec cette formule

    =INDIRECT(ADRESSE(15;4;3;1;"fiche5");1)

    qui devient si "fiche5" se trouve en A5

    =INDIRECT(ADRESSE(10;3;3;1;A5);1)

    1
    1. Bonjour

      N° ligne = la ligne ou se trouve l'info sur la feuille (le nom en fin de formule)
      N° colonne = la colonne dans laquelle on récupère l'info sur la même feuille (le nom en fin de formule)
      3 = Absolu si vous voulez une adresse absolue
      La fonction indirect pour traduire l'adresse texte et récupérer la valeur
      1 type adresse A1 - 2 type adresse L1C1
      1
      1. Merci de ta réponse,
        Un peu de difficulté pour la comprendre.

        ADDRESSE(no_lig;no_col;[no_abs];[a1];[feuille_texte])

        no_lig Obligatoire. Valeur numérique spécifiant le numéro de ligne Ligne correspondant à quel onglet?
        no_col Obligatoire. Valeur numérique spécifiant le numéro de colonne colonne correspondant à quel onglet?

        J'ai cherché dans l'aide Excel, assez abstrait encore une fois.
        Si tu pouvais m'expliquer les variables, un peu plus en profondeur.

        merci d'avance
        0
        1. Bonjour

          un peux de VBA

          Sub ListOnglet()
          L = 5
          For I = 1 To Worksheets.Count
          Onglet = Worksheets(I).Name
          If Onglet <> "Récap" Then
          Feuil2.Range("A" & L).Value = Worksheets(I).Name
          Feuil2.Range("B" & L).Value = Worksheets(I).Range("A5")
          L = L + 1
          End If
          Next I
          End Sub

          A+
          Maurice
          0
          1. MErci pour vos réponses,
            la fonction avec ses explications de PHILOU a bien fonctionné
            0