Fiz um código de modelo para vc.
Está na planilha 1
Esse código só permite uma atualização por dia. Então, se vc mandar atualizar dia 29/01, ela atualiza e vai para o histórico. Somente se vc mandar atualizar colocando uma data posterior a 29/01 é que ela deixará atualizar novamente.
É este aqui:
Option Explicit
Sub Aplicar_1() 'Colocar o nome visualizado no botão e o nome da planilha
Const quantidade As Long = 3 'coloque aqui a quantidade de tabelas)
Dim atualizacao As Range
Dim reajuste As Range
Dim historico As Range
Dim preco(1 To quantidade) As Range
Dim auxiliar(1 To quantidade) As Range
Dim i As Long
Dim UL As Long
Set atualizacao = Range("N3") 'coloque aqui a célula com a data da última atualização
Set reajuste = Range("N4") 'coloque aqui a célula com a o valor do reajuste
Set historico = Range("P2") 'coloque aqui a que contém o início do histórico
Set preco(1) = Range("B4:B46") 'coloque aqui os preços, aumentando a numeração
Set preco(2) = Range("F4:F42") 'coloque aqui os preços, aumentando a numeração
Set preco(3) = Range("J4:J42") 'coloque aqui os preços, aumentando a numeração
Set auxiliar(1) = Range("C4") 'coloque aqui os auxiliares, aumentando a numeração
Set auxiliar(2) = Range("G4") 'coloque aqui os auxiliares, aumentando a numeração
Set auxiliar(3) = Range("K4") 'coloque aqui os auxiliares, aumentando a numeração
Application.ScreenUpdating = False
If historico.End(xlDown).Row = historico.Row + 1 Then
Set historico = historico.End(xlDown).Offset(1, 0)
Else
Set historico = historico.End(xlDown)
End If
If atualizacao.Value2 <= historico.Value2 Then
MsgBox "Os valores já foram atualizados."
Exit Sub
End If
For i = 1 To quantidade
preco(i).Copy
auxiliar(i).PasteSpecial _
Paste:=xlPasteValues, _
Operation:=xlNone, _
SkipBlanks:=False, _
Transpose:=False
Next i
If Not IsEmpty(historico) Then Set historico = historico.Offset(1, 0)
historico.Value2 = atualizacao.Value2
atualizacao.ClearContents
historico.Offset(, 1).Value2 = reajuste.Value2
reajuste.ClearContents
Application.ScreenUpdating = True
End Sub
Para cada planilha, vc vai precisar ajustar os campos onde deixei comentado.
Lembre-se de AGRADECER aos que te ajudaram, e de marcar o tópico como [Resolvido]
Gente que cuida de gente.
Gilmar
Postado : 29/01/2015 10:02 am