PDA

Visualizza versione completa : maiuscolo forzato


domenico82
03-03-2015, 19.22.57
Ciao a tutti!!!
E' possibile creare una formula con visual basic che converta gli inserimenti da minuscolo in maiuscolo?
Ho un lavoro costituito da 500 fogli, e vorrei che ogni singola cella di tutti i fogli abbia la stessa proprietà.
Spulciando su internet ho trovato questa:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then
Target = UCase(Target)
End If
End Sub

funziona, ma applica la proprietà solo alla prima colonna.
per averlo su tutte le colonne del foglio? (sono 20)

Grazie

Alexsandra
03-03-2015, 20.46.37
Private Sub Worksheet_Change(ByVal Target As Range)
Target.Value = UCase(Target.Value)
End Sub

domenico82
04-03-2015, 14.33.26
Grazie Ale,
questa funziona su tutte le celle di un foglio.... per estendere questa proprietà a tutti e 500 i fogli del mio lavoro, c'è un sistema particolare? o devo incollare manualmente la stringa su ogni singolo foglio?
Inoltre ho notato che se cancello il contenuto di una cella, (gia convertita in maiuscolo) si apre una finestra con l'avviso:
"errore di run-time '2147417848 (80010108)':
Mtodo 'Value' dell' oggetto 'Range' non riuscito
Da cosa dipende? è possibile eliminare questo avviso?

domenico82
04-03-2015, 14.47.14
.

Alexsandra
04-03-2015, 18.14.08
non ci avevo pensato.
quando fai una modifica qualsiasi, anche cancellare il contenuto, scateni l'evento Change per cui mandi in esecuzione la macro.
Possiamo aggirare questo intoppo disabilitando gli eventi e mettendo una condizione se la cella è vuota. copia questo codice e prova

Private Sub Worksheet_Change(ByVal Target As Range)
Dim cl As Range
Application.EnableEvents = False
For Each cl In Target
With cl
If Not .Value = vbEmpty Then
.Value = UCase(.Value)
End If
End With
Next
Application.EnableEvents = True
End Sub

domenico82
05-03-2015, 01.55.36
Si funziona perfettamente,
e per estendere questa stringa a tutti i fogli c'è un sistema? o devo incollarla per ogni singolo foglio?

Alexsandra
05-03-2015, 11.01.09
lo devi incollare in ogni foglio

domenico82
05-03-2015, 13.04.47
Grazie infinite Ale, il tuo aiuto è sempre puntuale e prezioso :-)

Alexsandra
05-03-2015, 15.01.17
:)