Ciao alecast, benvenuto nel forum.
In aggiunta alle varie proposte gia' fatte (vedi sopra), con tutte le approssimazioni del caso ti propongo una "funzione" personalizzata:
- Codice: Seleziona tutto
Function myCap(ByVal myAdr As String) As Variant
Dim mySplit, I As Long
mySplit = Split(Replace(myAdr, ",", " "), " ")
For I = 1 To UBound(mySplit)
If Len(mySplit(I)) = 5 Then
If IsNumeric(mySplit(I)) Then
ccap = ccap & mySplit(I) & ", "
End If
End If
Next I
If Len(ccap) > 1 Then myCap = Left(ccap, Len(ccap) - 2) Else myCap = [#N/A]
End Function
Inserisci il codice in un "Modulo standard" del tuo editor delle macro:
-da Excel, Alt-F11 per aprire l' editor delle macro
-Menu /Inserisci /Modulo
-copia il codice e incollalo nel frame vuoto di destra
Torna sul fogli excel; se in B2, ad esempio hai un indirizzo (es Via Camillo Benso Cavour, 117, 90133 Palermo, Italia) usa in C2 la formula
- Codice: Seleziona tutto
=mycap(B2)
Copiala poi verso il basso.
Ti restituira' la stringa di 5 caratteri numerici che viene trovata nell' indirizzo; se ci sono piu' stringhe che corrispondono a questa definizione, verrano presentate tutte separate da ","; se non ne viene identificato nessuno restituisce l' errore #N/D.
Per essere riconosciuto, quindi, il cap deve corrispondere a una "parola unica" (stringa separata da uno spazio o una virgola, o a inizio /fine dell' indirizzo) lunga 5 caratteri, tutti numerici. Questi sono esempi di risultati ottenuti:
- Codice: Seleziona tutto
Indirizzo Cap
Via veneto 28,00144 Roma 00144
Via veneto 28/00144, Roma #N/D
Via veneto 28, 00144/ Roma #N/D
Via Po tel. 54321, 00144, Roma 54321, 00144
Per allegare uno screenshot guarda gqui:
viewtopic.php?f=26&t=80395#p466013Ciao