Notifications
Clear all

Erro 1004 - método 'Range' do objeto falhou

6 Posts
3 Usuários
0 Reactions
1,906 Visualizações
(@perroni)
Posts: 6
Active Member
Topic starter
 

Está dando erro em uma parte do meu código, alguém poderia me ajudar por favor?
Está dando o erro: 1004 - O método 'Range' do objeto '_Worksheet' falhou.
o erro é nessa linha: i = WorksheetFunction.Match(cmbSelecionar_pesquisar_lidos.Column(2), Plan2.Range("Codigo"), 0) + 1

O código total é esse:

Private Sub btAbrir_lidos_Click()
Dim i          As Long

   Me.btSalvar_lidos.Enabled = False
   Me.btAtualizar_lidos.Enabled = True
   fmCadastro_Livros_Lidos.Caption = "Atualizar Livros Lidos"
   
   If Me.cmbSelecionar_pesquisar_lidos = "" Then
      MsgBox "Selecione um Autor/Titulo"
      Exit Sub
   End If
   
   i = WorksheetFunction.Match(cmbSelecionar_pesquisar_lidos.Column(2), Plan2.Range("Codigo"), 0) + 1
   'preencher As caixas
   Me.txtCodigo = Cells(i, "M").Value 'codigo
   Me.txtAutor = Cells(i, "A").Value ' autor
   Me.txtTitulo = Cells(i, "B").Value ' titulo
   Me.txtSaga = Cells(i, "C").Value ' saga
   Me.txtVolume = Cells(i, "D").Value ' Volume
   Me.txtTotal_paginas = Cells(i, "E").Value ' total de pgs
   Me.selecionar_genero = Cells(i, "F").Value ' genero
   Me.selecionar_status = Cells(i, "G").Value ' status
   Me.selecionar_abandonei = Cells(i, "H").Value ' abandonei
   Me.txtData_inicio = Cells(i, "I").Value ' data inicio
   Me.txtData_final = Cells(i, "J").Value ' data fim
   Me.selecionar_nota = Cells(i, "K").Value ' nota
   Me.txtSinopse = Cells(i, "L").Value ' sinopse
   
End Sub
 
Postado : 05/04/2018 1:43 pm
brunoxro
(@brunoxro)
Posts: 698
Honorable Member
 

Boa tarde,

Anexe uma planilha de exemplo, assim fica mais fácil tentar ajudar.

De qualquer forma, não acredito o Range() aceite String como você colocou aqui: Plan2.Range("Codigo")

att,

 
Postado : 05/04/2018 1:49 pm
(@perroni)
Posts: 6
Active Member
Topic starter
 

Boa tarde,

Anexe uma planilha de exemplo, assim fica mais fácil tentar ajudar.

De qualquer forma, não acredito o Range() aceite String como você colocou aqui: Plan2.Range("Codigo")

att,

Eu nao consegui anexar a planilha aqui pq ela é maior do que o permitido.
É no botao abrir do formulário 'fmCadastro_Livros_Lidos' que está dando esse erro.
Mas o engraçado é que no formulário 'fmCadastro_Leitura_Atual' tem o mesmo código e não está dando problema.

Vou deixar um link que dá para baixar pelo Minhateca.
http://minhateca.com.br/Perroni91/imagens+EXCEL/M*c3*a1rcia-Minha-Planilha,1304577241.rar(archive)

 
Postado : 05/04/2018 3:45 pm
(@srobles)
Posts: 231
Estimable Member
 

Perroni,

Como o controle está em um UserForm, experimente referenciar o nome do formulário e do controle (este, de outra forma) na linha WorkSheetFunction, ex :

   i = WorksheetFunction.Match(fmCadastro.cmbSelecionar_pesquisar_lidos.List(fmCadastro.cmbSelecionar_pesquisar_lidos.ListIndex, 1), Plan2.Range("Codigo"), 0) + 1

Creio que isso talvez ajude na resolução do problema.

Abs

Espero ter ajudado.

Abs.

Saulo Robles

 
Postado : 05/04/2018 5:28 pm
(@perroni)
Posts: 6
Active Member
Topic starter
 

Perroni,

Como o controle está em um UserForm, experimente referenciar o nome do formulário e do controle (este, de outra forma) na linha WorkSheetFunction, ex :

   i = WorksheetFunction.Match(fmCadastro.cmbSelecionar_pesquisar_lidos.List(fmCadastro.cmbSelecionar_pesquisar_lidos.ListIndex, 1), Plan2.Range("Codigo"), 0) + 1

Creio que isso talvez ajude na resolução do problema.

Abs

Não consegui :(
Na verdade eu não sei como fazer isso, sou péssima nessa parte de códigos, ainda estou aprendendo.
Mas obrigada pela ajuda, vou tentando fazer aqui.

 
Postado : 05/04/2018 5:45 pm
(@srobles)
Posts: 231
Estimable Member
 

Perroni,

Pelo pouco que analisei seu modelo, notei o que segue :

Para o formulário fmCadastro_Leitura_Atual, a rotina funciona pois existe 2 colunas no cmbSelecionar_Pesquisa. Veja que o comando existente no botão, procura na planilha LENDO, pelo valor da 2ª coluna do controle, veja ( cmbSelecionar_pesquisar_lidos.Column(2)):

i = WorksheetFunction.Match(cmbSelecionar_pesquisar_lidos.Column(2), Plan2.Range("Codigo"), 0) + 1

Agora, para o fmCadastro_Livros_Lidos, a rotina é a mesma, porém, o controle cmbSelecionar_pesquisar possui apenas uma coluna, ocasionando o erro. O correto neste caso é alterar esta instrução para o que segue abaixo. Note que a pesquisa é feita também na mesma planilha (aba, também errada), Plan2 :

i = WorksheetFunction.Match(Me.cmbSelecionar_pesquisar_lidos, Plan2.Range("Codigo"), 0) + 1

Deixo abaixo um link para o WeTransfer (pois não consegui disponibilizá-lo aqui) contendo seu modelo já com estas e outras alterações feitas.
[url]
https://wetransfer.com/downloads/5654d8 ... 639/968222
[/url]
Espero ter ajudado.

Abs

Espero ter ajudado.

Abs.

Saulo Robles

 
Postado : 05/04/2018 8:48 pm