Boa noite.
Desculpe pelo inconveniente, porém tentei seguir as orientações solicitadas e não obtive sucesso.
Incluir na planilha as macros necessárias para executar os cálculos desejados, porém deparei com um problema que tentei resolver e não obtive sucesso.
1º Ponto: A formula ficar somente na macro e na planilha ficar somente valores.
2º Ponto: As células com informação foi aplicado uma formatação condicional, porém a macro está realizando uma formatação condicional em células que estão sem valor.
A ideia principal é ela preencher somente onde contém dados.Ficarei agradecido pela ajuda de vocês.
Caso o projeto vba solicite senha (123)
Pessoal, devido arquivo compactado ser grande segue o código fonte no qual utilizei.
Sub Atualiza_Estoque()
'
' Atualiza_Lançamentos Macro
' Atualiza Informação de Estoque
'
Range("b3").Select
ActiveCell.Formula = "=vlookup(a3,cadastro!A:D,2,0)"
Range("a3").Select
Selection.End(xlDown).Select
lin = ActiveCell.Row
rg = "b3:b" & lin
ActiveCell.Value = ActiveCell.Value
Range("b3").Select
Selection.AutoFill Destination:=Range(rg), Type:=xlFillDefault
Range("c3").Select
ActiveCell.Formula = "=vlookup(a3,cadastro!A:D,3,0)"
Range("a3").Select
Selection.End(xlDown).Select
lin1 = ActiveCell.Row
rg1 = "c3:c" & lin1
ActiveCell.Value = ActiveCell.Value
Range("c3").Select
Selection.AutoFill Destination:=Range(rg1), Type:=xlFillDefault
Range("d3").Select
ActiveCell.Formula = "=vlookup(a3,cadastro!A:D,4,0)"
Range("a3").Select
Selection.End(xlDown).Select
lin2 = ActiveCell.Row
rg2 = "d3:d" & lin2
ActiveCell.Value = ActiveCell.Value
Range("d3").Select
Selection.AutoFill Destination:=Range(rg2), Type:=xlFillDefault
cont = 3
Do Until IsEmpty(Cells(cont, 2))
If IsError(Cells(cont, 2)) Then
Cells(cont, 2) = " "
End If
Range("E3").Select
ActiveCell.Formula = "=SUMIF(Cadastro!a:e,A3,cadastro!e:e)+SUMIF(Lançamentos!F:G,""ENTRADA""&"" ""&A3,Lançamentos!G:G)-(SUMIF(Lançamentos!F:G,""SAIDA""&"" ""&A3,Lançamentos!G:G))"
Range("A3").Select
ActiveCell.Value = ActiveCell.Value
Selection.End(xlDown).Select
lin3 = ActiveCell.Row
rg3 = "e3:e" & lin3
ActiveCell.Value = ActiveCell.Value
Range("e3").Select
Selection.AutoFill Destination:=Range(rg3), Type:=xlFillDefault
finalrow = Cells(Rows.Count, 3).End(xlDown).Row
cont = cont + 1
Loop
For i = 3 To finalrow
With Plan6
If .Cells(i, 5) < .Cells(i, 3) Then
.Cells(i, 6) = "Estoque Critico"
.Cells(i, 1).Resize(i, 6).Interior.ColorIndex = 3
.Cells(i, 1).Resize(, 6).Font.Bold = True
Else
If .Cells(i, 5) > .Cells(i, 4) Then
.Cells(i, 6) = "Estoque Excesso"
.Cells(i, 1).Resize(, 6).Interior.ColorIndex = 8
.Cells(i, 1).Resize(, 6).Font.Bold = True
Else
If .Cells(i, 5) > .Cells(i, 3) And .Cells(i, 5) < .Cells(i, 4) Then
.Cells(i, 6) = "Estoque Bom"
.Cells(i, 1).Resize(, 6).Interior.ColorIndex = 2
.Cells(i, 1).Resize(, 6).Font.Bold = True
End If
End If
End If
End With
Next i
'w.Protect senha
End Sub
Sub Atualiza_Lançamentos()
'
' Atualiza_Lançamentos Macro
' Atualiza Lançamento de Entradas e Saidas de Material de Embalagem Criado por Denilson Roberto de Souza
'
'
Dim w As Worksheet
Dim senha As String
senha = "123"
Set w = Plan3
Dim ulinha As Long
w.Activate
If w.ProtectContents = True Then
w.Unprotect senha
End If
ulinha = w.Cells(Cells.Rows.Count, 1).End(3).Row
For i = 3 To ulinha
w.Cells(i, "F") = w.Cells(i, "B") & " " & w.Cells(i, "D")
Next i
Range("e3").Select
ActiveCell.Formula = "=vlookup(D3,cadastro!A:B,2,0)"
'ActiveCell.Value = ActiveCell.Value
Range("d3").Select
ActiveCell.Value = ActiveCell.Value
Selection.End(xlDown).Select
lin = ActiveCell.Row
rg = "e3:e" & lin
ActiveCell.Value = ActiveCell.Value
Range("e3").Select
Range("e3").Copy
'i = 1
'Selecao2.Select
'Selecao2.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Selection.AutoFill Destination:=Range(rg), Type:=xlFillDefault
cont = 3
Do Until IsEmpty(Cells(cont, 2))
If IsError(Cells(cont, 2)) Then
Cells(cont, 2) = " "
End If
cont = cont + 1
Loop
w.Protect senha
End Sub
Postado : 20/03/2018 1:01 am