PDA

Visualizza versione completa : EXCEL - Macro per celle selezionate.


riccardonard
23-11-2008, 09.10.36
Salve a tutti, desidero proporre un quesito che per alcuni sarà banale, tuttavia potrebbe essere utile a molti.
Ho creato una semplice macro che genera il carattere alternativamente Maiuscolo/minuscolo sul testo di una qualsiasi cella di un foglio di excel. Cioè, col mouse su una cella qualsiasi che contiene del testo, battendo CTRL-m ottengo la variazione del carattere da maiuscolo a minuscolo o viceversa.
La mia domanda è: come è possibile, se è possibile, fare funzionare la macro su una selezione di diverse celle? Ad esempio, io vorrei selezionare con il mouse l'intervallo "D3:G7" e poi lanciare la mia macro ed avere il risultato del cambio carattere (Maiuscolo/minuscolo) per tutte le celle selezionate.
Forse è già stato affrontato questo argomento, mi sapete indicare dove, per favore, oppure (meglio ancora) replicare la soluzione?
Grazie a tutti gli interessati a questo argomento.
Riccardo

P.S. La mia macro attuale è la seguente.

Sub Maiu_minu() ' Scelta rapida da tastiera: Ctrl-m

With Selection
Valor$ = ActiveCell.Value
If Valor$ = UCase(Valor$) Then
ActiveCell.Value = LCase(Valor$)
Else
ActiveCell.Value = UCase(Valor$)
End If
End With
End Sub

LoryOne
23-11-2008, 11.35.13
Devi agire su un intervallo (range) di celle.
Se passassi come parametro un range alla tua sub, saresti sulla buona strada.
Ovviamente dovresti essere in grado di identificare gli estremi del range.
Studiati bene metodi e proprietà della classe range

Cricchia
24-11-2008, 13.49.32
mmmm...
prova così:


Sub Maiu_minu() ' Scelta rapida da tastiera: Ctrl-m
Dim cella As Range
For Each cella In Selection
If IsEmpty(cella) Then GoTo salta_cella
Valor$ = cella.Value
If Valor$ = UCase(Valor$) Then
cella.Value = LCase(Valor$)
Else
cella.Value = UCase(Valor$)
End If
salta_cella:
Next cella

End Sub


;)

riccardonard
24-11-2008, 14.46.22
Grazie a Cricchia:
La tua soluzione funziona perfettamente.
In realtà ci sono arrivato anche io, ma attraverso strade molto più artificiose e complesse. La la tua soluzione è sicuramente migliore; era ciò che cercavo.
Ti ringrazio molto.
Riccardo

grace
25-11-2008, 14.05.35
:act: :act: Cricchia.... mitica come sempre... con queste macro Excell non ti batte nessuno... ho salvato la vita a mille colleghi grazie a te... :)
dovresti cominciare a farti pagare .... ;) ;)
ciao