Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
  • Avatar do usuário
  • Avatar do usuário
Por blufmlhh
#13683
Bom dia galéra to com um problema.Tenho um formulario em VBA , mais quando vou salvar um informação apertir de um TextBox, aparece o seguinte erro :
Run-Time Error '-2147024809 (80070057): Could not find the specified object .......alguem sabe com resolver,,,,,o iteressante é que tem mais TextBox neste formulário que consigo salvar
Avatar do usuário
Por gfranco
Avatar
#13688
Bom dia.
Parece ser um erro de referência ao objeto (nome inexistente ou modificado acidentalmente).
Sugiro postar a planilha para facilitar ajudar-lhe.
At.
gfranco
Por blufmlhh
#13694
segue código que estou usando....de de 1 a 8 ele salva normal porem de 9 ate 17 da um erro de tempo de execução. neste procedimento"b] Sheet12.Cells(Linha + 1, 8) = Controls("TextBox" & i).Text ' registra obs
[/b] "


Private Sub Command_Registra_Click()

Dim Itens As Boolean
Itens = False
For i = 1 To 17 'Valida os itens do dialogo com label
If Controls("Check" & i) = True Then
Itens = True
Exit For
End If
Next

If Text_Data = "" Then ' valida data
MsgBox "Favor informar a data!", vbCritical, "Mensagem do Sistema"

ElseIf TextBox_Cod_Transp = "" Then ' valida codigo do transportador
MsgBox "Favor informar o código"

ElseIf Not Itens Then
MsgBox "Favor informar ao menos um iten !", vbCritical, "Mensagem do Sistema"
Else

For i = 1 To 17 'Registra descrição do iten
If Controls("Check" & i) = True Then
Linha = Sheet12.Range("A1").CurrentRegion.Rows.Count
Sheet12.Cells(Linha + 1, 1) = Text_Data 'registra data
Sheet12.Cells(Linha + 1, 2) = TextBox_Cod_Transp ' registra codigo transportador
Sheet12.Cells(Linha + 1, 3) = Text_Nome_Transp ' registra nome do transportador
Sheet12.Cells(Linha + 1, 4) = TextBox_Nome_GT ' registra nome do GT
'Sheet12.Cells(Linha + 7, 6) = Frame
Sheet12.Cells(Linha + 1, 6) = Controls("Check" & i).Caption ' registra o desvio
Sheet12.Cells(Linha + 1, 8) = Controls("TextBox" & i).Text ' registra obs
End If
Next
MsgBox "Registro efetuado com sucesso!"
LimparItens

End If

End Sub
Avatar do usuário
Por gfranco
Avatar
#13695
Pelo que posso ver no código, à não ser que seu userform tenha 17 textbox's, vai dar erro mesmo pois o último laço for next vai rodar 17 vezes e quando não encontrar um texbox para associar à variável "i" não vai encontrar o objeto e vai dar erro!!
Avatar do usuário
Por LuizSegecs
Posts Avatar
#13696
Eu também diria que o "TextBox9" não existe, e por isso dá o erro de execução.
Dá uma olhada no nome dos TextBox e vê se não tem um erro.

Se não resolver, coloca por favor a planilha pra gente poder analisar melhor.

Abraço!
Avatar do usuário
Por gfranco
Avatar
#13702
A planilha está em xlsb. Tô tentando baixar pela terceira vez. Das outras duas vezes não consegui abrir o arquivo.
Avatar do usuário
Por LuizSegecs
Posts Avatar
#13703
Amigo @blufmlhh, está bem fácil de arrumar.
Realmente o problema no código é que seu formulário só contem 8 TextBox!

Sendo assim, precisa colocar mais uma condicional para esta parte do código:

For i = 1 To 17 'Registra descrição do iten
If Controls("Check" & i) = True Then
Linha = Sheet12.Range("A1").CurrentRegion.Rows.Count
Sheet12.Cells(Linha + 1, 1) = Text_Data 'registra data
Sheet12.Cells(Linha + 1, 2) = TextBox_Cod_Transp ' registra codigo transportador
Sheet12.Cells(Linha + 1, 3) = Text_Nome_Transp ' registra nome do transportador
Sheet12.Cells(Linha + 1, 4) = TextBox_Nome_GT ' registra nome do GT
'Sheet12.Cells(Linha + 7, 6) = Frame
Sheet12.Cells(Linha + 1, 6) = Controls("Check" & i).Caption ' registra o desvio
IF i <9 Then Sheet12.Cells(Linha + 1, 8) = Controls("TextBox" & i).Text ' registra obs
End If
Next
MsgBox "Registro efetuado com sucesso!"

Dessa maneira ele só vai rodar até o TextBox8 e seus problemas terão fim! hahah.

P.S.: Observe que os TextBox 6, 7 e 8 não correspondem aos Checks 6, 7 e 8!!!!!
Não sei se qual é a lógica que precisa, mas não me pareceu correto isso ao olhar o formulário.

Qualquer coisa pode me mandar um email (luiz.segecs@gmail.com).

Abraço!
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord