bonjour,
en vba
Sub aargh()
Dim tr()
t = Sheets("saisie").ListObjects("tableau1").Range 'on copie le tableau excel saisie dans un tableau vba nommé t
ReDim tr(UBound(t) * 4, 1 To 7) 'on dimensionne un tableau resultat nommé tr
tr(0, 1) = t(1, 1) 'on met les entêtes de colonnes en ligne 1
tr(0, 2) = t(1, 2)
tr(0, 3) = t(1, 3)
tr(0, 4) = t(1, 4)
tr(0, 5) = t(1, 5)
tr(0, 6) = "Ventilation"
tr(0, 7) = "Famille"
For i = 2 To UBound(t) 'on traite les données du tableau saisie
For j = 7 To 10 'on parcourt les 4 dernières colonnes
If t(i, j) <> "" Then 'si non vide
k = k + 1 'on ajoute une ligne
tr(k, 1) = t(i, 1) 'avec les données nécessaires
tr(k, 2) = t(i, 2)
tr(k, 3) = t(i, 3)
tr(k, 4) = t(i, 4)
tr(k, 5) = t(i, 5)
tr(k, 6) = t(i, j) 'le montant HT
tr(k, 7) = t(1, j) 'la famille
End If
Next j
Next i
'tableau resultat est prêt, on le copie dans la feuille export
With Sheets("export")
.Cells.Delete 'on vide la feuille
.Range("A1").Resize(k, 7) = tr 'on copie le tableau resultat
.ListObjects.Add(xlSrcRange, .Range("A1").Resize(k, 7), , xlYes).Name = "Tabresult" 'on transforme les données en tableau structuré
.ListObjects("Tabresult").TableStyle = "TableStyleMedium2" 'on lui donne le style adéquat
End With
End Sub