Bonjour,
Voici un code qui fonctionne avec mise en place de deux formules dont une en matricielle pour le comparatif. Ce dernier est fait sur le nombre de caractères sachant que tu as un numéro de dossier qui ne comporte que 11 caractères (ligne 158) par rapport à tous les autres qui en comportent 13 :
Sub Test()
Dim Plage As Range
Dim Cel As Range
Dim Chaine As String
Dim I As Integer
Dim Lg As Integer
With Feuil8
'défini la plage sur la colonne A à partir de A2
Set Plage = .Range(.Cells(2, 1), .Cells(.Rows.Count, 1).End(xlUp))
'parcours la plage...
For Each Cel In Plage
'concatène
Chaine = Chaine & Cel.Value & ","
'si supérieur...
If Len(Chaine) > 255 Then
'retire le dernier numéro de dossier avec les virgules (2, une avant et une après)
'et inscrit dans la cellule colonne R à partir de R1
Chaine = Left(Chaine, Len(Chaine) - (Len(Cel.Value) + 2))
I = I + 1: .Cells(I, 18).Value = Chaine
'récupère le numéro de dossier dans la chaine pour un nouveau tour
Chaine = Cel.Value & ","
End If
Next Cel
'inscrit ce qu'il reste des numéros de dossiers
I = I + 1: .Cells(I, 18).Value = Left(Chaine, Len(Chaine) - 1)
'formules pour le contrôle de la récup par rapport aux numéros de dossier colonne A
'la comparaison se fait sur le nombre de caractères sachant qu'il y a un numéro de dossier qui ne comporte que 11 caractères
.Cells(2, 12).FormulaArray = "=SUM(LEN(A2:A179))"
.Cells(2, 13).Formula = "=SUMPRODUCT(LEN(SUBSTITUTE(R1:R100,"","",""""))*1)"
End With
End Sub