Ir para conteúdo
Fórum Script Brasil
  • 0

Código não esta conseguindo ler o restante da linha.


hugopatriota

Pergunta

Olá pessoa, estou com um problema aqui.

O código não consegue ler a linha caso tenha uma LETRA no caminho dele, vou dar um exemplo.

 

               A           B           C          D

1                         ola      mundo

2     01/02/2021 200       200

3         

 

se não tiver as palavras "ola" e "mundo" ele consegue fazer o calculo, vai descendo ate achar os valores 200,200 mas caso eu escreve qualquer coisa no caminho dele, ele não consegue calcular.

 

Desde já agradeço.

 

 

Codigo:

Sub somarValores()

On Error GoTo fim

Dim data As Date

Dim linha As Long

Dim soma As Double

Dim valor1, valor2 As Double

soma = 0
caixa = 0
safra = 0
bb = 0

linha = 2


dataInicial = CDate(Planilha1.Cells(2, "F").Value)
dataFinal = CDate(Planilha1.Cells(2, "F").Value)

While Planilha1.Cells(linha, 1).Value <> "30/02/2021"

valor1 = CDbl(Planilha1.Cells(linha, "B").Value)
valor2 = CDbl(Planilha1.Cells(linha, "C").Value)

'se a data da coluna 1 estiver entre a dataInicia e dataFinal'
If CDate(Planilha1.Cells(linha, 1).Value) >= dataInicial And CDate(Planilha1.Cells(linha, 1)) <= dataFinal Then
'somar valores'
soma = soma + valor1 + valor2

End If
'passa para a proxima linha'
linha = linha + 1
Wend
'coloca o valore da soma na coluna 10 da linha 2'
Planilha1.Cells(2, 7) = soma


Exit Sub

fim:

MsgBox "Não Foi possivel efetuar a soma"



End Sub

 

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Boa noite @hugopatriota!

Olhando seu código pensei na seguinte solução:

...
While Planilha1.Cells(linha, 1).Value <> "30/02/2021"

'Condição: não aceitar letras
if TypeName(Planilha1.Cells(linha, "B").Value) = "String" or _
   TypeName(Planilha1.Cells(linha, "C").Value) = "String" then
      debug.print "Linha não processada: " & x 
Else
      valor1 = CDbl(Planilha1.Cells(linha, "B").Value)
      valor2 = CDbl(Planilha1.Cells(linha, "C").Value)

      'se a data da coluna 1 estiver entre a dataInicia e dataFinal'
      If CDate(Planilha1.Cells(linha, 1).Value) >= dataInicial And CDate(Planilha1.Cells(linha, 1)) <= dataFinal Then
            'somar valores'
            soma = soma + valor1 + valor2

      End If
End if

'passa para a proxima linha'
linha = linha + 1
Wend
...

 

Editado por Alyson Ronnan Martins
Editar para melhor leitura.
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...