Originariamente inviato da moussa
Ho provato a adattare il tuo codice al mio, ma nn va, comunque la descrizione è un vettore ecco perche ho fatto un loop di "i" e uno di "n", perche la descrizione è un vettore e ci sono tanti righe.
Allora devi fare due cicli For, uno dentro all'altro...

Pero', prima, dimmi se ho capito bene la situazione, senno' andremo avanti all'infinito

1) Hai un certo numero di righe, formattate come segue:
70782154;TRANSISTOR BC856B BOX SMD SOT23 ;00000,0090
memorizzate sotto forma di vettore di nome Descrizione_Text1()

2) Hai delle descrizioni di componenti, tipo:
TRANSISTOR BC856B BOX SMD SOT23
memorizzate come vettore di nome Descrizione_Bom()

3) Vuoi cercare nel vettore Descrizione_Text1() la presenza di Descrizione_Bom() ed estrarne il codice corrispondente, che si trovera' all'inizio di Descrizione_Text1() separato dal resto della riga da un punto e virgola.

4) Vuoi ripetere il procedimento per tutte le descrizioni dei componenti (e quindi avrai bisogno anche di un VETTORE di codici, delle stesse dimensioni di Descrizione_Bom(), dove memorizzare il codice di ciascun componente.

E' questa la situazione che ti si presenta ?

In questo caso:
codice:
   Dim i As Integer, j As Integer
   For j = 0 To UBound(Descrizione_Bom)
      If Descrizione_Bom(j) <> "" Then
        For i = 0 To UBound(Descrizione_Text1)
          If UCase$(Descrizione_Text1(i)) Like ("*" & UCase$(Descrizione_Bom(j)) & "*") Then
            'il codice e' la parte sinistra della riga, fino al carattere precedente il ';'
            Codice(j) = Left$(Descrizione_Text1(i), InStr(Descrizione_Text1(i), ";") - 1)
            Exit For  'trovato il codice, esce dal ciclo interno
          End If
        Next
      End If
   Next
Ovviamente PRIMA di questo devi aver dichiarato da qualche parte il vettore dei codici con qualcosa come:
codice:
Dim Codici(UBound(Descrizione_Bom)) As String