Ciao, l'errore lo da in quanto non hai indicato che la variabile codice (e le altre) è un vettore.
anche se non è il massimo dell'ottimizzazione, modifica in questa maniera:
codice:
Dim idxMax as long
Dim codice() as string
Dim descr() as string
Dim um() as string
Dim qta() as string
Dim note() As string
Dim tmp2, tmp1 As Variant
tmp1 = Split(dati, "§")
idxMax=UBound(tmp1)
Redim codice(idxMax)
Redim descr(idxMax)
Redim um(idxMax)
Redim qta(idxMax)
Redim note(idxMax)
For i = LBound(tmp1) To UBound(tmp1) - 1
tmp2 = Split(tmp1(i), "¤")
codice(i) = tmp2(0)
descr(i) = tmp2(1)
um(i) = tmp2(2)
qta(i) = tmp2(3)
note(i) = tmp2(4)
Next