Ir ao conteúdo
  • Cadastre-se

Excel erro em tempo de execução '94"' uso de 'null" inválido


Ir à solução Resolvido por AfonsoMira,

Posts recomendados

Sub Editar()

bloqueado = True
Dim tabela As ListObject
Dim n As Integer, l As Integer
Set tabela = Planilha1.ListObjects(1)

n = UserForm2.ListBox1.Value
l = tabela.Range.Columns().Find(n, , , xlWhole).Row

tabela.Range(l, 2).Value = UserForm2.txtorcamento.Value
tabela.Range(l, 3).Value = UserForm2.txtdata.Value
tabela.Range(l, 4).Value = UserForm2.txtHora.Value
tabela.Range(l, 5).Value = UserForm2.cbbVendedor.Value
tabela.Range(l, 6).Value = UserForm2.txtcliente.Value
tabela.Range(l, 7).Value = UserForm2.txtcidade.Value
tabela.Range(l, 8).Value = UserForm2.txtuf.Value

tabela.Range(l, 9).Value = IIf(UserForm2.obpadrao, "Padrão", "Fora de Padrão")      < AQUI APARECE O ERRO

tabela.Range(l, 10).Value = UserForm2.cbbProduto.Value
tabela.Range(l, 11).Value = UserForm2.txtcapacidade.Value
tabela.Range(l, 12).Value = UserForm2.txtpreco.Value
tabela.Range(l, 13).Value = UserForm2.txtContato.Value
tabela.Range(l, 14).Value = UserForm2.txttelefone.Value
tabela.Range(l, 15).Value = UserForm2.txtcelular.Value
tabela.Range(l, 16).Value = UserForm2.txtemail.Value
tabela.Range(l, 17).Value = UserForm2.cbbStatus.Value
tabela.Range(l, 18).Value = UserForm2.txtDataDeRetorno.Value
tabela.Range(l, 19).Value = UserForm2.txtObs.Value

Call atualizar_listbox
MsgBox "O Registro foi atualizado"

bloqueado = False

End Sub

Boa noite, estou tendo este erro e não sei como arrumar alguem pode me auxiliar, arquivo esta em anexo

Cópia de relação de produtos - março (1).rar

Link para o comentário
Compartilhar em outros sites

  • Solução

@paulotuca  Experimente trocar a linha do pela seguinte:

tabela.Range(l, 9).Value = If(Nz(UserForm2.obpadrao, "Padrão", "Fora de Padrão"),0)

ou

tabela.Range(l, 9).Value = If(Nz(UserForm2.obpadrao, "Padrão", "Fora de Padrão",0))

 Ps. Não consegui testar aqui
 

Link para o comentário
Compartilhar em outros sites

Boa tarde Professor @AfonsoMira

Era exatamente esse a solução obrigado, mais em seguida me deparei com outro erro:

Na Verificação imediata aparece assim Erro em tempo de execução "424"

O objeto é obrigatório, será que poderia me ajudar?

Sub Filtro()

    Dim base As Range
    Dim crt As Range
    Dim filtrada As Range
    Dim nome As String
    
    Set base = Planilha1.Range("A1").CurrentRegion
    Set crt = Planilha2.Range("V1:AO2")
    
    base.AdvancedFilter xlFilterCopy, crt, Planilha2.Range("A1:T1") Aqui ocorre o erro
    
    Set filtrada = Planilha2.Range("A1").CurrentRegion
    nome = "'" & Planilha2.Name & "'!"
    
    
        UserForm2.ListBox1.RowSource = nome & filtrada.Address
        
End Sub

 

Link para o comentário
Compartilhar em outros sites

@paulotuca Boas, 

Ainda não sou professor kkkkk
Primeiramente você está a tentar copiar de uma folha para outra e o excel não permite isso com o filtro avançado.

Por isso vai ter que colar na Planilha1 em vez da 2.

 

Depois reparei que os cabeçalhos são diferentes, na ultima coluna tem "53" em uma tabela e em outra tem "51", fazendo com que aconteça um erro.

 

