Function voc(x)
If x = "A" Or x = "E" Or x = "I" Or x = "O" Or x = "U" Then
voc = True
Else
voc = False
End If
End Function
Function cognome(x)
x = UCase(x)
a$ = ""
co = 0
vo = 0
While Len(x) < 3
x = x + "X"
Wend
For i = 1 To Len(x)
m$ = Mid(x, i, 1)
If voc(m$) Then
vo = vo + 1
Else
co = co + 1
End If
Next i
If co > 3 Then
co = 3
End If
vo = 3 - co
For i = 1 To Len(x)
m$ = Mid(x, i, 1)
If Not voc(m$) And co > 0 Then
a$ = a$ + m$
co = co - 1
End If
Next i
For i = 1 To Len(x)
m$ = Mid(x, i, 1)
If voc(m$) And vo > 0 Then
a$ = a$ + m$
vo = vo - 1
End If
Next i
cognome = a$
End Function
Function nome(x)
x = UCase(x)
a$ = ""
co = 0
vo = 0
salta = False
While Len(x) < 3
x = x + "X"
Wend
For i = 1 To Len(x)
m$ = Mid(x, i, 1)
If voc(m$) Then
vo = vo + 1
Else
co = co + 1
End If
Next i
If co > 3 Then
co = 3
salta = True
End If
vo = 3 - co
For i = 1 To Len(x)
m$ = Mid(x, i, 1)
If Not voc(m$) And co > 0 Then
If salta And co = 2 Then
salta = False
Else
a$ = a$ + m$
co = co - 1
End If
End If
Next i
For i = 1 To Len(x)
m$ = Mid(x, i, 1)
If voc(m$) And vo > 0 Then
a$ = a$ + m$
vo = vo - 1
End If
Next i
nome = a$
End Function
E' meglio se ci indichi da dove l'hai scaricato.
--
Tiziano Marmiroli
Microsoft Mvp - Office
Io l'ho provato mettendo sia il mio nome nella formula:
=nome("Sergio Cesare") che mettendo il nome "Sergio Cesare" in A5 e
digitando la formula in questo modo:
=Nome(A5)
Il risultato che esce è sempre lo stesso ovvero "SRG"
pertanto probabilmente non ho capito cosa tu intenda...
il problema è che il risultato è SBAGLIATO.....
Consiglio... cerca un'altra routine..
Sergio
===================================
Penso che l'errore sia dovuto alla presenza di spazi
a sinistra o a destra del nome o del cognome.
Quindi ti consiglio di usare almeno la funzione trim(stringa) e
cioè:
x = UCase(trim(x))
Guarda sull'help anche la funzione replace() eventualmente.
( )---cucchiaino
---------------
Invia una email a it.office @ mvps.org con oggetto "Richiesta it.office"
per ricevere gratuitamente la newsletter di IT.OFFICE: un valido aiuto
sugli strumenti di Office.