Soma dos 10 ùlt. mostrando a data que está coluna ao lado  [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

Soma dos 10 ùlt. mostrando a data que está coluna ao lado

Mensagempor AMORIM123 » Qua Jun 13, 2018 1:20 pm

Boa tarde, gente.


No cód. abaixo tenho a instrução para que seja somado as 10 ultimas linhas anteriores à ultima linha preenchida da coluna "B"; ....a variável "total" armazena esse valor... Na coluna "A" tenho as datas que correspondem a cada um dos valores constantes na coluna "B" .... Mais a frente no meu código faço uma comparação com o valor armazenado na variável "total" para checar se foi ultrapassado o valor de 50 (exemplo), porém precisarei da data correspondente a linha onde foi ultrapassado o valor...

Este é problema não estou conseguindo pensar em como escrever isso utilizando "for" ...

Código: Selecionar todos
With wshComum
   
    UltCel = .Cells(.Rows.Count, 2).End(xlUp).Row
    'SOMA DAS 12 ULTIMAS LINHAS OU QUANTIDADE MENOR QUE 12 E ARMAZENA NA VARIÁVEL "total"
    For i = UltCel To UltCel - 9 Step -1
        If i > 1 Then
            total = total + CDbl(Range("B" & i).Value)
        Else
            Exit For
         End If
    Next

End With



Muito obrigado pelo tempo e conhecimento Cedidos!
Você não está autorizado a ver ou baixar esse anexo.
AMORIM123
Membro
Membro
 
Mensagens: 63
Registrado em: Qui Abr 12, 2018 11:17 pm
Has thanked: 20 times
Have thanks: 3 times

{ SO_SELECT }

Re: Soma dos 10 ùlt. mostrando a data que está coluna ao lad

Mensagempor wagner » Qua Jun 13, 2018 1:50 pm

AMORIM123,

Boa tarde!

Veja se é assim.
Você não está autorizado a ver ou baixar esse anexo.
Se a resposta foi útil para você, por gentileza, Amigo, clique na mãozinha ao lado direito da ferramenta CITAR, no canto superior direito.

Atenciosamente
Wagner Morel
Avatar do usuário
wagner
Moderador
Moderador
 
Mensagens: 4309
Registrado em: Sáb Out 20, 2012 12:49 pm
Localização: Fortaleza - CE
Has thanked: 71 times
Have thanks: 1864 times

Re: Soma dos 10 ùlt. mostrando a data que está coluna ao lad

Mensagempor AMORIM123 » Sex Jun 15, 2018 8:47 am

Bom dia, wganer!

Creio que minha questão esteja para ser resolvida, porém quando repassei a questão ainda não havia mentalizado ela por completo; Vc me ajudou no problema que foi colocado, porém ocorre que a parte que faltava da questão refere-se:

Recapitulando:
Havia solicitado que fosse armazenado o total da soma das 10 últimas células anteriores à última célula preenchida da coluna "B" na variável "soma" e que fosse exibida a data correspondente na coluna"A", aonde foi ultrapassado o valor R$ 50,00.

Na sequência tu me responde com "Range("A" & i).Value" concatenado na msgbox...show!

Implementação:
Porém, wagner... há mais uma questão: ...Nessa totalização, que é armazenada na variável "soma", se ultrapassado R$ 50,00; preciso que seja verificada somente dentro do ano atual, sempre dentro do ano atual, até a data de hoje (Considerando apenas o mês) mostrando em que data correspondente foi ultrapassado o valor limite.

Exemplo:

Estamos em 06/2018

E em janeiro/2018 - R$ 33,00

Em fevereiro - R$ 10,00

Em março - R$ 8,00

Em abril - R$ 12,00

Em maio - R$ 22,00

Em junho - R$ 9,00

Dessa forma houve a ultrapassagem do limite de R$ 50,00 em março/2018 essa data deveria ser exibida para mim ..pode ser numa msgbox, ..armazenada numa célula na planilha.. Tendo ultrapassado, independente dos demais valores até a data atual, a data em que houve a ultrapassagem é à data deve ser exibida.


Desde já muito obrigado pelo tempo e conhecimentos disponibilizados!

Segue planilha!
Você não está autorizado a ver ou baixar esse anexo.
AMORIM123
Membro
Membro
 
Mensagens: 63
Registrado em: Qui Abr 12, 2018 11:17 pm
Has thanked: 20 times
Have thanks: 3 times

Re: Soma dos 10 ùlt. mostrando a data que está coluna ao lad

Mensagempor wagner » Sex Jun 15, 2018 10:26 am

AMORIM123,

Bom dia!

Não sei se entendi...
Veja se é assim.
Você não está autorizado a ver ou baixar esse anexo.
Se a resposta foi útil para você, por gentileza, Amigo, clique na mãozinha ao lado direito da ferramenta CITAR, no canto superior direito.

Atenciosamente
Wagner Morel
Avatar do usuário
wagner
Moderador
Moderador
 
Mensagens: 4309
Registrado em: Sáb Out 20, 2012 12:49 pm
Localização: Fortaleza - CE
Has thanked: 71 times
Have thanks: 1864 times

Re: Soma dos 10 ùlt. mostrando a data que está coluna ao lad

Mensagempor AMORIM123 » Ter Jun 19, 2018 11:54 am

Olá, wagner.

Deu certo aqui.. conforme havia solicitado em minha ajuda, agora se eu quiser armazenar ou mostrar em msgbox a data da ultima célula da coluna "A" (data)

Fiz dessa forma, mas está mostrando 13/01/1900

Código: Selecionar todos
Sub Somar()
    Dim UltCel As Long
    Dim i As Long
    Dim Soma As Double
    Dim UltDate As Date
   
    UltCel = Sheets("Comum").Cells(Sheets("Comum").Rows.Count, 2).End(xlUp).Row
   
    UltDate = Sheets("Comum").Cells(Sheets("Comum").Rows.Count, 1).End(xlUp).Row
   
    For i = UltCel To UltCel - 9 Step -1
        If i > 1 Then
            Soma = Soma + CDbl(Range("B" & i).Value)
            If Soma > 50 And Year(CDate(Range("A" & i).Value)) = Year(Date) Then
               
                If Sheets("Comum").Cells(2, 9).Value = "" Then
                    'Para saber se é a primeira vez que é ultrapassado o limite de R$ 50,00
                    'salvo a data correspondente na coluna 9 para sempre informar ao usuário
                    MsgBox ("Na competência " & DatePart("m", UltDate) & "/" & DatePart("yyyy", UltDate) & " o limite Anual foi excedido"), vbOKOnly
                    Sheets("Comum").Cells(2, 9).Value = CDate(UltDate)
                Else
                    ' se já estava preenchida então é uma segunda averiguação
                    MsgBox ("Na competência " & DatePart("m", Sheets("Comum").Cells(2, 9).Value) & "/" & DatePart("yyyy", Sheets("Comum").Cells(2, 9).Value) & " o limite Anual foi excedido"), vbOKOnly

                End If
               ' GoTo SAI
            End If
        Else
            Exit For
        End If
    Next
'SAI:
'    Range("B" & UltCel + 1).Value = Soma
End Sub


Pois irei precisar saber qual a última data a partir da qual o limite foi alcançado ou ultrapassado.

Desde já obrigado pelo tempo e conhecimento!
Você não está autorizado a ver ou baixar esse anexo.
AMORIM123
Membro
Membro
 
Mensagens: 63
Registrado em: Qui Abr 12, 2018 11:17 pm
Has thanked: 20 times
Have thanks: 3 times

Re: Soma dos 10 ùlt. mostrando a data que está coluna ao lad

Mensagempor wagner » Ter Jun 19, 2018 1:40 pm

AMORIM123,

Boa tarde!

Não entendi bem o que você disse. O fata da data está saindo da forma que você mencionou (13/01/1900) é porque a sua segunda linha de código não está armazenando uma data. Ela está armazenando o número da último linha com dados, pela coluna A e tentando transformar em Data já que a variável está definida como Date.

Código: Selecionar todos
'Esta linha não armazena uma data
UltDate = Sheets("Comum").Cells(Sheets("Comum").Rows.Count, 1).End(xlUp).Row
Se a resposta foi útil para você, por gentileza, Amigo, clique na mãozinha ao lado direito da ferramenta CITAR, no canto superior direito.

Atenciosamente
Wagner Morel

For this post the author wagner thanked:
AMORIM123 (Ter Jun 19, 2018 2:02 pm)
Avatar do usuário
wagner
Moderador
Moderador
 
Mensagens: 4309
Registrado em: Sáb Out 20, 2012 12:49 pm
Localização: Fortaleza - CE
Has thanked: 71 times
Have thanks: 1864 times

Re: Soma dos 10 ùlt. mostrando a data que está coluna ao lad

Mensagempor AMORIM123 » Ter Jun 19, 2018 1:55 pm

humm.

corrigir da seguinte forma:
Código: Selecionar todos
'agora ele carrega o valor dentro da celula
UltDate = Sheets("Comum").Cells(Sheets("Comum").Rows.Count, 1).End(xlUp).Value

ficou assim
Código: Selecionar todos
Sub Somar()
    Dim UltCel As Long
    Dim i As Long
    Dim Soma As Double
    Dim UltDate As Date
   
    UltCel = Sheets("Comum").Cells(Sheets("Comum").Rows.Count, 2).End(xlUp).Row
   
    UltDate = Sheets("Comum").Cells(Sheets("Comum").Rows.Count, 1).End(xlUp).Value
   
    For i = UltCel To UltCel - 9 Step -1
        If i > 1 Then
            Soma = Soma + CDbl(Range("B" & i).Value)
            If Soma > 50 And Year(CDate(Range("A" & i).Value)) = Year(Date) Then
               
                If Sheets("Comum").Cells(2, 9).Value = "" Then
                    'Para saber se é a primeira vez que é ultrapassado o limite de R$ 50,00
                    'salvo a data correspondente na coluna 9 para sempre informar ao usuário
                    MsgBox ("Na competência " & DatePart("m", CDate(UltDate)) & "/" & DatePart("yyyy", CDate(UltDate)) & " o limite Anual foi excedido"), vbOKOnly
                    Sheets("Comum").Cells(2, 9).Value = CDate(UltDate)
                Else
                    ' se já estava preenchida então é uma segunda averiguação
                    MsgBox ("Na competência " & DatePart("m", Sheets("Comum").Cells(2, 9).Value) & "/" & DatePart("yyyy", Sheets("Comum").Cells(2, 9).Value) & " o limite Anual foi excedido"), vbOKOnly

                End If
               ' GoTo SAI
            End If
        Else
            Exit For
        End If
    Next
'SAI:
'    Range("B" & UltCel + 1).Value = Soma
End Sub
AMORIM123
Membro
Membro
 
Mensagens: 63
Registrado em: Qui Abr 12, 2018 11:17 pm
Has thanked: 20 times
Have thanks: 3 times

Re: Soma dos 10 ùlt. mostrando a data que está coluna ao lad  [Resolvido]

Mensagempor wagner » Ter Jun 19, 2018 2:04 pm

Ok.
Se a resposta foi útil para você, por gentileza, Amigo, clique na mãozinha ao lado direito da ferramenta CITAR, no canto superior direito.

Atenciosamente
Wagner Morel
Avatar do usuário
wagner
Moderador
Moderador
 
Mensagens: 4309
Registrado em: Sáb Out 20, 2012 12:49 pm
Localização: Fortaleza - CE
Has thanked: 71 times
Have thanks: 1864 times


Voltar para VBA & Macros

Quem está online

Usuários navegando neste fórum: mestre e 4 visitantes