Condividi:        

Mettere tutto MAIUSCOLO un range di celle

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

Mettere tutto MAIUSCOLO un range di celle

Postdi raimea » 19/04/25 15:19

ciao

ho questo codice che mi mette
tutto MAIUSCOLO il contenuto
delle celle del range G13:O500

funziona ma e' molto lento !!

Codice: Seleziona tutto
Sub VPMaiuscole()
   
   Sheets("archivio").Select
   
   For Each x In Range("G13:O500")
      ' Change the text in the range to uppercase letters.
      x.Value = UCase(x.Value)
   Next
   
End Sub



esiste un modo per fare la stessa cosa
piu' velocemente ?

si potrebbe anche controllare le righe
compilate partendo dalla G13 ad UR

Immagine

ciao
S.O. win11, Excell 2021
Avatar utente
raimea
Utente Senior
 
Post: 1456
Iscritto il: 11/02/10 07:33
Località: lago

Sponsor
 

Re: Mettere tutto MAIUSCOLO un range di celle

Postdi Raffaele53 » 19/04/25 19:22

Forse ci sono dei Worksheet_Change() oppure delle Function() che interferiscono, copia il foglio in Files-nuovo e riprova.
Comunque prova pure queste due
Codice: Seleziona tutto
Option Explicit
Sub VPMaiuscole()
   Application.EnableEvents = False
   Application.Calculation = xlCalculationManual
   For Each x In Range("G13:O500")
      x.Value = UCase(x.Value)
   Next
   Application.EnableEvents = True
   Application.Calculation = xlCalculationAutomatic
End Sub
Sub VPMaiuscole2()
Dim Area As Range, Ur As Long
Ur = Sheets("archivio").Range("G" & Rows.Count).End(xlUp).Row
Set Area = Sheets("archivio").Range("G13:O" & Ur)
Application.EnableEvents = False
Application.Calculation = xlCalculationManual

Area.Replace What:="v", Replacement:="V", LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Area.Replace What:="p", Replacement:="P", LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Area.Replace What:="n", Replacement:="N", LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
'Aggiungi per altre Lettere>>>> Area.Replace What:="xxxxxx", Replacement:="XXXXXXX", LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False

Application.EnableEvents = True
Application.Calculation = xlCalculationAutomatic
Set Area = Nothing
End Sub
Raffaele53
Utente Junior
 
Post: 63
Iscritto il: 03/10/24 13:06

Re: Mettere tutto MAIUSCOLO un range di celle

Postdi raimea » 19/04/25 19:37

ciao
la prima si blocca in :
Codice: Seleziona tutto
For Each x In Range("G13:O500")

risponde variabile non definita.

la 2da funziona
ma non posso compilare
Codice: Seleziona tutto
Area.Replace What:="v", Replacement:="V", LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False

una riga per ogni casistiche che potrebbe trovare nelle celle


comunque grazie
S.O. win11, Excell 2021
Avatar utente
raimea
Utente Senior
 
Post: 1456
Iscritto il: 11/02/10 07:33
Località: lago

Re: Mettere tutto MAIUSCOLO un range di celle

Postdi Anthony47 » 19/04/25 20:18

Ma e' una operazione che devi fare spesso o devi convertire (una sola volta) il contenuto del foglio?

Se fai Trova "v" e Sostituisci con "V", e poi ripeti per "p" e "n" funziona o no?
Se funziona, i tempi sono accettabili e devi ripetere spesso allora registra una macro mentre fai le tre sostituzioni e dovresti essere a posto
Se questa tecnica non risolve, puoi mostrare che aspetto hanno i dati all'interno delle celle da convertire? Ci sono celle con formule? celle vuote?
Avatar utente
Anthony47
Moderatore
 
Post: 19604
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Mettere tutto MAIUSCOLO un range di celle

Postdi Raffaele53 » 19/04/25 20:29

Vedendo la foto allegata, le lettere mi sembrano solo tre
Non servono righe per V1,V2,V3,NP basta solo v,n,p


Codice: Seleziona tutto
Option Explicit
Sub VPMaiuscole()
Dim X As Range
Sheets("archivio").Activate
   Application.EnableEvents = False
   Application.Calculation = xlCalculationManual
   For Each X In Range("G13:O500")
      X.Value = UCase(X.Value)
   Next
   Application.EnableEvents = True
   Application.Calculation = xlCalculationAutomatic
   MsgBox "Fatto"
End Sub
Raffaele53
Utente Junior
 
Post: 63
Iscritto il: 03/10/24 13:06

Re: Mettere tutto MAIUSCOLO un range di celle

Postdi raimea » 19/04/25 20:32

ciao

tutto ok

ha ragione raffaele53
Vedendo la foto allegata, le lettere mi sembrano solo tre
Non servono righe per V1,V2,V3,NP basta solo v,n,p


errore mio nell' interpretazione del codice:
io pensavo avrei dovuto compilare una riga x ogni casistica/codice

----------------
x correttezza rispondo anche ad Antony47 :

Ma e' una operazione che devi fare spesso o devi convertire (una sola volta) il contenuto del foglio?

il foglio viene aggiornato continuamente
compilando l' ultima riga disponibile libera,
quindi ogni volta si deve verificare e portare in maiuscolo il contenuto.

-le celle del range NON contengono formule
-SI, da G13 a O500 ci sono celle vuote

Se fai Trova "v" e Sostituisci con "V", e poi ripeti per "p" e "n" funziona o no?

si funziona

faccio prove
ma x ora tutto ok

grazie ad entrambi

ciao
S.O. win11, Excell 2021
Avatar utente
raimea
Utente Senior
 
Post: 1456
Iscritto il: 11/02/10 07:33
Località: lago

Re: Mettere tutto MAIUSCOLO un range di celle

Postdi Raffaele53 » 19/04/25 20:45

>>>compilando l' ultima riga disponibile libera, quindi ogni volta si deve verificare e portare in maiuscolo il contenuto.
Allora sono già tutte maiuscole nel foglio tranne l'ultima riga, in questo caso puoi semplificare il codice facendogli fare solo le ultime 4/5 righe.

Codice: Seleziona tutto
Option Explicit
Sub VPMaiuscole3()
Dim X As Range, Ur As Long
Sheets("archivio").Activate
Ur = Range("G" & Rows.Count).End(xlUp).Row
   For Each X In Range("G" & Ur - 5 & ":O" & Ur)
      X.Value = UCase(X.Value)
   Next
   MsgBox "Fatto"
End Sub
Raffaele53
Utente Junior
 
Post: 63
Iscritto il: 03/10/24 13:06

Re: Mettere tutto MAIUSCOLO un range di celle

Postdi raimea » 19/04/25 20:52

Allora sono già tutte maiuscole nel foglio tranne l'ultima riga, in questo caso puoi semplificare il codice facendogli fare solo le ultime 4/5 righe.


SI

ottimo , tutto ok

ancora grazie
ciao
S.O. win11, Excell 2021
Avatar utente
raimea
Utente Senior
 
Post: 1456
Iscritto il: 11/02/10 07:33
Località: lago


Torna a Applicazioni Office Windows


Topic correlati a "Mettere tutto MAIUSCOLO un range di celle":


Chi c’è in linea

Visitano il forum: Nessuno e 26 ospiti

cron