Una famiglia di sistemi di gestione per database relazionali di Microsoft progettati per semplificare l'uso.
Grazie Cinzia
ho dato un'occhiata ai tuoi suggerimenti.
Troppo complicato per me che sono all'inizio della programmazione vb!
Comunque ci ritornerò fra qualche tempo...
Ancora grazie e buon lavoro.
Lucia
Se vuoi semplificare *senza avere però la certezza assoluta*, questa funzione controlla che nella stringa passata ci sia una sottostringa di 16 caratteri con determinate caratteristiche: 6 lettere nelle prime 6 posizioni, 2 numeri alle posizioni 7-8, 10-11 e tre nelle posizioni 13-14-15. Si può estendere controllando cosa ci sono nelle altre posizioni. Non controlla però l'esattezza del dato:
Public Function f(ByVal s As String) As String
Dim v() As String
Dim lng1 As Long
Dim lng2 As Long
Dim bln As Boolean
f = ""
v = Split(s, " ")
For lng1 = 0 To UBound(v)
If Len(v(lng1)) = 16 Then
bln = True
For lng2 = 1 To 6
If IsNumeric(Mid(v(lng1), lng2, 1)) Then bln = False
Next
If bln = True Then
If IsNumeric(Mid(v(lng1), 7, 2)) Then
If IsNumeric(Mid(v(lng1), 10, 2)) Then
If IsNumeric(Mid(v(lng1), 13, 3)) Then
f = v(lng1)
Exit Function
End If
End If
End If
End If
End If
Next
End Function
Che puoi richiamare in Excel così:
A1: abc xxxxxx11x11x111x gfasgasf kllskl òlòqdkq
B1: =f(A1)
Oppure in qualsiasi programma che supporta il vb, passando la stringa alla funzione:
Public Sub m()
MsgBox f("aaa as xxxxxx11x11c111x gs56bs8j93n ekhd")
End Sub
L'ho semplificata al massimo....
Per estrarre la partita iva, sapendo che la sua lunghezza è di 11 caratteri, puoi utilizzare lo stesso sistema di splittare la stringa e controllare se vi è un eventuale item di 11 caratteri tutti numerici.
Ripeto che non hai la sicurezza assoluta (non so in che forma ti arriva la stringa e se è costantemente in quella forma).