Jump to content
Fórum Script Brasil
  • 0

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


Question

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 to post
Share on other sites

1 answer to this question

Recommended Posts

  • 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
...

 

Edited by Alyson Ronnan Martins
Editar para melhor leitura.
Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Cloud Computing


  • Forum Statistics

    • Total Topics
      148954
    • Total Posts
      645028
×
×
  • Create New...