Jean-Eric,
Merci pour votre réponse.
Cela répond parfaitement à ma problématique.
Est-il possible de décrire exhaustivement, le processus pour développer cette macro ?
A mon niveau, je sais :
- Afficher une Macro
- Enregistrer une Macro
- Aller dans l'interface VBA.
- Je connais l'anglais, et comprend très globalement le langage "IF", "IF NOT", "END"
Pour précision, je souhaiterais exporter cette macro vers mon document de travail. Je pense pouvoir le faire en copiant-collant la macro. Par exemple, il est simple pour moi d'adapter les informations dans la macro, tels que Worksheets("Données") ou Worksheets("Synthèse").
Si décrire ce processus ci-dessous est trop fastidieux, n'hésitez pas en m'en faire part.
Public Sub Consolidate_data()
Dim lo As ListObject
Dim tbl, Arr()
Dim rCell As Range
Dim I As Long, J As Long, k As Long
tbl = Worksheets("Données").ListObjects(1).DataBodyRange.Value
Set lo = Worksheets("Synthèse").ListObjects(1)
If Not lo.DataBodyRange Is Nothing Then lo.DataBodyRange.Delete
Set rCell = lo.InsertRowRange.Cells(1)
For I = 1 To UBound(tbl)
For J = 2 To UBound(tbl, 2) - 1 Step 2
If tbl(I, J) <> 0 Then
ReDim Preserve Arr(3, k + 1)
Arr(0, k) = CLng(tbl(I, 1))
Arr(1, k) = tbl(I, J)
Arr(2, k) = tbl(I, J + 1)
k = k + 1
End If
Next J
Next I
With rCell
.Resize(k, 3).Value = Application.Transpose(Arr)
.EntireColumn.AutoFit
End With
End Sub
En vous remerciant à nouveau et en vous souhaitant une bonne journée.
Respectueusement.