Página 1 de 1

Data Fixa - Problema com a fórmula

Enviado: 13 Mar 2017 às 11:57
por ttorres
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.

EDIT: A função é para preencher a coluna DATAREGISTRO quando se seleciona alguma opção na lista suspensa da coluna TIPO.
Código: Selecionar todos
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.

Data Fixa - Problema com a fórmula

Enviado: 13 Mar 2017 às 15:28
por ttorres
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.
Código: Selecionar todos
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.

Preciso da ajuda dos companheiros de fórum.

Enviado: 13 Mar 2017 às 22:46
por ttorres
Queridos,

estou precisando muito dessa solução.

Obrigado.

Re: Data Fixa - Problema com a fórmula

Enviado: 14 Mar 2017 às 00:41
por osvaldomp
Sugestão - esqueça o código que você está utilizando e informe com exatidão o que você quer. O arquivo que você disponibilizou no primeiro post tem 4 planilhas, informe qual a planilha de interesse, quais as colunas, quais as células, quais os resultados desejados.

Acredito que seja mais fácil e menos trabalhoso escrever um novo código para a sua necessidade do que ficar tentando descobrir erros no seu código.

Data Fixa - Problema com a fórmula

Enviado: 14 Mar 2017 às 00:51
por ttorres
Que bom Osvaldo ter sua participação.

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).

Resolução do Problema

Enviado: 14 Mar 2017 às 01:29
por ttorres
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
Código: Selecionar todos
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.