Io con VBA la ho accrocchiata più o meno come ha proposto denis76 al #2
significa parte un ciclo da "z" ad "a" che va a cercare un
particolare file che si trova appunto nella unita
Trovato il file immaginiamo di avere trovato la unita
dico immaginiamo perché il caso potrebbe darti uno stesso identico file al di fuori della unita
ma a me in 3 mesi di "onorato" servizio quotidiano non ha mai dato problemi
Posto sotto il codice copincollato da adattare alla tua applicazione
con i commenti incomprensibili
cosi come me li ero scritti mentre testavo
codice:
Public Sub xy25()
' trova la unita di percorso che contiene il file "????:\Scanned Barcodes\BARCODES.txt"
Dim x As Integer
On Error GoTo Err25
For x = 90 To 67 Step -1
If Len(Dir(UCase(Chr(x)) & ":\Scanned Barcodes\BARCODES.txt")) = 0 Then
' in caso di errore 52 questo è il Resume Next
Else
Unxx = UCase(Chr(x))
x = 10 ' arresta il ciclo appena trova
End If
Next
' se la unita di massa dei Barcode non è connessa chiude la applicazione
If Len(Unxx & "") < 0.5 Then ' se metto Unit() allora il ciclo diventa infinito perche ritorna in cima
MsgBox "Non hai connesso il lettore di barcode"
Application.Quit
End If
Exit Sub
Err25:
' l'errore 52 si verifica con la unita del CDRoom e se metto una unita ubriaca come ad esempio "GH"
If Err.Number = 52 Then
Resume Next
Else
MsgBox "Errore n° " & Err.Number & vbNewLine & Err.Description & vbNewLine & "La ricerca della unita del Barcode "
Application.Quit
End If
End Sub