Ir ao conteúdo

Posts recomendados

Postado

Olá Pessoal, Eu arranho em vba no excel, preciso da ajuda de vocês.

 

Tenho um código construído em que ele faz o seguinte: Copia um determinado valor e em outra sheets cola como valores já aplicando subtração (famoso Ctrl+Alt+V); acontece que eu fiz dezenas e dezenas de pesquisas e não encontrei nada que pudesse me dá uma luz, ou seja, eu queria que a macro verificasse comparando um número contra o outro e quando identificar que o valor é igual não rodasse a macro a baixo.

 

Exemplo: Na Guia da PlanX tem um valor na célula A2 de 1.900.000 e na PlanY o valor também se repete que é 1.900.000, nesse exemplo eu preciso que a macro rodasse apenas quando o valor fosse diferente, e quando o valor for igual, aparecesse uma mensagem que "o valor é igual e não é possível executar tal operação".

Agradeço antecipadamente quem puder me ajudar.

 

Sub RetirarDIF()

 

Application.ScreenUpdating = False

    Plan1.Select

    If ActiveSheet.FilterMode Then

        ActiveSheet.ShowAllData     ' Limpa todos os filtros da planilha

    End If

    

    Selection.Sort Key1:=Range("C1"), Order1:=xlDescending, Header:=xlGuess, _

    OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _

    DataOption1:=xlSortNormal

   

    Plan1.Range("B1").AutoFilter _

     Field:=2, _

     Criteria1:="AGA", _

    VisibleDropDown:=True

    

    Plan19.Select

    Range("AB3").Copy

    Plan1.Select

    Range("C3").Offset(1, 0).Activate

     Do Until Rows(ActiveCell.Row).Hidden = False

        ActiveCell.Offset(1, 0).Activate

     Loop

        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlSubtract, _

            SkipBlanks:=False, Transpose:=False

        Application.CutCopyMode = False

    

    If ActiveSheet.FilterMode Then

        ActiveSheet.ShowAllData     ' Limpa todos os filtros da planilha

    End If

 

End Sub

Postado

@Scofieldgyn Tente usar a função Find, p.ex

 

Sub Macro()
    Dim X, Y As Worksheet
    
    Set X = Sheets("PlanX")
    Set Y = Sheets("PlanY")
    
    If Y.[A:A].Find(What:=X.[A2], LookAt:=xlWhole) Is Nothing Then
        MsgBox "Não existe em PlanY"
    Else
        MsgBox "Já existe em PlanY"
    End If
End Sub

 

  • Curtir 1
Postado

@Midori Muito obrigado pela ajuda, apenas mais uma dúvida,

 

fiz uma pequena modificação na sua macro, agora o problema é que tipo, tem as casas decimais e eu queria que não rodasse a macro, pois essa diferença impacta ao subir o arquivo para a ferramenta BI por causa do arrendondamento. 

 

       Plan  Y                   Plan X

1.900.000,00104  =  1.900.000,00

 

Sub Macro()
    Dim X, Y As Worksheet
    
    Set X = Plan7
    Set Y = Plan19
    
    If Y.Range("Y3") <> X.Range("M3") Then
   "Minha macro"

 
    Else
            MsgBox "Provavelmente você já executou essa macro, Não existe diferença"
    End If
    
End Sub

image.png

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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!