Allora devi fare due cicli For, uno dentro all'altro...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.
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:
Ovviamente PRIMA di questo devi aver dichiarato da qualche parte il vettore dei codici con qualcosa come: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
codice:Dim Codici(UBound(Descrizione_Bom)) As String

Rispondi quotando