Merci ! Bien joué
Et oui, je suis sur Mac ! Et en effet, ça coince avec les accents... Alala. Voici le code (édité) :
Option Base 1
Sub Reorganiser()
Dim NB%, i%, n%
Dim valeur$
Dim Export()
With Sheets("données brutes")
NB = .Cells(.Rows.Count, 1).End(xlUp).Row
For i = 2 To NB
valeur = .Cells(i, 1).Value
If valeur Like "*|*" Then
n = n + 1
ReDim Preserve Export(2, n)
Export(1, n) = Left(valeur, InStr(valeur, "|") - 2)
End If
If valeur Like "TOTAL*" Then
Export(2, n) = Export(2, n) + CDbl(Replace(Replace(valeur, "TOTAL = ", ""), " € ", ""))
End If
Next i
End With
With Sheets("données attendues")
If .ListObjects.Count = 0 Then
.ListObjects.Add(Source:=.Range("A1:B2"), XlListObjectHasHeaders:=xlYes).Name = "Recap"
.Range("Recap[#Headers]").Value = Array("Codes", "Montants")
End If
With Range("Recap")
.Delete
.Columns(2).NumberFormatLocal = "# ##0,00 €;[Rouge]- # ##0,00 €;"
.Cells(1).Resize(UBound(Export, 2), 2) = Application.Transpose(Export)
End With
End With
Call Trier
End Sub
'MACRO POUR TRIER LES CODES
Sub Trier()
With ActiveWorkbook.Worksheets("données attendues").ListObjects("Recap").Sort
.SortFields.Clear
.SortFields.Add Key:=Range("Recap[Codes]"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
Morale de l'histoire (ou comment se dédouaner) : ne pas mettre de caractères accentués sur les noms de feuille ou les plages nommées.