Página 1 de 1

IF com 4 condições

Enviado: 22 Fev 2019 às 21:30
por SandroLima
Boa noite, pessoal

Na planilha anexa preciso que para que seja realizada a importação de dados sejam atendidas 4 condições.

Essa parte do código:
Código: Selecionar todos
For NumLinha = 1 To TotalLinhas
        If varDados(NumLinha, ColGrupo) = "Item recorrente mensal" _
            And varDados(NumLinha, ColStatus) = "Pago" _
                And varDados(NumLinha, ColMes) = TabelaDestino.Range("MesReferencia_RelMensal").Value _
                    And varDados(NumLinha, ColAno) = TabelaDestino.Range("AnoReferencia_RelMensal").Value Then
            LinCriterio = LinCriterio + 1
        End If
    Next NumLinha
está apresentando erro com chamada de procedimento inválida... como corrijo?

Obrigado.

Re: IF com 4 condições

Enviado: 23 Fev 2019 às 06:25
por babdallas
Código: Selecionar todos
For NumLinha = 1 To TotalLinhas
        If varDados(NumLinha, ColGrupo) = "Item recorrente mensal" _
            And varDados(NumLinha, ColStatus) = "Pago" _
                And varDados(NumLinha, ColMes) = wshRelMensal.Range("MesReferencia_RelMensal").Value _
                    And varDados(NumLinha, ColAno) = wshRelMensal.Range("AnoReferencia_RelMensal").Value Then
            LinCriterio = LinCriterio + 1
        End If
    Next NumLinha

Re: IF com 4 condições

Enviado: 23 Fev 2019 às 10:44
por SandroLima
bom dia, babdallas... e obrigado

Identifiquei meu erro "tosco".

Mas agora apresenta erro no próximo bloco do código e esse eu não consegui identificar.
Código: Selecionar todos
ReDim varItem(1 To LinCriterio, 1 To 1) As Variant
    ReDim datData(1 To LinCriterio, 1 To 1) As Date
    ReDim curValores(1 To LinCriterio, 1 To 7) As Currency
"Subscrito fora do intervalo"

Segue a planilha com a correção.

Re: IF com 4 condições

Enviado: 23 Fev 2019 às 11:16
por babdallas
Veja aí.

Re: IF com 4 condições

Enviado: 23 Fev 2019 às 14:08
por SandroLima
Excelente, babdallas.

Muito obrigado mais uma vez.

Apenas para título de agregar conhecimento... pode fazer um breve comentário nesse trecho:
Código: Selecionar todos
With TabelaDestino
        If .Range.Rows.Count = 2 Then
            .Range.Cells(2, 1).Resize(LinCriterio) = varItem
            .Range.Cells(2, 2).Resize(LinCriterio) = datData
            .Range.Cells(2, 3).Resize(LinCriterio, 7) = curValores
        Else
            With .ListRows.Add
                .Range(1, 1).Resize(LinCriterio) = varItem
                .Range(1, 2).Resize(LinCriterio) = datData
                .Range(1, 3).Resize(LinCriterio, 7) = curValores
            End With
        End If
    End With
Porque nessa situação específica houve necessidade de acrescentar o bloco IF ?

Nas demais situações em que uso esse código para a importação de dados eu nunca precisei. Ficava somente assim:
Código: Selecionar todos
With TabelaDestino
            With .ListRows.Add
                .Range(1, 1).Resize(LinCriterio) = varItem
                .Range(1, 2).Resize(LinCriterio) = datData
                .Range(1, 3).Resize(LinCriterio, 7) = curValores
            End With
    End With
Obrigado mais uma vez.

Re: IF com 4 condições

Enviado: 23 Fev 2019 às 14:24
por SandroLima
Acabei de testar uma situação aqui também em que lancei um mês em que não existem lançamentos ou mês que não apresente itens com status pago.

Precisava de um tratamento de erro erro informando tipo "Não há lançamentos para o período selecionado".
Me ajuda incrementar isso?

Re: IF com 4 condições

Enviado: 24 Fev 2019 às 17:03
por babdallas
Modifiquei o código, pois agora acho que entendi melhor o que você deseja.

Re: IF com 4 condições

Enviado: 25 Fev 2019 às 11:45
por SandroLima
Bom dia, babdallas.

Era isso mesmo... vou precisar adequar aqui para a minha necessidade... mas era isso que precisava.

Muito obrigado.