Ir ao conteúdo
  • Cadastre-se
David Guilherme Perandré

Visual Basic data fixa "vba excel"

Posts recomendados

Pessoal, boa noite, alguém poderia fazer um grande favor de me ajudar com uma tarefa do EXCEL

Preciso inserir a data atual do dia, agregado com a função "SE"

Abaixo, segue algumas tentativas, sem solução,  algumas até deu certo na hora de inserir, mas quando atualizo os filtros acaba atualizando de acordo com a data vigente

<Function Teste1()
    With Application
        .SendKeys "^;"
    End With
End Function>

 

<Function Teste2()
  SendKeys ("^;")
End Function>

 

<Function Teste3()

DataFixa = Format(Now(), "DD/MM/YYYY")

End Function>
 

Desde já, Muito Obrigado!

  • Obrigado 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desculpe mas nao entendi sua demanda 

 

  • Obrigado 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu preciso criar uma função igual a =HOJE(), mas que seja fixa, que não altere no dia seguinte e nem quando altero algo na planilha

  • Amei 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@David Guilherme Perandré para os dados da celula com a formula Hoje não se alterarem voce precisa converte-los em valores

Segue exemplo:

Cole o codigo abaixo no modulo vbe da sua planilha (aba) .

E altere no codigo o intervalo das celulas que deseja inserir a formula

Private Sub Worksheet_Change(ByVal Target As Range)
   On Error Resume Next
     If Not Intersect(Target, Range("A2:A100")) Is Nothing Then  
         With Target
         .Value = .Value
         End With
     End If
  On Error GoTo 0
End Sub

 

  • Curtir 1
  • Amei 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 25/03/2020 às 22:08, Basole disse:

@David Guilherme Perandré para os dados da celula com a formula Hoje se alterarem voce prccisa converter a celula em valores

Segue exemplo:

Cole o codigo abaixo no modulo vbe da sua planilha (aba) .

E altere no codigo o intervalo das celulas que deseja inserir a formula


Private Sub Worksheet_Change(ByVal Target As Range)
   On Error Resume Next
 If Not Intersect(Target, Range("A2:A100")) Is Nothing Then
   On Error GoTo 0
 With Target
 .Value = .Value
 End With
 End If
End Sub

Deu certo quando eu uso a função =HOJE(), Mas quando uso combinada com a função =SE, ele não aceita eu apertar o enter                           minha inteção é basicamente essas >>>>  =SE(B2="F";=HOJE();"")

 

adicionado 7 minutos depois

corrigindo a fórmula : =se(b2="f";hoje();"ok")

adicionado 21 minutos depois

uma coisa que eu tentei usar foi o SendKeys como função com a teclas "CTRL+;" mas deu erro

Compartilhar este post


Link para o post
Compartilhar em outros sites

Alterei para converter a celula apenas se o resultado for Hoje()

Ou seja se o resultado da formula for Hoje() entao substituirá por 25/03/2020

Caso contrario continuaá a formula com o resultado Ok 

Private Sub Worksheet_Change(ByVal Target As Range)
   On Error Resume Next
 If Not Intersect(Target, Range("A2:A100")) Is Nothing Then
  
 With Target
    If Target.Value = VBA.Date Then
     .Value = .Value
    End If
 End With
 
 End If
  On Error GoTo 0
End Sub

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

image.png.6d0f17a23606386b70ecf2221246d987.png

 

^^ segue acima meu projeto

Tentei adaptar no meu projeto, mas não consegui, tem hora que muda os nomes das funções para inglês kkkk
Você tem alguma maneira mais simples?

adicionado 15 minutos depois

está dando algum tipo de bug no excel

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Experimente desta forma 

 

Private Sub Worksheet_Change(ByVal Target As Range)

    If Target.Column = 5 And Target.Row > 1 Then
        If Target.Value <> "" Then
            Application.EnableEvents = False
         If Target.Offset(, 1) = "C" Then
            With Target
                .Value = VBA.Date
                .NumberFormat = "dd/mm/yyyy"
            End With
          End If
        End If
    End If
    
    Application.EnableEvents = True
    
End Sub

Se nao der certo disponibilize o arquivo ou um exemplo

 

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

AJUDA DATA FIXA_CLUBE DO HARDWARE.xlsx

 

Acho melhor eu te enviar o arquivo, fica mais fácil

Muito obrigado!

adicionado 1 minuto depois
34 minutos atrás, Basole disse:

Experimente desta forma 

 


Private Sub Worksheet_Change(ByVal Target As Range)

    If Target.Column = 5 And Target.Row > 1 Then
        If Target.Value <> "" Then
            Application.EnableEvents = False
         If Target.Offset(, 1) = "C" Then
            With Target
                .Value = VBA.Date
                .NumberFormat = "dd/mm/yyyy"
            End With
          End If
        End If
    End If
    
    Application.EnableEvents = True
    
End Sub

Se nao der certo disponibilize o arquivo ou um exemplo

 

 

AJUDA DATA FIXA_CLUBE DO HARDWARE.xlsx

 

Segue o arquivo em anexo

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@David Guilherme Perandré nao exatamente qual coluna voce faz as alteracoes 

 

Mas considerando a coluna F segue exemplo

   * substitua o codigo anterior por este: 

Private Sub Worksheet_Calculate()
Dim target As Range
Set target = ActiveCell
If target.Column = 6 And target.Row > 1 Then
        If target.Value <> "" Then
         If target.Value = "C" Then
         Application.EnableEvents = False
            With target.Offset(, -1)
                .Value = VBA.Date
                .NumberFormat = "dd/mm/yyyy"
                   If .Errors(9).Value Then
                      .Errors(9).Ignore = True
                   End If
            End With
            Application.EnableEvents = True
          End If
        End If
    End If
End Sub

 

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Redes de Computadores - Gabriel Torres

PROMOÇÃO DE QUARENTENA

De R$ 39,90 por apenas R$ 9,90 só até as 23h59min desta sexta-feira 03/04/2020

CLIQUE AQUI E COMPRE AGORA MESMO!