none
Formatar varias celulas de uma mesma linha RRS feed

  • Pergunta

  • Olá a todos.
    Primeiramente, eu pesquisei aqui sobre o assunto, mas como cada dúvida é única, não encontrei algo que pudesse me ajudar.

    Eu extraio uma planilha do sistema que trabalho que não tem padrão de linhas. Às vezes ela contem 100 linhas e às vezes, 2000.
    Somente as colunas são padrão porque eu apago as que não utilizo, então ela fica sempre com 5 colunas (até a E).

    O que eu gostaria é:

    • Na coluna F (vazia) escrever as siglas "vc"; "ac"; "am"; "vr" e "c", que representam "verde claro"; "azul claro"; "amarelo"; "vermelho" e "verde escuro", respectivamente;
    • Com isso as celulas da linha correspondentes fiquem preenchidas com a cor indicada.
    • Por exemplo: Na F2 eu coloco "am" e as celulas A2,B2,C2,D2,E2 (A2:E2) fiquem com preenchimento em amarelo. Ou então, F100 eu coloco "c" e as celulas A100,B100,C100,D100,E100 (A100:E100) fiquem com preenchimento em amarelo.
    • Não sei como funciona ao certo, mas esta macro teria que ficar no desk para eu poder utilizar em outras planilhas que abro todos os dias. Então ela não pode ficar "amarrada" a um único arquivo.

    Eu não entendo nada de VBA, por isso recorri até vocês.
    Espero ter sido suficientemente claro e agradeço toda e qualquer ajuda que apareça. 

    OBS.: Tentei colocar uma imagem, mas como sou novo e sem verificação, não consegui.

    sexta-feira, 19 de abril de 2019 19:52

Todas as Respostas

  • Boa noite Rodrigo.

    Para o seu caso o mais indicado é salvar uma planilha com a macro desejada em formato de suplemento (xlam). Você pode carregar este suplemento sempre que precisar ou configurar o Excel para carregá-lo automaticamente sempre.

    Na macro você tem duas opções, ou realiza a formatação diretamente, ou faz a configuração de Formatação Condicional. Um exemplo para a primeira opção é o seguinte:

    Option Explicit
    
    Sub Formatar()
    
    Dim Lin0 As Long, Lin As Long, Col As Long, i As Long
    
    Application.ScreenUpdating = False
    Col = 6
    Lin0 = 2
    Lin = ActiveSheet.Cells(Rows.Count, Col).End(xlUp).Row    'Última linha preenchida
    
    
    For i = Lin0 To Lin
        With ActiveSheet.Range(Cells(i, 1), Cells(i, Col - 1))
            Select Case ActiveSheet.Cells(i, Col).Value2
                Case "vc"
                    .Interior.ColorIndex = 4
                Case "ac"
                    .Interior.ColorIndex = 5
                Case "am"
                    .Interior.ColorIndex = 6
                Case "vr"
                    .Interior.ColorIndex = 3
                Case "c"
                    .Interior.ColorIndex = 10
            End Select
        End With
    Next
    
    Application.ScreenUpdating = True
    End Sub

    Os índices de cores padrão variam de 1 a 56, mas você pode substituí-lo por um código RGB, se preferir.

    Obs.: Considere, porém, que o código pode não ser muito eficiente para dimensões muito elevadas.


    Filipe Magno

    segunda-feira, 22 de abril de 2019 00:57