Jump to content

Código vba que seleciona a coluna e a linha onde está a célula activa


Recommended Posts

Olá o código abaixo faz o seguinte seleciona a linha e a coluna onde esta a célula activa. Agora o meu problema é que quando abro o de novo o livro tenho a linha e a coluna pintada o que posso fazer para evitar isso.Obrigado

Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)

    Static rr
    Static cc

    If cc <> "" Then
        With Columns(cc).Interior
            .ColorIndex = xlNone
        End With
        With Rows(rr).Interior
            .ColorIndex = xlNone
        End With
    End If

    r = Selection.Row
    c = Selection.Column
    rr = r
    cc = c

    With Columns(c).Interior
        .ColorIndex = 6
        .Pattern = xlSolid
    
    
    
    End With
    With Rows(r).Interior
        .ColorIndex = 6
        .Pattern = xlSolid
    End With
End Sub
Link to comment
Share on other sites

Veja se é isso que você quer:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Rows.Interior.ColorIndex = xlNone

Rows(ActiveCell.Row).Interior.ColorIndex = 6

Columns(ActiveCell.Column).Interior.ColorIndex = 6

ActiveCell.Interior.ColorIndex = xlNone

End Sub

B)É isso mesmo obrigado 🙂

Link to comment
Share on other sites

Conforme o Ajuda do VBA:

Application.Método Undo:

Cancela a última ação na interface do usuário.

Sintaxe:

expressão.Undo

expressão  Uma variável que representa um objeto Application.

Comentários:

Este método desfaz somente a última ação efetuada pelo usuário antes da execução da macro, e precisa ser a primeira linha da macro. Ele não pode ser usado para desfazer comandos do Visual Basic.

Exemplo:

Este exemplo cancela a última ação na interface do usuário. O exemplo precisa ser a primeira linha em uma macro.

Visual Basic for Applications

Application.Undo

Ou este exemplo prático que não permite a inserção de números negativos na célula A1, retornando o valor original:

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)

Application.ScreenUpdating = False

Application.EnableEvents = False

Application.EnableCancelKey = xlDisabled

If Plan1.Range("A1").Value < 0 Then

  Application.Undo

  MsgBox "Erro!!!"

End If

Application.EnableEvents = True

Application.ScreenUpdating = True

End Sub

Link to comment
Share on other sites

então não há solução se usar este código

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Rows.Interior.ColorIndex = xlNone
Rows(ActiveCell.Row).Interior.ColorIndex = 6
Columns(ActiveCell.Column).Interior.ColorIndex = 6
ActiveCell.Interior.ColorIndex = xlNone
End Sub

nunca vou poder usar essa função na folha de calculo?

Link to comment
Share on other sites

então não há solução se usar este código

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Rows.Interior.ColorIndex = xlNone
Rows(ActiveCell.Row).Interior.ColorIndex = 6
Columns(ActiveCell.Column).Interior.ColorIndex = 6
ActiveCell.Interior.ColorIndex = xlNone
End Sub

nunca vou poder usar essa função na folha de calculo?

Porque não?

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.