Condividi:        

Maiuscolo Automatico

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Maiuscolo Automatico

Postdi marte1503 » 08/12/22 17:10

Ciao a tutti,
E' possibile formattare una cella in modo che converta in maiuscolo delle lettere erroneamente scritte in minuscolo?

esempio op876/2022----------------->OP876/2022

Grazie
marte1503
Utente Senior
 
Post: 232
Iscritto il: 08/01/10 20:43
Località: Como

Sponsor
 

Re: Maiuscolo Automatico

Postdi Anthony47 » 09/12/22 02:14

Non conosco nessuna magia
In genere io creo l'elenco in una nuova colonna usando la formula =MAIUSC(A1) e poi copiando verso il basso; poi copio questo elenco e faccio IncollaSpeciale /Valori sull'elenco iniziale; infine cancello l'elenco creato con le formule

Volendo puoi impostare una macro che automaticamente converte in maiuscolo quanto viene scritto.
Ad esempio:
-tasto dx sul tab col nome del foglio di lavoro
-scegli Visualizza codice per aprire il vba nella posizione corretta
-incolla questo codice nel frame "vuoto" di destra (se non e' vuoto allora dicci cosa contiene per verificare la compatibilità)
Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Area As String, inArea As Range, myC As Range
'
Area = "A2:C30"     '<<< l'area da convertire in maiuscolo
Set inArea = Application.Intersect(Target, Range(Area))
If Not inArea Is Nothing Then
    Application.EnableEvents = False
    For Each myC In inArea
        If myC.Value <> "" Then
            myC.Value = UCase(myC.Value)
        End If
    Next myC
    Application.EnableEvents = True
End If
End Sub

Compila la riga marcata <<< con l'intervallo in cui vorresti che la macro lavorasse

Poi torna sul foglio e prova a scrivere qualcosa e vedi l'effetto
Il file va salvato nel formato ".xlsm", abilitato alle macro.

Fai sapere...
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Maiuscolo Automatico

Postdi marte1503 » 09/12/22 11:45

Ciao Anthony,
grazie per il supporto..

Sento che sto per fare una figuraccia :oops: , ma tieni presente che hai a che fare praticamente con un neonato in fatto di conoscenza di Excel...Il problema è che nel foglio in questione esiste già questa macro che ho ripescato in uno dei miei vecchi lavori e l'ho riadattata a questo nuovo progetto, ora però non mi accetta la tua perché rileva un nome non univoco..

Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B$7" Then Range("D7").ClearContents
If Target.Address = "$B$7" Then Range("F7").ClearContents
If Target.Address = "$B$7" Then Range("H7").ClearContents
If Target.Address = "$B$7" Then Range("B10").ClearContents
If Target.Address = "$B$7" Then Range("B10").ClearContents
If Target.Address = "$B$7" Then Range("D10").ClearContents
If Target.Address = "$B$7" Then Range("B13").ClearContents
If Target.Address = "$B$7" Then Range("F10:H13").ClearContents
If Target.Address = "$D$7" Then Range("F7").ClearContents
If Target.Address = "$D$7" Then Range("H7").ClearContents
If Target.Address = "$D$7" Then Range("B10").ClearContents
If Target.Address = "$D$7" Then Range("D10").ClearContents
If Target.Address = "$D$7" Then Range("B13").ClearContents
If Target.Address = "$B$4" Then Range("D4").ClearContents
If Target.Address = "$B$4" Then Range("F4").ClearContents
End Sub



Non so come correggere il nome di questa tua nuova macro per evitare il problema... :oops: :oops:
marte1503
Utente Senior
 
Post: 232
Iscritto il: 08/01/10 20:43
Località: Como

Re: Maiuscolo Automatico

Postdi marte1503 » 09/12/22 12:09

Ok, già lo sapevo che avrei fatto una figuraccia...

Mi è venuto in mente solo ora di aggiungete il tuo codice sotto a quello già inserito da me e pare funzionare tutto..
inizialmente pensavo servissero due macro distinte, ma ho capito che basta aggiungere sotto...

questa la nuova macro aggiornata

Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B$7" Then Range("D7").ClearContents

If Target.Address = "$B$7" Then Range("F7").ClearContents
If Target.Address = "$B$7" Then Range("H7").ClearContents
If Target.Address = "$B$7" Then Range("B10").ClearContents
If Target.Address = "$B$7" Then Range("B10").ClearContents
If Target.Address = "$B$7" Then Range("D10").ClearContents
If Target.Address = "$B$7" Then Range("B13").ClearContents
If Target.Address = "$B$7" Then Range("F10:H13").ClearContents
If Target.Address = "$D$7" Then Range("F7").ClearContents
If Target.Address = "$D$7" Then Range("H7").ClearContents
If Target.Address = "$D$7" Then Range("B10").ClearContents
If Target.Address = "$D$7" Then Range("D10").ClearContents
If Target.Address = "$D$7" Then Range("B13").ClearContents
If Target.Address = "$B$4" Then Range("D4").ClearContents
If Target.Address = "$B$4" Then Range("F4").ClearContents

Dim Area As String, inArea As Range, myC As Range
Area = "B7"     '<<< l'area da convertire in maiuscolo
Set inArea = Application.Intersect(Target, Range(Area))
If Not inArea Is Nothing Then
    Application.EnableEvents = False
    For Each myC In inArea
        If myC.Value <> "" Then
            myC.Value = UCase(myC.Value)
        End If
    Next myC
    Application.EnableEvents = True
End If
End Sub
marte1503
Utente Senior
 
Post: 232
Iscritto il: 08/01/10 20:43
Località: Como

Re: Maiuscolo Automatico

Postdi Anthony47 » 09/12/22 12:27

Ma te l'avevo che se l'area del codice non era vuota bisognava verificare la compatibilita' con l'esistente...
Comunque hai integrato abbastanza bene i due codici.

Ti propongo lo stesso questa versione, che integra il tuo codice (con "qualche" rivisitazione) con il mio:
Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Area As String, inArea As Range, myC As Range
'
Application.EnableEvents = False
If Target.Address = "$B$7" Then
    Range("D7, F7, H7, B10, D10, B13, F10:H13").ClearContents
ElseIf Target.Address = "$D$7" Then
    Range("F7, H7, B10, D10, B13").ClearContents
ElseIf Target.Address = "$B$4" Then
    Range("D4,F4").ClearContents
End If
Application.EnableEvents = True
'
Area = "A2:C30"     '<<< l'area da convertire in maiuscolo
Set inArea = Application.Intersect(Target, Range(Area))
If Not inArea Is Nothing Then
    Application.EnableEvents = False
    For Each myC In inArea
        If myC.Value <> "" Then
            myC.Value = UCase(myC.Value)
        End If
    Next myC
    Application.EnableEvents = True
End If
End Sub

Questa pero', in caso di modifica alla cella B7, cancella solo il contenuto di "D7, F7, H7, B10, D10, B13, F10:H13"; la tua versione cancellava invece anche "F7, H7, B10, D10, B13", ma non so se era "studiato" o era un effetto collaterale non voluto. Se era "studiato" allora devo farti una ulteriore modifica.
Intanto prova questa versione, poi dimmi l'esito e se dobbiamo modificare ancora l'area pulita su variazione di B7

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Maiuscolo Automatico

Postdi marte1503 » 09/12/22 15:41

...Eccomi qua, ho provato la tua soluzione.

Anch'io avevo provato a cancellare più celle con un solo comando, ma non funzionava perché invece di separare le celle con la Virgola utilizzavo il Punto&virgola :roll:

Per quanto riguarda il tuo codice, a parte il fatto di essere scritto ovviamente meglio del mio non ho notato grosse differenze..

Se modifico la cella B7 cancella D7, F7, H7,B10, D10, B13, e F10:H13(cella unita) ed è il risultato che ottenevo con la mia
Se modifico la cella D7 cancella F7, H7,B10, D10, B13

Mi rendo conto solo ora che nel mio codice avevo ripetuto 2 volte per errore il comando

Codice: Seleziona tutto
If Target.Address = "$B$7" Then Range("B10").ClearContents


e che avevo tralasciato l'istruzione per cancellare la cella unita F10:H13
ora aggiungo questa informazione al tuo codice ed è perfetto; fa esattamente tutto quello che mi serve.

Anche questa volta hai aggiunto un mattone al mio piccolo muretto di sapere
Ti ringrazio!
Ciao
marte1503
Utente Senior
 
Post: 232
Iscritto il: 08/01/10 20:43
Località: Como


Torna a Applicazioni Office Windows


Topic correlati a "Maiuscolo Automatico":


Chi c’è in linea

Visitano il forum: Nessuno e 141 ospiti