A mon avis, il faut passer par de la prog VBA.
Tu crées une macro vide et tu essaies quelque chose comme ça:
Dim sBuf as string
Dim aBuf
sBuf = sheets("NomFeuille_1" ).Cells(x, y) ' (x,y) = cellule contenant ton 1
aBuf = Split(sBuf, "-" ) ' Excel 2000, sinon la programmer (cf + bas)
' Puis boucle sur ta colonne à remplir
For i = 1 To UBound(aBuf)
ActiveSheet.Cells(i, 2) = aBuf(i)
Next i
NB: la fonction Split apparait avec VB6 et VBA sous Office2000
Si ton Excel est plus ancien, voici le code de la fonction Split()
Public Function Split(ByVal sIn As String, Optional sDelim As _
String, Optional nLimit As Long = -1, Optional bCompare As _
VbCompareMethod = vbBinaryCompare) As Variant
Dim sRead As String, sOut() As String, nC As Integer
If sDelim = "" Then
Split = sIn
End If
sRead = ReadUntil(sIn, sDelim, bCompare)
Do
ReDim Preserve sOut(nC)
sOut(nC) = sRead
nC = nC + 1
If nLimit <> -1 And nC >= nLimit Then Exit Do
sRead = ReadUntil(sIn, sDelim)
Loop While sRead <> ""
ReDim Preserve sOut(nC)
sOut(nC) = sIn
Split = sOut
End Function
Je ne suis plus sur de savoir si l'initialisation des params fonctionne sur Excel97 & -
Si ça pose un pb de syntaxe, il faut modifier le code en faisant des init de nLimit avec:
if ismissing(nLimit) then nLimit = -1
et de VbCompareMethod avec:
if ismissing(VbCompareMethod) then VbCompareMethod = vbBinaryCompare
Je crois avoir été complet
A+