Sugiro a seguinte alteração no código lembrando que agora invés de ir buscar os dados á Planilha2 de A1:Tx, terá que ir buscar à Planilha1 de V1:AOx.

 

Sub Filtro()

  Dim filtrada As Range
  Dim nome As String
  Dim Plan1 As Worksheet, Plan2 As Worksheet
  Dim ultimaLinha As Integer

  Set Plan1 = Sheets("formulario")
  Set Plan2 = Sheets("DADOS")

  ultimaLinha = Plan1.Cells(Rows.Count, 1).End(xlUp).Row
  Plan1.Range("V1:AO10000").Clear

  Plan1.Range("A1:T" & ultimaLinha).AdvancedFilter xlFilterCopy, Plan2.Range("V1:AO2"), Plan1.Range("V1:AO1")

  Set filtrada = Plan1.Range("V1").CurrentRegion
  nome = "'" & Plan1.Name & "'!"

  UserForm2.ListBox1.RowSource = nome & filtrada.Address

End Sub

 

Espero ter ajudado!
Caso não tenha percebido, por favor diga!

:)

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

@AfonsoMira Bom pelo que já li aqui no fórum você ensinando considero um grande professor, só tenho a agradecer.

 

Com a alteração mencionada acima deu certo mais uma busca não esta fazendo correto, a de Nº de Orç. (que seria numeros e texto tambem EX: 8575 ou 8575-REV1) na verdade ele até busca mais quando clico no botão limpar ele limpa o listbox e todos os outros campos e não faz mais busca por campo nenhum. sendo que os outros campos(textbox, combobox) esta normal a busca posso limpar e não some o listbox. no botão limpar uso seguinte código:

Private Sub btLimpar_Click()
    limparcampos (UserForm2)
End Sub

 

nos campos textbox, combobox uso o código:

Private Sub txtC_Orcamento_Change()
    Planilha2.Range("W2") = txtC_Orcamento
        Call Filtro
End Sub

 

em anexo a planilha se precisar 

Cópia de relação de produtos - março (1).rar

Link para o comentário
Compartilhar em outros sites

1 hora atrás, paulotuca disse:

 Bom pelo que já li aqui no fórum você ensinando considero um grande professor, só tenho a agradecer.

Muito Obrigado :)
 
Então troque este código:

 

Private Sub txtC_Orcamento_Change()
    Planilha2.Range("W2") = txtC_Orcamento
        Call Filtro
End Sub

 

Por este:
 

Private Sub txtC_Orcamento_Change()
    Planilha2.Range("W2") = txtC_Orcamento.Text
        Call Filtro
End Sub

 

Assim ele vai guardar o valor numérico como texto.
Espero ter ajudado.

 

  • Amei 1
Link para o comentário
Compartilhar em outros sites

@AfonsoMiracara não tem como não chamar você de professor ou de mestre, mais uma vez deu tudo certo, existe alguma lugar aqui para dar avaliação, porque você é nota DEZ.......

Professor agora uma pergunta é possível neste tipo de planilha com userform eu ter uma data de retorno um aviso automático que tal dia preciso entrar em contato com o cliente? sei que já estou incomodando demais né kkkk

Link para o comentário
Compartilhar em outros sites

13 horas atrás, paulotuca disse:

cara não tem como não chamar você de professor ou de mestre, mais uma vez deu tudo certo, existe alguma lugar aqui para dar avaliação, porque você é nota DEZ.......

Muito obrigado mesmo! :) É excelente ouvir isso!

13 horas atrás, paulotuca disse:

Professor agora uma pergunta é possível neste tipo de planilha com userform eu ter uma data de retorno um aviso automático que tal dia preciso entrar em contato com o cliente? sei que já estou incomodando demais né kkkk

Sim é possível.

Abra um novo tópico, que eu lhe tento ensinar a como fazer e utilizar.

  • Obrigado 1
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...