Notifications
Clear all

Deixar todos os caracteres em caixa alta

7 Posts
2 Usuários
0 Reactions
7,261 Visualizações
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Olá pessoal,

Como faz para deixar todas células da plan em caixa alta? Estou usando o 2007 e num achei lá no formatar fontes não...

Creio que seja somente por macros, achei esse código na net, mas to apanhando pra rodar ele aqui,

Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
Target.Value = UCase(Target.Value)
End Sub

Abraços.

 
Postado : 21/09/2009 11:50 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Pessoal,

Achei no link abaixo, um código de autoria do Adilson Soledade, que serve pra esse tópico.

_ http://info.abril.com.br/forum/viewtopic.php?f=101&t=1067&start=0&st=0&sk=t&sd=a

Sub Converter()
Dim rgConverter As Range
Dim wf As WorksheetFunction
Dim ws As Worksheet

Set wf = Application.WorksheetFunction
Set ws = ActiveSheet
Set rgConverter = ws.[A1]

For Each Célula In rgConverter
If wf.IsText(Célula) Then Célula.Value = UCase(Célula.Value)
Next Célula

End Sub

Abraços.

 
Postado : 21/09/2009 12:13 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Caso ajude mais pra frente vc pode usar as funções
=MAIÚSCULA()
=MINÚSCULA()
=PRI.MAIÚSCULA()

Ex:
=MAIÚSCULA(A1) depois é so arrastar, copiar e colar especial/valores na coluna antiga!!!

 
Postado : 21/09/2009 7:50 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Boa tarde gente. Sei que o tópico é velho, mas duas perguintinhas:

Ao tentar usar a função MAIUSCULA como sugerido pelo Leo, retorno um erro de referência circular...

Tentei colocar a fórmula na validação do campo, mas este campo não entendeu a fórmula, acho.

Ou seja, como se usa a função?

A mais, achei interessante a solução da programação, mas onde eu insiro estas linhas...

Um abraço...

 
Postado : 18/11/2009 11:33 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Cara,

Dê ALT + F11. Vá lá no "menu INSERIR" e escolha a opção MÓDULO.

Copie e cole, exatamente dessa forma o código abaixo:

Sub Converter()
Dim rgConverter As Range
Dim wf As WorksheetFunction
Dim ws As Worksheet

Set wf = Application.WorksheetFunction
Set ws = ActiveSheet
Set rgConverter = ws.[A1]

For Each Célula In rgConverter
If wf.IsText(Célula) Then Célula.Value = UCase(Célula.Value)
Next Célula

End Sub

--------------------

No campo [A1] vc escolhe o intervalo que ficará com caixa alta.

Volte na planilha e execute a macro.

Falows.

 
Postado : 18/11/2009 1:28 pm
(@leoslz)
Posts: 1
New Member
 

Pow muito bom seu tutorial, mas me desculpe a ignorância, mas quando eu voltar para a planilha que menu ou opção uso para executar o macro?

 
Postado : 02/04/2014 9:17 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Para executar a Macro você pode adicionar um Botão na aba e associar a macro, ou teclar "ALT+F8" e na caixa que abrir selecionar a macro e depois clicar em executar.
Editando: Você tambem pode definir teclas de Teclas de Atalho para a Macro, para isto, conforme os passos acima, na caixa que abrir, selecione a Macro que deseja e depois clique em Opções e poderá definir um conjunto de teclas de atalho, de OK, feche a caixa e agora é só utilizar as teclas que definiu e a rotina será executada.

Aproveito para deixar uma adaptação para Range dinamico:

Sub ConverterEmMaiusculas()
    Dim rgConverter As Range
    Dim wf As WorksheetFunction

    Set wf = Application.WorksheetFunction
    Set ws = ActiveSheet

        Dim Registro, myRange
        'Conta qde de registro
        Registro = Worksheets("Plan1").UsedRange.Rows.Count - 1
       
        If Registro > 1 Then
            'Defini o Range a ser convertido
            'Set rgConverter = ws.[A1:A50]'Instrução se for Range definido
            Set rgConverter = ws.Range("A2:A" & Trim(Str(ws.Range("A60000").End(xlUp).Row))) 'Range Dinamico
               
            For Each Célula In rgConverter
            
                If wf.IsText(Célula) Then Célula.Value = UCase(Célula.Value)
            
            Next Célula

        Else
            Exit Sub
        
        End If
       
End Sub

[]s

 
Postado : 02/04/2014 9:56 am