Vídeo recomendado
https://youtu.be/diWPPPhW-9E

Selecionar toda linha ao clicar em uma célula

Fórum para dúvidas sobre os fundamentos da linguagem de programação Visual Basic no contexto do VBA
fabianolordelo
Colaborador
Colaborador
Mensagens: 12
Registrado em: Ter Jun 24, 2014 9:03 am

Selecionar toda linha ao clicar em uma célula

Mensagem por fabianolordelo »

Boa tarde,

É possível selecionar toda linha ao clicar em um célula ?


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Marciel Silva
Colaborador
Colaborador
Mensagens: 98
Registrado em: Qui Nov 01, 2012 2:37 pm

Re: Selecionar toda linha ao clicar em uma célula

Mensagem por Marciel Silva »

Fabiano,

Boa tarde!

Copie esse código e cole na plan que vai usar:

Código: Selecionar todos

Dim LinhaSelecAnterior As Range

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    Select Case ActiveCell.Row

        Case 1, 2
            'Coloque neste ‘case’ as linhas que não devem ser
            'destacadas na seleção
            'Exemplo: Linhas de título; Aqui eu defini como as linhas 1 e 2

            'Remove cor de fundo da linha selecionada anteriormente
            Select Case LinhaSelecAnterior.Row

                Case Is <> 1, 2

                    Rows(LinhaSelecAnterior.Row).Interior.ColorIndex = 0

                End Select

        Case Else

            'Altera a cor de fundo da linha selecionada
            Rows(ActiveCell.Row).Interior.ColorIndex = 15

            'Remove a cor de fundo quando a linha perde a seleção
            If Not LinhaSelecAnterior Is Nothing Then

                'Verifica se a linha atual já estava selecionada
                'neste momento, caso seja uma nova linha selecionada
                'remove a cor de fundo.
                If ActiveCell.Row <> LinhaSelecAnterior.Row Then

                    Rows(LinhaSelecAnterior.Row).Interior.ColorIndex = 0

                End If

            End If

            'Inicializa a variavel informando a seleção atual
            'que será utilizada no inicio do procedimento
            'como sendo a seleção anterior
            Set LinhaSelecAnterior = ActiveCell

    End Select

End Sub
Obs:- Esse código tem uma case 1 e 2 para mostrar que as linhas 1 e 2 não é selecionado.

Veja se ajuda!

Se ajudar, clique na mãozinha!

Att,


fabianolordelo
Colaborador
Colaborador
Mensagens: 12
Registrado em: Ter Jun 24, 2014 9:03 am

Re: Selecionar toda linha ao clicar em uma célula

Mensagem por fabianolordelo »

Marciel Silva escreveu:Fabiano,

Boa tarde!

Copie esse código e cole na plan que vai usar:

Código: Selecionar todos

Dim LinhaSelecAnterior As Range

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    Select Case ActiveCell.Row

        Case 1, 2
            'Coloque neste ‘case’ as linhas que não devem ser
            'destacadas na seleção
            'Exemplo: Linhas de título; Aqui eu defini como as linhas 1 e 2

            'Remove cor de fundo da linha selecionada anteriormente
            Select Case LinhaSelecAnterior.Row

                Case Is <> 1, 2

                    Rows(LinhaSelecAnterior.Row).Interior.ColorIndex = 0

                End Select

        Case Else

            'Altera a cor de fundo da linha selecionada
            Rows(ActiveCell.Row).Interior.ColorIndex = 15

            'Remove a cor de fundo quando a linha perde a seleção
            If Not LinhaSelecAnterior Is Nothing Then

                'Verifica se a linha atual já estava selecionada
                'neste momento, caso seja uma nova linha selecionada
                'remove a cor de fundo.
                If ActiveCell.Row <> LinhaSelecAnterior.Row Then

                    Rows(LinhaSelecAnterior.Row).Interior.ColorIndex = 0

                End If

            End If

            'Inicializa a variavel informando a seleção atual
            'que será utilizada no inicio do procedimento
            'como sendo a seleção anterior
            Set LinhaSelecAnterior = ActiveCell

    End Select

End Sub
Obs:- Esse código tem uma case 1 e 2 para mostrar que as linhas 1 e 2 não é selecionado.

Veja se ajuda!

Se ajudar, clique na mãozinha!

Att,

Muito obrigado Marciel pela sua atenção mas eu consegui esse código que achei mais viável:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

On Error Resume Next
y = Selection.Column
x = Selection.Row

If Selection.Rows.Count + Selection.Columns.Count > 2 Then
Exit Sub
Else
Selection.EntireRow.Select
Cells(x, y).Activate
End If

End Sub


Agora gostaria que esse código funcionasse somente enquanto eu estiver com um botão "ToggleButton" pressionado. E voltasse ao normal quando ele não estiver pressionado. Pode me ajudar ?


Avatar do usuário
Rafael Monteiro
Consultor
Consultor
Mensagens: 277
Registrado em: Seg Nov 28, 2011 8:27 am
Localização: Sorocaba - SP
Contato:

Re: Selecionar toda linha ao clicar em uma célula

Mensagem por Rafael Monteiro »

Agora gostaria que esse código funcionasse somente enquanto eu estiver com um botão "ToggleButton" pressionado. E voltasse ao normal quando ele não estiver pressionado. Pode me ajudar ?
A questão foi respondido em outro tópico que você abriu.

viewtopic.php?f=20&t=3305#.VABitzJdXX4


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Responder