Option Explicit
'JNE : Joindre Nombres Entiers
'5 paramètres (les 2 derniers sont optionnels) :
' sép : séparateur ; par exemple ", " (virgule espace)
' ivd : ignorer vide ; 0 = non ; 1 = oui
' plg : plage ; par exemple A2:I4
' fmt : format de nombre d'une donnée ; ex : "00"
' slc : sens de lecture en colonne ; 0 = non ; 1 = oui
Function JNE(sép$, ivd As Byte, plg As Range, Optional fmt$, Optional slc As Byte) As String
Dim chn$, v0&, s0$, s1$, s2$, l1&, l2&, c1%, c2%, i&, j%
s0 = plg.Address(0, 0): s1 = Split(s0, ":")(0): s2 = Split(s0, ":")(1)
l1 = Range(s1).Row: c1 = Range(s1).Column: l2 = Range(s2).Row: c2 = Range(s2).Column
If slc = 0 Then
For i = l1 To l2
For j = c1 To c2
v0 = Val(Cells(i, j))
If fmt = "" Then s0 = CStr(v0) Else s0 = Format(v0, fmt)
If v0 <> 0 Or (v0 = 0 And ivd = 0) Then chn = chn & s0 & sép
Next j
Next i
Else
For j = c1 To c2
For i = l1 To l2
v0 = Val(Cells(i, j))
If fmt = "" Then s0 = CStr(v0) Else s0 = Format(v0, fmt)
If v0 <> 0 Or (v0 = 0 And ivd = 0) Then chn = chn & s0 & sép
Next i
Next j
End If
JNE = Left$(chn, Len(chn) - Len(sép))
End Function