Ir ao conteúdo

Posts recomendados

Postado

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
Postado

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
Postado

@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
Postado
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

Postado

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
Postado

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
Postado

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
Postado

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
Postado

@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

Crie uma conta ou entre para comentar

Você precisa ser um usuário 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 comunidades 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...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!