Notifications
Clear all

[Resolvido] Menor e maior data

4 Posts
2 Usuários
0 Reactions
191 Visualizações
(@souzadenilson)
Posts: 105
Estimable Member
Topic starter
 

Bom dia. Estou com esta macro que encontrei na internet e preciso que ao rodar ela encontre a menor data de acordo com critério. O que preciso é que ao rodar ela procure na guia lançamento a menor data onde usei como critério o código do produto e o resultado retorne na coluna i da guia detalhado. ( Cada produto será retornado a sua menor data)

Depois será adaptado para encontrar a maior data. Tendo funcionado o retorno de datas deverá ser calculado os dias uteis (Data Maior - Data Menor)

 

 
Postado : 15/06/2025 10:35 am
(@souzadenilson)
Posts: 105
Estimable Member
Topic starter
 

Realizei varias procuras pela internet e as encontrada realizei as adaptações orientada e não funcionou como planejado.

Encontrei em um arquivo de macros este código abaixo. que com procv na linguagem vba funcionou. 

Como faço para fazer a adaptação desta linha  "ActiveCell.Formula = "=iferror(vlookup(b2,Cadastro!A:c,2,0),""Favor Cadastrar este item"")" " concatenando a funçao indice + corresp  onde retorne a menor data de cada produto cadastrado até o ultimo registro da planilha.

 

 

 

Sub AtualizaDatas()
'' Atualiza Guia Movimento
' Gravado por Denilson Roberto de Souza

Dim w As Worksheet
Dim senha As String
Dim ulinha As Long
Dim UltimaLin As Long
senha = "acerf15"
'Captura a Ultima Linha na Coluna c
UltimaLin = ActiveSheet.Cells(Rows.Count, "a").End(xlUp).Row
Application.ScreenUpdating = False
Set w = Planilha5
w.Activate
If w.ProtectContents = True Then
w.Unprotect senha
End If

Range("i2").Select
ActiveCell.Formula = "=iferror(vlookup(b2,Cadastro!A:c,2,0),""Favor Cadastrar este item"")"
Range("b2").Select
Selection.End(xlDown).Select
lin = ActiveCell.Row
rg = "i2:i" & lin
ActiveCell.Value = ActiveCell.Value
Range("i2").Select
Selection.AutoFill Destination:=Range(rg), Type:=xlFillDefault
Range("i2:i" & lin).Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False

cont = 2

cont = cont + 1
'Loop

'Apaga todas as Linhas em branco a partir de A2

w.Protect senha

End Sub

 
Postado : 16/06/2025 11:09 pm
(@souzadenilson)
Posts: 105
Estimable Member
Topic starter
 

Como converter esta formula e aplicar no vba excel. Joguei diretamente na planilha. 

Inserir na macro para não pesar na planilha

 

 

=SEERRO(SE(É.NÃO.DISP(CORRESP($B2;LCTO!$A$2:$A$20000;0));"";MÍNIMO(SE((LCTO!$A$2:$A$20000=$B2);LCTO!$C$2:$C$20000)));" ")

=SEERRO(SE(É.NÃO.DISP(CORRESP($B2;LCTO!$A$2:$A$20000;0));"";MAXIMO(SE((LCTO!$A$2:$A$20000=$B2);LCTO!$C$2:$C$20000)));" ")

 

 

 

 

 
Postado : 20/06/2025 8:38 pm
(@jonatha)
Posts: 2
New Member
 

@souzadenilson 

Olá, acho que era isso que você precisava, nessa que estou te enviando apaguei a sua macro "Menor"
Criei uma só que te retorna a menor e maior data.

Na sua macro a variável critério estava com o texto "CritérioDesejado" (acho que era esse o texto, como apaguei a macro e não consegui baixar sua planilha novamente não lembro)... mas voltando, a macro pegava esse texto e procurava na coluna de Produto da planilha de Lançamento e pelo que entendi você queria que procurasse o código do produto da linha da detalhe.

Deduzi que você quer pegar o produto da detalhe, procurar na lançamento a menor e maior data de venda e exibir na de detalhe.

Foi o que fiz, veja se está correto.

 
Postado : 25/06/2025 11:08 pm