Notifications
Clear all

Macro não funciona no Windows 64bits

8 Posts
3 Usuários
0 Reactions
1,698 Visualizações
(@pedro_m)
Posts: 56
Trusted Member
Topic starter
 

Bom dia amigos.
Estou com um grande problema.
Tenho um formulário vba no trabalho que trabalha bem no Windows 7 32bits de mas mudaram o meu computador para 64bits(ficheiro está em rede) e agora estás ssó a dar erros.
Até o simples código: textbox. Blackcolor =cordisabledtextbox, dá erro.
"sultimo=range ("A"& linha). Value +1, dá me erro
Como poderei colocar o ficheiro a rodar nos dois pcs
Obrigado

 
Postado : 28/03/2016 4:24 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia Pedro

Veja se este tópico pode te ajudar:

viewtopic.php?f=10&t=7843&hilit=+*safe*

[]s

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

 
Postado : 28/03/2016 7:09 am
(@pedro_m)
Posts: 56
Trusted Member
Topic starter
 

Amigo Patropi,
bateu confusao na minha cabeça.
o meu conhecimento de vba é muito pouco, o que se vai aprendendo é com o que se vai vendo um pouco daqui e dali nos foruns.
e uma coisa é me aparecer o erro ao inico, a criar os formularios, quando sao erros que aparecem assim depois de estarem todos feitos, eu fico varalhado,pois nao sei se estou a mexer no codigo certo e se nao afecta os outros codigos.
no modulo tenho este codigo e por o que me dá a intender será ele o causador do erro, por dizer "user32"
'Option Explicit

Public Declare Function FindWindowA& Lib "user32" (ByVal lpClassName$, ByVal lpWindowName$)
Public Declare Function GetWindowLongA& Lib "user32" (ByVal hwnd&, ByVal nIndex&)
Public Declare Function SetWindowLongA& Lib "user32" (ByVal hwnd&, ByVal nIndex&, ByVal dwNewLong&)

Public Const GWL_STYLE As Long = -16
Public Const WS_MINIMIZEBOX = &H20000
Public Sub InitMaxMin(mCaption As String, Optional Max As Boolean = True, Optional Min As Boolean = True _
, Optional Sizing As Boolean = True)

Dim hwnd As Long
hwnd = FindWindowA(vbNullString, mCaption)
If Min Then SetWindowLongA hwnd, GWL_STYLE, GetWindowLongA(hwnd, GWL_STYLE) Or WS_MINIMIZEBOX

End Sub

 
Postado : 30/03/2016 6:36 am
(@pedro_m)
Posts: 56
Trusted Member
Topic starter
 

amigo patropi.
vou anexar o ficheiro, pode ser mais facil a sua compreensão e ajuda.
so mais uma coisa se puder ajudar.
tenho o userform de pesquisa, gostaria de saber se é possível enviar o resultado das pesquisas para a ultima folha para depois se imprimir.
obrigado

 
Postado : 30/03/2016 1:53 pm
Trindade
(@trindade)
Posts: 278
Reputable Member
 

o problema da declaração do 32 e 64 bits foi resolvido da seguinte forma

#If VBA7 Then

Public Declare PtrSafe Function FindWindowA& Lib "user32" (ByVal lpClassName$, ByVal lpWindowName$)
Public Declare PtrSafe Function GetWindowLongA& Lib "user32" (ByVal hwnd&, ByVal nIndex&)
Public Declare PtrSafe Function SetWindowLongA& Lib "user32" (ByVal hwnd&, ByVal nIndex&, ByVal dwNewLong&)

#Else

Public Declare Function FindWindowA& Lib "user32" (ByVal lpClassName$, ByVal lpWindowName$)
Public Declare Function GetWindowLongA& Lib "user32" (ByVal hwnd&, ByVal nIndex&)
Public Declare Function SetWindowLongA& Lib "user32" (ByVal hwnd&, ByVal nIndex&, ByVal dwNewLong&)

#End If

A variável sUltimo não estava declarada onde fiz a declaração da seguinte forma

Dim sUltimo As Long 

A variavel que não estava declarada era cordisabledtextbox onde ficou assim

Public Const cordisabledtextbox = &H20000

Se a resposta foi útil! Clique na mãozinha ao lado do botão Citar.
Sua dúvida foi respondida? Marque como RESOLVIDO em seus tópicos, usando o botão com marca verde.

 
Postado : 30/03/2016 9:38 pm
(@pedro_m)
Posts: 56
Trusted Member
Topic starter
 

Boa noite.
amigo trindade, Obrigado pela a ajuda.
foi a minha salvaçao.
so mais uma simples ajuda pq as vvezes dá erro, nem sempre, nem sei porque. tenho este codigo
'ActiveCell.Offset(0, 3).Value = Format(txtdia.Value, "DD-MM-YYYY")
mas as vezes dá o erro no format

 
Postado : 31/03/2016 2:18 pm
Trindade
(@trindade)
Posts: 278
Reputable Member
 

Boa noite, pedro_m.

Consegui encontrar a solução para seu problemas no site do Tomás Vásquez, o link é esse http://www.tomasvasquez.com.br/forum/viewtopic.php?f=20&t=4417.

Aplicação funcionando:

Se a resposta foi útil! Clique na mãozinha ao lado do botão Citar.
Sua dúvida foi respondida? Marque como RESOLVIDO em seus tópicos, usando o botão com marca verde.

 
Postado : 05/04/2016 8:29 pm
(@pedro_m)
Posts: 56
Trusted Member
Topic starter
 

Bom dia amigo Trindade
Muito obrigado pela pela ajuda.
Valeu mesmo.
Obrigado .

 
Postado : 06/04/2016 4:34 am