Notifications
Clear all

Data Fixa - Problema com a fórmula

6 Posts
2 Usuários
0 Reactions
1,500 Visualizações
(@ttorres)
Posts: 14
Active Member
Topic starter
 

Olá queridos, tudo bem?

Estou com uma fórmula com a ajuda de alguns companheiros aqui do fórum. Osvaldo e Henrique.
Porém, eu estou encontrando alguns problemas na hora de copiar e colar informações da coluna TIPO a MOEDA, também, quando eu vou adicionar a data na coluna DATA.

Estou enviando em anexo a planilha, para quem puder me ajudar.

A função é para preencher a coluna DATAREGISTRO quando se seleciona alguma opção na lista suspensa da coluna TIPO.

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Application.ScreenUpdating = False
Application.EnableEvents = False
If Intersect(Target, Range("CAIXATIPOS")).Value = "" Then
Application.Intersect(Target.EntireRow, Range("DATAREGISTRO")).Value = ""
Exit Sub
Else
Application.Intersect(Target.EntireRow, Range("DATAREGISTRO")).Value = Format(Now(), "dd/mm/yyyy")
End If
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub

Agradeço a todos.

Desenvolvendo uma Planilha Financeira para Igrejas para ser distribuída gratuitamente.

 
Postado : 13/03/2017 11:02 am
brunoxro
(@brunoxro)
Posts: 698
Honorable Member
 

Boa tarde ttorres,

Sinceramente não entendi o que você precisa.

Esse código preenche a data quando uma célula do 'CaixaTipo' for preenchida? Qual o problema com as colunas 'Tipo' e 'Moeda'?

att,

 
Postado : 13/03/2017 12:23 pm
(@ttorres)
Posts: 14
Active Member
Topic starter
 

brunoxro

Se você adicionar um valor em DATA ele dá um erro.

Desenvolvendo uma Planilha Financeira para Igrejas para ser distribuída gratuitamente.

 
Postado : 13/03/2017 12:26 pm
(@ttorres)
Posts: 14
Active Member
Topic starter
 

Esse código abaixo, ele não está gerando o problema quando se adiciona a data na coluna data (NÃO COLUNA DATAREGISTRO).
Porém, se eu apagar os valores de tipo até moeda ele dá um erro, também o mesmo erro ao colar informações.

Private Sub Worksheet_Change(ByVal Target As Range)
 If Intersect(Target, Range("CAIXATIPOS")) Is Nothing Then Exit Sub
  If Target.Value = "" Then Target.Offset(, -2).Value = "" Else: Target.Offset(, -2).Value = Date
End Sub

Também encontro erro se eu duplicar a informação da CAIXATIPOS.
Com o mouse arrastando para baixo.

Desenvolvendo uma Planilha Financeira para Igrejas para ser distribuída gratuitamente.

 
Postado : 13/03/2017 12:34 pm
(@ttorres)
Posts: 14
Active Member
Topic starter
 

Na Planilha que está para Download, é apenas PLANILHA CAIXA.

A minha necessidade é a seguinte:
Na Planilha Caixa eu gostaria que fosse preenchido automaticamente a coluna DATAREGISTRO (B11:B964) com a data atual (=agora()), quando fosse selecionado algum item da lista suspensa da coluna TIPO (D11:D964).

Lembrando, que:
Se o usuário apagar o conteúdo da coluna TIPO (D11:D964) deverá ser apagado também o conteúdo correspondente a linha na coluna DATAREGISTRO (B11:B964).

Desenvolvendo uma Planilha Financeira para Igrejas para ser distribuída gratuitamente.

 
Postado : 13/03/2017 9:53 pm
(@ttorres)
Posts: 14
Active Member
Topic starter
 

Pessoal,
consegui a solução!!!

Segue abaixo a solução para quem deseja adicionar data em uma célula após preencher outra célula.

Set WorkRng = Intersect(Application.ActiveSheet.Range("A:A"), Target)
Intervalo que irá ser usado como referência para gerar a DATA

xOffsetColumn = 1
COLUNA PARA PREENCHIMENTO AUTOMÁTICO DA DATA
Se a coluna que irá receber as informações for A e você deseja inserir a data na coluna C então o valor será 2
Se a coluna que irá receber as informações for D e você deseja inserir a data na coluna B então o valor será -2

Private Sub Worksheet_Change(ByVal Target As Range)
Dim WorkRng As Range
Dim Rng As Range
Dim xOffsetColumn As Integer
'ALTERAR A:A Para o intervalo que irá ser usado como referência para gerar a DATA
Set WorkRng = Intersect(Application.ActiveSheet.Range("A:A"), Target)
'Altere o valor 1 para a posição da coluna que irá receber a DATA ATUAL
xOffsetColumn = 1
If Not WorkRng Is Nothing Then
    Application.EnableEvents = False
    For Each Rng In WorkRng
        If Not VBA.IsEmpty(Rng.Value) Then
            Rng.Offset(0, xOffsetColumn).Value = Now
            Rng.Offset(0, xOffsetColumn).NumberFormat = "dd/mm/yyyy"
        Else
            Rng.Offset(0, xOffsetColumn).ClearContents
        End If
    Next
    Application.EnableEvents = True
End If
End Sub

Espero que essa solução ajude a todos.

Desenvolvendo uma Planilha Financeira para Igrejas para ser distribuída gratuitamente.

 
Postado : 13/03/2017 10:31 pm