Página 1 de 1

Copiei um código, está com erro e não sei como arrumar...

Enviado: 08 Ago 2019 às 15:31
por Thaynafont
Boa tarde, pessoal.

Copiei um código de um site para, na coluna "DATA PGTO.", retornar a data atual sem alterar a data de outras células da mesma coluna preenchida nos dias anteriores (não achei funções que façam isso sem alterar as outras células) quando digito o valor em outra coluna, que neste caso seria a "VALOR PAGO".

O problema é que, ao digitar na coluna "ENDEREÇO" automaticamente é alterada a informação que está na coluna "VALOR ALUGUEL" para uma numeração qualquer, ao digitar na coluna "PROPRIETÁRIO" a coluna "STATUS DE PGTO." é alterada na célula correspondente e assim sucessivamente....

Não entendo nada de VBA, já tentei me arriscar e mexer mas as coisas só pioraram hahaha'

Coloquei o arquivo em anexo.

Re: Copiei um código, está com erro e não sei como arrumar..

Enviado: 08 Ago 2019 às 15:53
por babdallas
Tente isso
Código: Selecionar todos
'Guardar o intervalo anterior
Dim lTarget As Range

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Row >= 17 And Target.Row <= 2000 Then
    
    If Not lTarget Is Nothing Then
        lTarget.EntireRow.Interior.ColorIndex = 0
    End If
    
        Target.EntireRow.Interior.Color = 10332027
    
    Set lTarget = Target
    
    End If
End Sub

Private Sub Worksheet_Change(ByVal Alvo As Range)
  Dim limite_maximo As Integer
 limite_maximo = 1000 ' altere aqui para limitar a última linha
  If Alvo.Cells.Count > 1 Or IsEmpty(Alvo) Then Exit Sub
    ' faz nada se mais de uma célula modificada ou se deu delete
  If Alvo.Column = 6 And Alvo.Row >= 17 And Alvo.Row <= limite_maximo Then
    ' o if acima garante que a célula modificada está dentro I17:I2000
    ' desliga captura do evento change1
    
  Application.EnableEvents = False
    ' muda a célula C da linha correspondente
  Alvo.Offset(0, 3).Value = Date   ' Registra a data
    ' religa a captura de eventos
  Application.EnableEvents = True
  End If
End Sub