Afficher les 5 lignes en dessous d'une valeur
Y
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 Subbonjoir,
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 SubY
Whaou ! Merci à vous 2 pour vos réponses rapides qui fonctionnent toutes les 2 !!!