Grazie
Vittorio
Funzioni: MAIUSC e MINUSC nella
guida di Excel.
--
---------------------------
Mauro Gamberini
http://www.riolab.org/
http://blog.maurogsc.eu/
http://social.microsoft.com/Forums/it-IT/officeit/threads
Ciao vittorio, vedi le funzioni:
MAIUSC()
MAIUSC.INIZ()
MINUSC()
--
Fai sapere se e come hai risolto. Grazie
Ciao paoloard
http://riolab.org
Funzione: MAIUSC.INIZ
Se(se) vuoi puoi anche utilizzare queste macro
che agiscono sulle celle attive senza dover utilizzare
colonne di appoggio:
Public Sub mMaiuscolo()
Dim c As Range
For Each c In Selection
c.Value = UCase(c.Value)
Next
Set c = Nothing
End Sub
Public Sub mMinuscolo()
Dim c As Range
For Each c In Selection
c.Value = LCase(c.Value)
Next
Set c = Nothing
End Sub
Public Sub mPrimaMaiuscola()
Dim s As String
Dim c As Range
For Each c In Selection
s = ""
s = UCase(Left(c.Value, 1))
s = s & LCase(Mid( _
c.Value, 2, Len(c.Value)))
c.Value = s
Next
Set c = Nothing
End Sub
Puoi poi assegnare pulsanti o tasti di scelta
rapida alle macro.
Ho provato Formule > Inserisci Funzione > Testo Maiusc.Iniz scrivo A2 e
sulla finestra che si ᅵ aperta si vede per VITTORIO Vittorio, ma poi
sulla cella si vede =MAIUSC:INIZ(A2)
E inoltre dovrei convertire diverse Celle
Grazie ancora
Vittorio
ciao Mauro,
aggiungerei ... una visita a:
Function StrConv(String, Conversion As VbStrConv, [LocaleID As Long])
Membro di VBA.Strings
saluti
r
--
Come e dove incollare il codice:
http://www.rondebruin.nl/code.htm
Il mio ultimo lavoro ...
http://excelvba.altervista.org/blog/index.php/Excel-VBA/UsedRange-eccezioni-e-alternative.html
ciao Vittorio, cominciamo dall'inizio.
Supponiamo che hai i dati in colonna [A], nella cella a fianco di quella che
contiene il dato da convertire (poniamo [B2] ) scrivi direttamente la
funzione =MAIUSC.INIZ(A2) e premi invio. Dopo di che copi la cella [B2] in
basso per tutta la lunghezza dell'intervallo dei dati in colonna [A].
NB: la funzione =MAIUSC.INIZ() ha le due parole separate da un "punto" non
da "due punti".
OK Grazie
Adesso la seconda parte Ho dei nomi sulle due celle A e B in MAiuscolo
e dovrei farle diventare solo l'iniziale in Maiuscolo Fanno da A1 ad A
20 e da B1 a B20 come farli tutti insieme?
Grazie ancora
V.
Nella cella [C1] scrivi la formula: =MAIUSC.INIZ(A1) conferma con invio
Copia la cella [C1] e incollala in [D1]
Seleziona le due celle [C1] [D1] e copiale fino alla riga 20.
Se non ti interessa mantenere i nomi originali in colonna [A] e [B],
seleziona l'intervallo [C1:D20], fai la copia e, in [E1], incolla
speciale-->valori.
Dopo di che puoi eliminare le colonne dalla [A] alla [D].
Sei stato chiarissimo!
Grazie
Che, se ben ricordo per�, in una frase come
"ciao come stai?" trasforma *tutte* le prime
lettere delle parole in maiuscolo(vbProperCase?):
"Ciao Come Stai?" e non "Ciao come stai?"
Vado a memoria, non ho Excel sotto mano.
> > aggiungerei ... una visita a:
> >
> > Function StrConv(String, Conversion As VbStrConv, [LocaleID As Long])
> > Membro di VBA.Strings
> >
>
> Che, se ben ricordo però, in una frase come
> "ciao come stai?" trasforma *tutte* le prime
> lettere delle parole in maiuscolo(vbProperCase?):
> "Ciao Come Stai?" e non "Ciao come stai?"
esattamente, basta leggere la guida come suggerito.
Si comporta come Maiusc.Iniziale
>
> Vado a memoria, non ho Excel sotto mano.
Nonostante l'età la memoria ti funziona ancora
bene :-)
ciao
Ciao, Nur
> > aggiungerei ... una visita a:
> >
> > Function StrConv(String, Conversion As VbStrConv, [LocaleID As Long])
> > Membro di VBA.Strings
> >
>
> Che, se ben ricordo però, in una frase come
> "ciao come stai?" trasforma *tutte* le prime
> lettere delle parole in maiuscolo(vbProperCase?):
> "Ciao Come Stai?" e non "Ciao come stai?"
poi si potrebbe tentare di fare qualcosa
di più *intelligente* ...
Function MaiuscoInizialeMigliorato(ByVal s As String) As String
Dim v, i As Long
Dim re As Object
Set re = CreateObject("vbscript.regexp")
re.Pattern = "(^|[.!?]\b|[.!?]\s\b|\r\b)(.)"
re.Global = True
MaiuscoInizialeMigliorato = re.Replace(s, "$1#$2#")
v = Split(MaiuscoInizialeMigliorato, "#", , vbTextCompare)
For i = 1 To UBound(v) Step 2
v(i) = VBA.StrConv(v(i), vbUpperCase)
Next
MaiuscoInizialeMigliorato = Join(v, "")
End Function
output
?MaiuscoInizialeMigliorato("come stai? bene! e tu? male. comunque sono
ottimista")
Come stai? Bene! E tu? Male. Comunque sono ottimista
Mon capitain!!!
*Uellcomm* a casa.
Mauro Gamberini