Afficher les 5 lignes en dessous d'une valeur

Bonsoir,

J’aimerais afficher automatiquement les 5 textes des 5 lignes en colonne A qui apparaissent sous une valeur donnée ici L3 voir le fichier Excel joint ( L3 étant ici la valeur max de la colonne ).

Et si la valeur L3 change par un changement d’année grâce au tableau croisé dynamique qu’il affiche les textes des 5 lignes en colonne A de cette nouvelle valeur.

Je vous joint le fichier Excel c'est plus parlant.

Merci de votre lecture

Hello,

A l'ancienne :

Sub CinqLignes()
    Dim i As Long
    i = 1
    Do While i <= Range("A65536").End(xlUp).Row
        If Range("A" & i) = [E6] Then
            [E7] = Range("A" & i + 1)
            [E8] = Range("A" & i + 2)
            [E9] = Range("A" & i + 3)
            [E10] = Range("A" & i + 4)
            [E11] = Range("A" & i + 5)
            Exit Do
        End If
        i = i + 1
    Loop
End Sub

bonjoir,

Sub Resumé()
     Dim res(1 To 10000, 1 To 5), sPrevious

     With Sheets("TabsPointsClés")
          Set pvt = .PivotTables(1)   'le TCD
          For Each c In pvt.DataBodyRange.Columns(1).Cells     'boucle 1iere colonne du databodyrange
               Set c1 = c.PivotCell
               On Error Resume Next
               ReDim it(1 To 4)     'reinitialiser
               it(1) = c1.RowItems(1).Value     'code loc
               it(2) = c1.RowItems(2).Value     'description default
               it(3) = c.Value     'nombre
               it(4) = c.Offset(, 1).Value     'somme
               On Error GoTo 0

               If Not IsEmpty(it(1)) Then     'rowitem(1) existe
                    If it(1) <> sPrevious Then     'changement de "code loc"
                         ptr = ptr + 1     'incrementer pointer
                         Ln = (ptr - 1) * 10 + 1     'ligne dans l'array
                         sPrevious = it(1)     'nouveau code loc
                         i = 1
                         res(Ln + i, 1) = it(4)     'somme code loc
                         res(Ln + i, 2) = it(1)     'code loc
                    End If
               End If
               Select Case i
                    Case 2 To 6
                     res(Ln + i - 1, 3) = it(2)     '1ier jusqu'au 5ieme description default
                     res(Ln + i - 1, 4) = it(3)
                      res(Ln + i - 1, 5) = it(4)
               End Select
               i = i + 1

          Next

          With .Range("AA1").Resize(, UBound(res, 2))
               .EntireColumn.ClearContents
               .Resize(Ln + 10).Value = res
               .EntireColumn.AutoFit
          End With
     End With
End Sub

Whaou ! Merci à vous 2 pour vos réponses rapides qui fonctionnent toutes les 2 !!!

Rechercher des sujets similaires à "afficher lignes dessous valeur"