Ir ao conteúdo

Posts recomendados

Postado

Boa tarde pessoal,

 

Estou fazendo um programa no excel e estou precisando que o programa salte um número de colunas (mas continue na mesma linha) de acordo com o valor da célula. Por exemplo:

 

Tenho a célula A2 da minha planilha onde consigo setar valores. Quando eu setar o valor 2 nessa célula, quero que ela pule uma quantidade X de células para a direita e pinte o interior dessa célula onde ela parou. Tentei fazer com offset, mas não funcionou d emaneira alguma. Alguém consegue me ajudar?

 

asdasdasd.png

Postado

@Basole Simm!! É exatamente isso que eu preciso! Só que com algumas modificações hehe

 

Eu fiz esse programa: 

Private Sub Worksheet_Change(ByVal Target As Range)
If Range("B2").Value = 2 Then
Range("B2").Offset(, Range("Y7").Value).Interior.ColorIndex = 3
End If
If Range("B2").Value = 1 Then
Range("B2").Offset(, Range("Z7").Value).Interior.ColorIndex = 3
End If
If Range("B2").Value =  Then
Range("B2").Offset(, Range("X7").Value).Interior.ColorIndex = 3
End If
End Sub

 

Funcionou, só que não ficou robusto como o seu! Essa planilha que estou fazendo é um placar de jogo, daí tenho uma fórmula que selecionará quantas partidas quem fez a pontuação 0, 1 ou 2 ficará de fora dependendo do número de pessoas que tem no jogo. Estou tentando entender seu código para conseguir usar ele, para que serve o target.count?

 

Muitíssimo obrigada de qualquer maneira!!

Postado

Target é a referencia a ActiveCell ou seja a celula selecionada.

Target.Count conta quantas celulas foram selecionadas,. no caso do meu codigo if Target.Count > 1 Exit sub, é um tratamento de erro, pois se voce selecionar mais de uma celula a macro pára, caso contrario gerará um error, pois o codigo esta referenciando somente o valor de 1 (uma) Target. 

 

 

 

Dei uma reformulada no seu codigo :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub

If Target.Address = "$B$2" Then

 Select Case Target.Value
 
    Case 2
        Cells(Target.Row, "Y").Interior.ColorIndex = 3
        
    Case 1
       Cells(Target.Row, "Z").Interior.ColorIndex = 3
       
   Case 
       Cells(Target.Row, "X").Interior.ColorIndex = 3

End Select

End If

End Sub

 

Visitante
Este tópico está impedido de receber novas respostas.

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...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!