ERRO DE COMPILAÇÃO: VARIÁVEL NÃO DEFINIDA

 Tópico anterior Próximo tópico Novo tópico

ERRO DE COMPILAÇÃO: VARIÁVEL NÃO DEFINIDA

VB / VBA

 Compartilhe  Compartilhe  Compartilhe
#493118 - 18/03/2020 11:56:13

RENATADEMETRIO
SAO PAULO
Cadast. em:Março/2020


 Anexos estao visíveis somente para usuários registrados

Bom dia.
Sou nova aqui e não sei se já criaram esse tópico, em caso positivo, podem excluir esse, mas, por favor, me digam onde posso encontrar a resposta para a minha dúvida.
Peguei um banco de dados criado por um colega que está em licença, a missão é decifrar esse banco e deixá-lo funcional.
O criador do projeto o compilou em Visual Basic for Applications e eu consegui resolver quase todo o código, exceto por um erro recorrente: a mensagem de erro de "Variável não definida", conforme imagem anexa.
Vocês poderiam me ajudar, indicar onde está o erro, o que posso fazer?
Obrigada

Citação:
Function verif_ce(CE)
    #If Left(CE, 2) = "12" Then
       verif_ce = Left(CE, 4) & "000"
    #Else
       verif_ce = Left(CE, 2) & "00000"
    #End If
    End Function  



Renata Demetrio
  

#493119 - 18/03/2020 12:22:44

FABRICIOWEB
BELO HORIZONTE
Cadast. em:Novembro/2011


remova #



#493120 - 18/03/2020 12:43:15

RENATADEMETRIO
SAO PAULO
Cadast. em:Março/2020


Citação:
:
remova #

Ele usou a # em todas as declarações, então removo todas as #?

Renata Demetrio
  

#493121 - 18/03/2020 12:46:17

FABRICIOWEB
BELO HORIZONTE
Cadast. em:Novembro/2011


Citação:
:
:
remova #
Ele usou a # em todas as declarações, então removo todas as #?



provavelmente mas teste nessa funcao para ver se continua nela ou ela muda



#493122 - 18/03/2020 12:51:35

RENATADEMETRIO
SAO PAULO
Cadast. em:Março/2020


 Anexos estao visíveis somente para usuários registrados

Citação:
:
:
remova #
Ele usou a # em todas as declarações, então removo todas as #?


Removi, entretanto, agora o VBA retornou o erro de "Fora de um procedimento".
Detalhe, estamos resgatando um banco de dados compilado no XP, x86, para um Windows 10, x64, Office 2016.
Eu havia inserido essa declaração:

Citação:
  Public dt_inicio, dt_Termino As Date
If VBA7 Then 'Declaração de API´s para versões do MS Office 2010+.
    
    If Win64 Then 'Declaração para as versões 64 bits.
            
        Public Declare PtrSafe Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
        (ByVal hwnd As LongLong, ByVal lpOperation As String, ByVal lpFile As String, ByVal _
        lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As LongLong) As _
        LongLong
            
    Else 'Declaração para as versões 32 bits.
        
        Public Declare PtrSafe Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
        (ByVal hwnd As LongPtr, ByVal lpOperation As String, ByVal lpFile As String, ByVal _
        lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As LongPtr) As _
        LongPtr
        
    End If
    
ElseIf VBA6 Then 'Declaração de API´s para versões do MS Office 2007-.
    
    If VBA7 Then 'Declaração de API´s para versões do MS Office 2010+.
    
    If Win64 Then 'Declaração para as versões 64 bits.
            
        Public Declare PtrSafe Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
        (ByVal hwnd As LongLong, ByVal lpOperation As String, ByVal lpFile As String, ByVal _
        lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As LongLong) As _
        LongLong
            
    Else 'Declaração para as versões 32 bits.
        
        Public Declare PtrSafe Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
        (ByVal hwnd As LongPtr, ByVal lpOperation As String, ByVal lpFile As String, ByVal _
        lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As LongPtr) As _
        LongPtr
        
    End If


Renata Demetrio
  

#493123 - 18/03/2020 14:52:44

WEBMASTER
CURITIBA
Cadast. em:Janeiro/2001


Membro da equipe
Voce está jogando codigo dentro do bloco principal...

Dim v as integer
if day(now)=10 then
....
end if


Separe variaveis de blocos de codigo, usando por exemplo a Main (sub padrao de qualquer aplicacao)

Dim v as integer
Sub Main()
if day(now)=10 then
....
end if
End Sub


Ou crie a sua...e chame-a

Dim v as integer
Sub Main()
call AlgumaCoisa()
End Sub

Sub AlgumaCoisa()
if day(now)=10 then
....
end if
End Sub


Veja que Dim assim como seus operadores Public e Private do teu exemplo, sao usados para criar variaveis de escopo, codigo fica em sub rotina ou função e não jogado ao léo como você fez

WebMaster - VBMania

Nao me mande e-mail com duvidas
Para isso e que existe o forum do VBMania !!!

#493143 - 19/03/2020 10:27:41

RENATADEMETRIO
SAO PAULO
Cadast. em:Março/2020


Obrigada!
Peguei o código já pronto e não compilando por diversas razões.
Consegui resolver a compatibilidade, mas continuou não compilando por estr fora do procedimento.
Já vou fazer agora os procedimentos que vocês me passaram.

Renata Demetrio
  

#493174 - 21/03/2020 14:19:05

JABA
CABO FRIO
Cadast. em:Agosto/2005


Retire a declaração Option Explicit  e faça o teste.

_______________________________________________________________________________________________

Se a alma ou espírito são imateriais, como eles fazem para se localizarem quando o corpo está em movimento?



#493237 - 26/03/2020 12:05:49

RENATADEMETRIO
SAO PAULO
Cadast. em:Março/2020


Citação:
:
Retire a declaração Option Explicit  e faça o teste.


Continuou aparecendo o mesmo erro.

Renata Demetrio
  

 Tópico anterior Próximo tópico Novo tópico


Para responder este tópico o login é requerido
Se você já possui uma conta de usuário por favor faça seu login
Se você não possui uma conta de usuário use a opção Criar usuário