Várias Condições em diferentes colunas  [Resolvido]

Visual Basic for Aplication e macros no Excel.
Regras do fórum
Sua dúvida foi respondida? Marque como RESOLVIDO em seus tópicos, usando o botão com marca verde. Imagem

Várias Condições em diferentes colunas

Mensagempor VictorJF » Sex Mai 22, 2020 11:25 am

Bom dia a todos do Fórum,

Sou um iniciante em VBA, então já começo pedindo desculpas por qualquer erro.

Estou precisando escrever algumas regras (ao todo 35), mas praticamente a maioria segue o propósito das demais e das que estou enviando como exemplo:

Obs.: a planilha tem mais de 200MB, passa de 200Mil linhas e tem 134 colunas. Já tentei fazer com fórmulas (que para mim seria mais fácil), mas a planilha travou.

Preciso que o código retorne um Texto, dependendo das condições em algumas colunas específicas, que mudam de regra para regra.

Regra 2, por exemplo:

Se a coluna E for igual a "XML" e a coluna L for Igual a 39 ou 40 o texto na coluna 136, será: "GLOSAR - Prestador solicitante não pode ser Pessoa Jurídica."

Até ai eu acho que consegui fazer...

Mas minha dificuldade está quando as condições aumentam para cada coluna.

Na Regra 3, por exemplo, eu chego a ter 8 condições em apenas uma coluna, sendo que tenho ao todo 4 colunas com condições variadas.

Segue em anexo um exemplo, na sheet "Regras" constam todas as condições para as regras.

Desde já agradeço a ajuda de todos.

Abraço,

Victor Carvalho
Você não está autorizado a ver ou baixar esse anexo.
VictorJF
Membro
Membro
 
Mensagens: 2
Registrado em: Sex Mai 22, 2020 9:29 am
Has thanked: 1 time
Have thanks: 0 time

{ SO_SELECT }

Testei e apareceu a mensagem da regra 3  [Resolvido]

Mensagempor Anderson » Sex Mai 22, 2020 4:59 pm

Veja a imagem que comprova.
Anexei também o arquivo do Excel.

Código: Selecionar todos
Sub previa()

Plan1.Select

'Regra 1 - Prestador solicitante não pode ser Pessoa Jurídica.

linha = 2

Do Until Cells(linha, 1) = ""

If Cells(linha, 5) = "xml " And Cells(linha, 12) <> "09" And Cells(linha, 12) <> "10" And Cells(linha, 12) <> "11" And Cells(linha, 12) <> "14" And Cells(linha, 12) <> "15" And Cells(linha, 12) <> "16" And Cells(linha, 12) <> "17" And Cells(linha, 12) <> "18" And Cells(linha, 12) <> "19" And Cells(linha, 12) <> "30" And Cells(linha, 12) <> "31" And Cells(linha, 12) <> "35" And Cells(linha, 12) <> "37" And Cells(linha, 12) <> "41" And Cells(linha, 12) <> "42" And Cells(linha, 12) <> "44" And Cells(linha, 12) <> "45" And Cells(linha, 12) <> "46" And Cells(linha, 12) <> "48" And Cells(linha, 12) <> "60" And Cells(linha, 12) <> "71" And Cells(linha, 12) <> "99" Then

Cells(linha, 135) = "Prestador solicitante não pode ser Pessoa Jurídica."

Else

Cells(linha, 135) = ""

End If

'linha = linha + 1

'Loop

'Regra 2 - GLOSAR - Prestador solicitante não pode ser Pessoa Jurídica.

'linha = 2

'Do Until Cells(linha, 1) = ""

If Cells(linha, 5) = "xml " And Cells(linha, 12) = "39" Or Cells(linha, 12) = "40" Then

Cells(linha, 136) = "GLOSAR - Prestador solicitante não pode ser Pessoa Jurídica."

Else

Cells(linha, 136) = ""

End If

'linha = linha + 1

'Loop


'Regra 3 - Cooperado não possui especialidade de Nutrologo - GLOSAR

'linha = 2

'Do Until Cells(linha, 1) = ""


Cells(linha, 137) = ""
If Cells(linha, 5) = "xml " Then
'Cells(linha, 137) = ""
If Cells(linha, 16) = "20201109" Or Cells(linha, 16) = "20201117" Or Cells(linha, 16) = "20201125" Then
'Cells(linha, 137) = ""
If Cells(linha, 9) = "00024666" Or Cells(linha, 9) = "00021480" Or Cells(linha, 9) = "00021477" Or Cells(linha, 9) = "00015228" Then
'Cells(linha, 137) = ""
If Cells(linha, 20) = "0006" Or Cells(linha, 20) = "0037" Or Cells(linha, 20) = "0157" Or Cells(linha, 20) = "0189" Or Cells(linha, 20) = "0241" Or Cells(linha, 20) = "0258" Or Cells(linha, 20) = "0865" Or Cells(linha, 20) = "0994" Then

Cells(linha, 137) = "Cooperado não possui especialidade de Nutrologo - GLOSAR"
End If
End If
End If
End If

'linha = linha + 1

'Loop

'Regra 4 - Fornecedor (Grupo 38) não pode receber procedimento ou taxa

'linha = 2

'Do Until Cells(linha, 1) = ""

If Cells(linha, 5) = "xml " And Cells(linha, 10) = "38" And Cells(linha, 15) <> "12" And Cells(linha, 15) <> "13" Then

Cells(linha, 138) = "Fornecedor (Grupo 38) não pode receber procedimento ou taxa"

Else

Cells(linha, 138) = ""

End If

linha = linha + 1

Loop


End Sub

Você não está autorizado a ver ou baixar esse anexo.

For this post the author Anderson thanked:
VictorJF (Sex Mai 22, 2020 5:21 pm)
Anderson
Membro
Membro
 
Mensagens: 166
Registrado em: Dom Mar 15, 2020 10:40 pm
Has thanked: 1 time
Have thanks: 63 times

Re: Várias Condições em diferentes colunas

Mensagempor VictorJF » Sex Mai 22, 2020 5:20 pm

Anderson, muito obrigado!! Não sei como agradecer.
Que Deus continue te dando sabedoria para ajudar o próximo.
Abraço
VictorJF
Membro
Membro
 
Mensagens: 2
Registrado em: Sex Mai 22, 2020 9:29 am
Has thanked: 1 time
Have thanks: 0 time


Voltar para VBA & Macros

Quem está online

Usuários navegando neste fórum: Google [Bot], Google Adsense [Bot] e 6 visitantes