Notifications
Clear all

O Fantasma do "método Range do objeto Worksheet falhou"

4 Posts
2 Usuários
0 Reactions
1,617 Visualizações
(@rogeriosg)
Posts: 0
New Member
Topic starter
 

Olá a todos.
Tem coisas que considero fantasmagóricas mesmo, pois tenho uma planilha que funcionava perfeitamente e de repente...

Erro 1004, o método 'range' do objeto '_worksheet' falhou

Não funciona mais de forma alguma, já implementei várias soluções de outros tópicos daqui do fórum e nada!

Minha planilha foi desenvolvida no Windows e, após ser aberta no Mac, deu esse problema. Os caracteres especiais, como acentos, foram substituídos automaticamente pelo Mac. Porém, isso já tinha acontecido antes (quem abriu no Mac foi minha colega de trabalho) e eu consertei manualmente e voltou a funcionar. Porém, dessa vez não adiantou a minha correção.

Segue a macro completa e a linha onde dá o erro 1004:

Sub VER_CAMPOS_VAZIOS()

' O Excel manda depurar a partir do if até o then

If ShtPainel.Range("A6") = 2 And (ShtPainel.Range("Saída") = "" Or ShtPainel.Range("SubConta") = "" Or ShtPainel.Range("Histórico") = "" _
Or ShtPainel.Range("Mês") = "" Or ShtPainel.Range("Ano") = "" Or ShtPainel.Range("Valor") = "") _
Or (ShtPainel.Range("A6") = 1 And (ShtPainel.Range("Entrada") = "" _
Or ShtPainel.Range("Histórico") = "" Or ShtPainel.Range("Mês") = "" Or ShtPainel.Range("Ano") = "" Or ShtPainel.Range("Valor") = "")) Then

MsgBox "VERIFIQUE CAMPOS EM BRANCO", vbOKOnly, "PREENCHIMENTO INCORRETO"

ShtPainel.Range("Valor").Select

Else

Call Adicionar

End If
End Sub
 
Postado : 01/02/2017 8:01 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Apenas pelo descrito fica muito improvável uma resposta/acerto; mas no achometro: Verifique se as ranges nomeadas:Saída / Histórico... (na planilha) estaõ corretamente acentuadas.

 
Postado : 01/02/2017 8:32 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia RogerioSG,

Cara, apenas copiei e colei aqui no meu VBE e apareceu um quadradinho no "Mês".
Está aparecendo assim:

Reescreve o nome do range nomeado e tenta novamente.

Qualquer coisa da o grito.
Abraço

 
Postado : 01/02/2017 8:33 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Eu deixaria assim:

Sub VER_CAMPOS_VAZIOS()

' O Excel manda depurar a partir do if até o then
    With shtPainel
        If .Range("A6") = 2 And (.Range("Saída") = "" Or .Range("SubConta") = "" Or .Range("Histórico") = "" _
        Or .Range("Mês") = "" Or .Range("Ano") = "" Or .Range("Valor") = "") _
        Or (.Range("A6") = 1 And (.Range("Entrada") = "" _
        Or .Range("Histórico") = "" Or .Range("Mês") = "" Or .Range("Ano") = "" Or .Range("Valor") = "")) Then
        
            MsgBox "VERIFIQUE CAMPOS EM BRANCO", vbOKOnly, "PREENCHIMENTO INCORRETO"
            
            .Range("Valor").Select
        
        Else
        
            Call Adicionar
        
        End If
    End With
End Sub

E tentaria limpar essas condições, muita quebra com _, fica fácil perder o controle...
Você tem problemas de condição ali, a primeira condição do A6 não fecha com o grupo dela...
e eu quando colei aqui, não vi o problema informado pelo Bernardo, mas sugiro que confira sua coleção de nomes (Ctrl+F3)... Pode ter alguma zica ali ...

 
Postado : 01/02/2017 8:46 am