Ir para o conteúdo
anderson.lrv

Executar código quando uma célula é alterada

Mensagens Recomendadas

anderson.lrv

Private Sub Worksheet_Selectionchange(ByVal Target As Range)
If Range("A1:A10").Value = 300 Then
Call METANOL

End If

End Sub

___________________________

DA ERRO DE EXECUÇÃO 13

TIPOS INCOMPATÍVEIS

OQ TA FALTANDO?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
vbalexandre

Boa tarde!!

Já tenteou...

Private Sub Worksheet_Change(ByVal Target As Range)
 Application.EnableEvents = False
 If Not Intersect(Target, Range("A1:A10")) Is Nothing Then
 Exit Sub
 Else
	 If Range("A1:A10").Value = 300 Then
		 Call METANOL
 End If
 Application.EnableEvents = True
End Sub

Não testado!

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
anderson.lrv

Private Sub Worksheet_Change(ByVal Target As Range)
    Application.EnableEvents = False
    If Not Intersect(Target, Range("A1:A10")) Is Nothing Then
    Exit Sub
    Else
        If Range("A1:A10").Value = 300 Then
            Call METANOL
    End If
    Application.EnableEvents = True
End Sub

ERRO DE COMPILAÇÃO

BLOCO IF SEM END IF

E TEM HORAS Q NÃO ABRE NADA.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
jpaulino

Dessa forma não funciona ... não podes comparar um intervalo (A1:A10) a um valor, apenas uma célula (A1 ou A2 por exemplo)

Qual é o objectivo?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
falco

Há dois event handlers relacionados o Worksheet_change e o Worksheet_calculate... O primeiro é um evento provocado pelo utilizador, o segundo por uma formula que (re-)calculou o seu resultado.

Nem acredito que sou o único a dizer isto...

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
sergio.costa

Codigo (Visual Basic):

Private Sub Worksheet_Change(Val Target As Range)
 Application.EnableEvents = False
 If Not Intersect(Target, Range("A1:A10")) Is Nothing Then
 Exit Sub
 Else
	 If Range("A1:A10").Value = 300 Then
		 Call METANOL
	End If
 End If
 Application.EnableEvents = True
End Sub

Seria a solução para o erro dos if's

No entanto eu concordo o jpaulino, nao podes fazer essa comparação.

Deves trazer o valor de cada celula para variaveis e compara-las uma a uma..

Ex.: se o teu objectivo e coparar a soma das celulas

Se value(A1) + value(A2) + ... + value(A10) = 300 entao

Faz qualquer coisa

Fim Se

Ou entao se qualquer um do valor das celulas for 300

Dim j as integer

Para j = 1 to 10

Se value(A j) = 300 entao

Fazer qualquer coisa

Fim Se

Proximo

Nao sei se e isto que queres?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
anderson.lrv

Bom Dia.

estou tentando todas as opções mais não ta dando certo.

o meu objetivo é:

eu tenho uma coluna com uma sequencia de formulas que todo dia vai alterando este valor devido eu colocar um consumo de um produto em outra célula, e quando ele der o valor de 300 é que meu estoque está baixo dai ele aparece a mensagem

Sub METANOL()
MsgBox "VERIFICAR O NÍVEL DO TANQUE DE METANOL." _
, vbInformation + vbOKOnly, "FIAGRIL - BIODIESEL!!"
End Sub

teria que colocar na coluna inteira está sequencia

.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
jpaulino

teria que colocar na coluna inteira está sequencia

Não, podes usar a função WorksheetFunction para verificares o valor que está na coluna.

Assim deve funcionar:


Private Sub Worksheet_Change(ByVal Target As Range)

Dim rng As Range
Set rng = Range("A1:A10")

If Not Intersect(Target, rng) Is Nothing Then
	  If Application.WorksheetFunction.Sum(rng) = 300 Then
		Call METANOL
	End If
End If

End Sub

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
anderson.lrv

obrigado jpaulino deu certo, está executando a macro perfeitamente.

quando eu digito a macro executa, será que tem como executar a macro nestas mesmas sequencia só que em vez de eu digitar na celular ela executar na celular que esta com uma formula.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
FreiNando

Já foi respondido:

Há dois event handlers relacionados o Worksheet_change e o Worksheet_calculate... O primeiro é um evento provocado pelo utilizador, o segundo por uma formula que (re-)calculou o seu resultado.

Nem acredito que sou o único a dizer isto...

Lê não só o que te interessa, mas também o que é do teu interesse.


O caminho mais curto para conseguir fazer muitas coisas é fazer uma de cada vez. Samuel Smiles

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.