Notifications
Clear all

Erro em tempo de execução 1004: Esta referência não é válida

8 Posts
2 Usuários
0 Reactions
2,333 Visualizações
(@madi-land)
Posts: 33
Eminent Member
Topic starter
 

Boa noite.

Estou testando meu programa e me deparo com o seguinte erro:

Erro em tempo de execução '1004':
Esta referência não é válida.

COMO TESTAR ESTA PARTE DO PROGRAMA:
1) Na planilha "INICIAL", clicar em "Lançamento de perfis".
2) Selecione a opção "ENTRADA de perfis"
3) Selecione a opção "CHAPA DOBRADA"
4) Tipo de perfil --> "U_CD (Perfil U)"
5) DESIGNAÇÃO --> Qualquer item
6) QUANTIDADE --> Qualquer número
7) TAMANHO --> Qualquer número
8) DESTINO --> LAND ou METALMAR ou CLIENTE
9) IDENTIFICAÇÃO DA OBRA e REFERENTE A --> Não precisam ser preenchidos agora
10) "CONFIRMAR ENTRADA"

O formulário que se refere à este item é "frm_entrada_perfis" ----> Botão "cmd_confirmar"

Ao apertar no botão confirmar, o item será lançado na planilha "UCD_Estq.", nas seguintes tabelas:
* ENTRADA
* SALDO LAND ou SALDO METALMAR ou SALDO CLIENTES (em função do que foi escolhido no item 8).
* SALDO TOTAL Aqui está o problema!!!

O QUE ACONTECE: por exemplo, se lançarmos o seguinte perfil com DESIGNAÇÃO (U_CD 100 x 50 x 3) e TAMANHO (6) e DESTINO (LAND)

O mesmo será lançado na tabela ENTRADA, SALDO LAND, porém não está sendo lançado na tabela SALDO TOTAL, porque acontece o erro.

A mensagem de erro, que segue em anexo, aparece.

CURIOSIDADE: Ao apertar no botão "Fim", e testar o programa com as mesmas informações acima, o programa funciona como deveria, ou seja, adicionando o perfil na tabela SALDO TOTAL, também.

Alguém saberia me dizer porque, sempre que lanço um perfil diferente, o mesmo não é inserido na tabela SALDO TOTAL?!

Fico no aguardo por uma ajuda.

Agradeço desde já.

Segue em anexo o arquivo em excel.

 
Postado : 19/05/2015 4:50 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Aperte em depurar e diga *(ou mande imagem) qual linha fica amarela...

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 20/05/2015 9:59 am
(@madi-land)
Posts: 33
Eminent Member
Topic starter
 

Segue imagem da linha que fica amarela após apertar em depurar.

 
Postado : 20/05/2015 1:50 pm
(@madi-land)
Posts: 33
Eminent Member
Topic starter
 

Alguém poderia me ajudar a respeito deste problema?!

Desde já, agradeço.

 
Postado : 28/05/2015 10:10 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Eu acho que a formula na linha destacada está incompleta e com isto não está sendo interpretada corretamente impossibilitando mover o foco.

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 30/05/2015 7:09 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

O erro provavelmente e gerado pelo valor constante na célula BF4 a referencia "R4C58" na linha realçada ser #N/D,
ou seja quando não há o registro o comando GoTo Reference não recebe o estimulo/referencia correta.
É necessário efetuar a instrução do que fazer quando não há o registro em analise.

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 30/05/2015 8:46 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

O texto usado no Goto é muito perigoso e instável:
"IF(AND(R1C62=R2C62),OFFSET(R7C57,R4C58,,,),)"

Veja bem, vc está usando uma condição dentro do goto, essa condição vc usou a função AND() (ou, E()). Pq usar o E() se vc não tem duas condições?
Em seguida vc fez o uso incorreto da função OFFSET() não preenchendo todos os parâmetros. Quanto ao offset() equivalente ao desloc(), vc deve usar os 5 parâmetros, mesmo que vc acredite no help da função, e se omitir os valores, alguns valores padrão serão utilizados, não conte com isso. Vai dar problema.
Procure no forum como usar o desloc().

O primeiro parametro é um ponto de referencia, ok, vc usou a célula BE7 *(R7C57). A partir dela, em quantas linhas para baixo, seu intervalo começará? Este valor deve estar vindo da célula BF4. Se esta célula tiver um erro, ou um texto, ou vazia, seu deslocamento vai pro brejo. Em seguida, os parâmetros omitidos. Quantas colunas para a direita? É nenhuma, então coloque o 0. Os outros dois, definem o tamanho do resultado do deslocamento. Se vc omitiu, imagino que vc queria uma linha e uma coluna, sugestão baseado em experiência própria: coloque o 1.

Quanto ao IF(), vc não colocou nada no final, no valor se falso. Ou seja, se a condição for falsa, vc está dando um GoTo para vazio....

Eu nunca usaria o goto, muito menos com um desloc dessa forma, mas se for pra te corrigir o código, eu faria assim:

"IF(R1C62=R2C62,OFFSET(R7C57,R4C58,0,1,1),R1C1)"

Fez sentido?

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 05/06/2015 12:33 pm
(@madi-land)
Posts: 33
Eminent Member
Topic starter
 

Faz sentido..

Tchê.. muito obrigado pelo teu tempo e pela ajuda...

Valeu mesmo!!!

 
Postado : 15/06/2015 10:12 pm