Página 1 de 1

Ajuda

Enviado: 24 Out 2015 às 19:00
por josepacheco
Boa noite. Como corrigir este código:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Range("C6").Value = Range("A" & Right(Selection.Address, 2))
End Sub",
ele lê apenas os valores da coluna A, A1=1; A2=2, A3=3, A4=4, A5=5, aparecendo na célula "C6", os da coluna B, B1=6, B2=7, B3=8, B4=9, B5=10, ela não lê, e sim, continua lendo os da coluna A, assim contenha valores ou letras. Peguei este código na net. Não sei programar em VBA Excel. Ele fica limitado apenas à coluna A. Como remodelar esse código para que leia as coluna e linha habilitadas? Exemplo: A1:B5 ou A1:A10. Mas, poderá ser mudado com o acréscimo ou não de linhas ou colunas. Poderiam me ajudar?

Re: Ajuda

Enviado: 24 Out 2015 às 22:14
por alexandrevba
Boa noite!!!

Por favor leia as regras do fórum, o seu titulo não é sugestivo, na próxima postagem favor usar um post mais adequado e explicativo de acordo com a dúvida.

Quanto a sua dúvida, tente algo assim...

Não testado!!!
Código: Selecionar todos
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim rng1 As Range, rng2 As Range
On Error GoTo MyError
    Set rng1 = Range("A1:A10")
    Set rng2 = Range("B1:B10")
    
    If Application.Intersect(Target, rng1) Is Nothing Then
        Range("C6").Value = Target.Value
        If Application.Intersect(Target, rng2) Is Nothing Then
            Range("C6").Value = Target.Value
        End If
    End If
MyError:
Err.Clear
End Sub
Att

Ajuda

Enviado: 25 Out 2015 às 09:44
por josepacheco
AlexandreVBA, obrigado pelo código desenvolvido. Vou testar.

Ajuda

Enviado: 25 Out 2015 às 10:17
por josepacheco
AlexandreVBA, testei o código, ele funcionou apenas com o intervalo B1:B10. Quando clico no intervalo A1:A10 o número já postado na C6 não se modifica. Mas, quando clico fora do intervalo "A1:A10 e B1B10" ele funciona "apaga", "sensacional". Como fazer que ele reconheça o intervalo A1:A10 e B1:B10. Mais uma vez, Muito grato.

Re: Ajuda

Enviado: 25 Out 2015 às 11:24
por alexandrevba
Bom dia!!

Eu não sei se é isso que vc deseja, eu não consigo testar, faça seus testes!
Código: Selecionar todos
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim rng1 As Range, rng2 As Range
On Error GoTo MyError
    Set rng1 = Range("A1:B10")
    
    If Application.Intersect(Target, rng1) Is Nothing Then
        Range("C6").Value = Target.Value
    End If
MyError:
Err.Clear
End Sub
Att

Re: Ajuda

Enviado: 25 Out 2015 às 12:55
por josepacheco
AlexandreVBA, fiz um segundo teste modificando-o, ele funcionou. Fico muito agradecido pela ajuda. Coloquei este código em um bingo, algo amador.