Ir ao conteúdo
  • Cadastre-se

Excel função do excel para vba


Ir à solução Resolvido por Tentar,

Posts recomendados

@Tentar

 

segue solução.

 

O código vba foi baseado na suposição que as datas estejam na coluna [E] conforme mencionou anteriormente, nesse caso eu coloquei pra colar a fórmula na coluna [F], mas você pode alterar a referência conforme desejar.

 

Sub ColarFormula()

Dim lin_fin As Double
lin_fin = Sheets("Planilha1").Range("E1048576").End(xlUp).Row
Range("F2:F" & lin_fin).FormulaR1C1 = "=IF(RC[-1]<>"""",EDATE(RC[-1],6),"""")"

End Sub

 

em relação ao bloqueio, não precisa fazer via vba, pode fazer com o próprio recurso do Excel.

 

Selecione a coluna que não quer que os usuários façama edições, depois vá em formatar, clique em bloquear célula, depois em Proteger planilha, agora você defini a senha em duas etapas e pronto.

Link para o comentário
Compartilhar em outros sites

@Tentar Nunca vi esse recurso meu caro.

 

Só há duas formas pra deixar do jeito que você quer:

 

1 - Bloquear para o usuário não digitar na célula via vba (É o que já está aplicado na planilha que te enviei) ou recurso nativo do Excel; 

2 - Vba que após colar a fórmula na célula, inserir uma outra instrução na rotina pra colar a mesma em valores.

Link para o comentário
Compartilhar em outros sites

Bom dia!

Ficou bom mas, ainda não seria isso. Na planilha consta como é, e gostaria que essa função fosse colocada no VBA. Não precisa colocar na macro para executar, ela seria executada quando digitasse, só que não ficaria visível como está. Não sei aplicar no VBA, por isso não fiz. Na planilha que você fez coloquei uma data e depois apertei a macro olha o que aconteceu. Como funciona?

image.png.822b23440038e799c28b6779964848d1.png

 

VENCIMENTO v.02.zip

Link para o comentário
Compartilhar em outros sites

Em 03/08/2023 às 10:13, Tentar disse:

 

... ela seria executada quando digitasse ...

 

 

Veja se entendi: após você digitar um data na coluna A o código irá colocar um data correspondente a 6 meses à frente na coluna B.

 

O código deve ser colocado no módulo da Planilha1 (clique com o direito na guia da Planilha1 e selecione Exibir Código.

 

Private Sub Worksheet_Change(ByVal Target As Range)
 If Target.Column > 1 Then Exit Sub
 Target.Offset(, 1).Value = ""
 If IsDate(Target.Value) Then Target.Offset(, 1).Value = DateAdd("m", 6, Target.Value)
End Sub

 

Link para o comentário
Compartilhar em outros sites

A célula em que é colocado o resultado é determinada pela parte em vermelho na linha abaixo. Atualmente é colocado na coluna B.

If IsDate(Target.Value) Then Target.Offset(, 1).Value = DateAdd("m", 6, Target.Value)

 

Se você quiser o resultado em outra coluna, substitua o número 1 pelo [número da outra coluna menos 1], conforme exemplos abaixo:

resultado na coluna C (que é a coluna 3) >>> Target.Offset(, 2)

resultado na coluna D (que é a coluna 4) >>> Target.Offset(, 3)

resultado na coluna J (que é a coluna 10) >>>Target.Offset(, 9)

 

Conforme a coluna x que você escolher na linha acima, altere também na linha abaixo.

Target.Offset(, x).Value = ""

Link para o comentário
Compartilhar em outros sites

Olá. Fiz a alteração na planilha origem e me resultou com: Erro em tempo de execução '1004: Erro de definição de aplicativo ou de definição de objeto.tenho a data na coluna E e o resultado da data na coluna I. Pode me ajudar? Na alteração fiz assim: 

Private Sub Worksheet_Change(ByVal Target As Range)
 If Target.Column > 5 Then Exit Sub
 Target.Offset(, 4).Value = ""
 If IsDate(Target.Value) Then Target.Offset(, 4).Value = DateAdd("m", 6, Target.Value)
End Sub

Link para o comentário
Compartilhar em outros sites

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

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!