Ir ao conteúdo

Posts recomendados

Postado

Boa tarde, amigos
Estou criando uma planilha de mapeamento de dados aqui no meus serviço, no quesito de fórmulas eu consegui me virar porém queria bolar alguma maneira ou algum macro que pinta ou destaca a célula se determinada condição for aceita.
De certa forma eu consegui resolver meio caminho, minha dúvida é: é possível ter um valor que muda variando numa macro?

Ela irá funcionar assim:
Em determinada célula da planilha 2 terá um valor de endereço, por exemplo " em A2 da planilha 2 tem escrito C20", ou seja, Faz referencia da planilha 1, a macro fará a leitura da célula e irá agir sobre o endereço indicado.

Sempre que clicar em um botão, a macro irá em A2 pegar a célula que ta escrita e agir sobre a mesma.


 

Postado

 

Em A2 da planilha ativa coloque C20.

 

Rode o código abaixo e o texto será inserido em C20 da Plan1.

 

Sub InsereEmCélulaIndicadaEmA2()
 Sheets("Plan1").Range([A2]).Value = "PTralha nem pra porteiro de galinheiro, pois irá roubar as minhas galinhas"
End Sub

 

Postado

Não é bem o que eu queria ainda, o código apenas insere uma determinada palavra. vou tentar explicar melhor.
Tenho valores de 1 a 240 referenciando 240 celulas.
1 - c10
2 - c11

3 - c13

4 - c14

 

Essa tabela está armazenada na planilha 2 como um banco de dados, em outra planilha tem uma contagem de 1 a 240 e na planilha principal tem os dados que eu quero que sejam destacados.
Quando o valor for 2, quero que na planilha principal a celula c11 fique destacada.
Pensei em fazer com condições if else, porém é muitro trabalhoso fazer 240 condições.
A minha ideia era que a macro tivesse uma variável que se alterasse assim como a célula se altera, quando o valor for 3 a macro ira mudar a cor de c13 na planilha principal.

Postado

Disponibilize uma amostra do seu arquivo Excel com as tabelas citadas e na própria planilha dê 3 ou 4 exemplos e informe qual o resultado desejado para cada exemplo.

Postado

Coloquei as informações na Planilha1

Mapeamento FTTH.xlsx

adicionado 9 minutos depois

Ok, consegui algum progresso

 

Sub teste()
Dim var
   var = Range("f2").Value
    Range(var).Select
     With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .Color = 65535
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
End Sub

 

Não tenho certeza ainda se irá dar certo, só estou em dúvidas em como retornar a cor antiga da célula alterada

 

Postado
1 hora atrás, Georgegms disse:

No caso, a célua c14 da planilha MAPA (Mapa) deverá se destacar em amarelo

O código abaixo faz isso.

 

Quando for slot 1 porta 1...

Essa é uma nova demanda? Se sim, em qual célula de qual planilha vamos verificar o número do slot e o número da porta?

 

... o valor será 1 ...

Qual célula de qual planilha terá o valor 1 ?

 

 ... então a célula c10 deverá acender.

A célula C10 de qual planilha? Não sei em Excel o que significa "acender" uma célula. 🔥  :confused:

 

... só estou em dúvidas em como retornar a cor antiga da célula alterada

Você pode copiar a cor de outra célula ou utilizar o mesmo critério que você utilizou para pintá-la antes de pintar de amarelo.

Sub PintaCélula()
 Sheets("Mapa").Range(Sheets("Planilha1").[F2]).Interior.Color = 65535
End Sub

 

Postado

Após muito quebrar a cabeça eu consegui aqui

 

Sub teste()
Dim var
   var = Range("AJ40").Value
   
 C = Range(var).Interior.Color
 R = C And 255
 G = C \ 256 And 255
 B = C \ 256 ^ 2 And 255

    For x = 1 To 10 'total de piscadas
            pausa = 0.5 'duração da pausa entre as piscadas em segundos
            inicio = Timer ' hora inicial
            
            Do While Timer < inicio + pausa
              DoEvents
            Loop
                     
                'Formata Cor do Interior da celula
                If Range(var).Interior.ColorIndex = xlNone Then
                    Range(var).Interior.ColorIndex = 6 'pinta célula de vermelho
                Else
                 Range(var).Interior.ColorIndex = xlNone 'Nenhuma Cor
                End If
        Next x
    
                Range(var).Interior.ColorIndex = xlNone 'Devolve a cor original
                 Range(var).Interior.Color = RGB(R, G, B)
                 
                 End Sub

 

Agradeço muito a sua intenção me ajudar, peço desculpas pelas informações confusas, sou novo em VBA.
De qualquer forma, Muito obrigado mesmo !😁
 

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...