Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
(ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal _
lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As _
Long
Ao iniciar a planilha aparece a mensagem em anexo, dizendo que o código do projeto deve ser atualizado para uso em sistemas 64bits. Alguém sabe me dizer como atualizo isso??? e se depois de atualizar em sistema de 64bits eu posso rodar a mesma macro sem dar erro em sistema como por exemplo de 32bits?
Desde já agradeço.
Att,
Cy Rangel
Anexos
imagem
erro 64 bits.PNG (24.57 KiB) Exibido 30400 vezes
Editado pela última vez por cy_rangel em Sex Jan 29, 2016 10:50 pm, em um total de 1 vez.
#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-.
Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
(ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal _
lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As _
Long
#End If
Dessa maneira, ele vai reconhecer a versão do VBA7 (existente nas versões do Office 2010, ou superiores, e dividido em 64 bits e 32 bits), como também nas versões do VBA6 (existente nas versões do Office 2007, ou inferiores).
Boa tarde. A mensagem é exatamente a mesma, com o erro acontecendo no mesmo local. O Código está no link. Outra pergunta, ao baixar o arquivo do link citado anteriormente, vieram dois arquivos, MdC_FrontEnd ListView e ModeloCadastro_Dados, esse último ao executar dois cliques nada acontece. Qual a necessidade desses arquivos? para que serve esse primeiro?
Então cara, se a mensagem é a mesma, é necessário que você pegue o mesmo código que passei acima e o adapte, corrigindo o erro.
Sobre os arquivos que vieram no arquivo compactado, os dois são necessários para que a ferramenta funcione. Eles funcionam da seguinte forma: - MdC_FrontEnd ListView: nesta planilha, você vai ter acesso aos formulários, onde poderá cadastrar, pesquisar ou excluir os registros; - ModeloCadastro_Dados: já nesta planilha, você vai localizar os registros armazenados/gravados.
Esse foi um modelo desenvolvido, trabalhando com as informações separadamente.
Boa Noite,
Como ainda estou iniciando no excell (VBA), estou tendo dificuldade para resolver o mesmo problema e gostaria de uma ajuda. Ao iniciar a planilha aparece uma mensagem dizendo que o código do projeto deve ser atualizado para uso em sistemas 64bits. Eu preciso atualizar para um sistema de 64 bits, porém, de forma que ele ainda rode em um sistema de 32 bits. Isto é possível?
Tenho a seguinte função dentro de um módulo:
Option Explicit
Private Declare Function GetForegroundWindow Lib "user32" () As Long
Declare Function SetWindowLong Lib "user32.dll" Alias "SetWindowLongA" ( _
ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Declare Function FindWindow Lib "user32" Alias "FindWindowA" ( _
ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" _
(ByVal Destination As Long, ByVal Source As Long, ByVal Length As Long)
Declare Function SetWindowsHookEx Lib _
"user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, _
ByVal hmod As Long, ByVal dwThreadId As Long) As Long
Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, _
ByVal nCode As Long, ByVal wParam As Long, lParam As Any) As Long
Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long
Type POINTAPI
X As Long
Y As Long
End Type
Type MSLLHOOKSTRUCT
pt As POINTAPI
mouseData As Long
flags As Long
time As Long
dwExtraInfo As Long
End Type
Function LowLevelMouseProc _
(ByVal nCode As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
On Error Resume Next
If (nCode = HC_ACTION) Then
If wParam = WM_MOUSEWHEEL Then
LowLevelMouseProc = True
'ATENÇÃO: Troque o nome do seu Userform
With frmCadastro
'ROLAR PARA CIMA
If GetHookStruct(lParam).mouseData > 0 Then
.ScrollTop = intTopIndex - 10
intTopIndex = .ScrollTop
Else
'ROLAR PARA BAIXO
.ScrollTop = intTopIndex + 10
intTopIndex = .ScrollTop
End If
If hhkLowLevelMouse <> 0 Then UnhookWindowsHookEx hhkLowLevelMouse
End Sub
Sub Apagar_Dados()
'
' Apagar_Dados Macro
'
'
Range("O5:X5").Select
Selection.ClearContents
Range("O9:X2008").Select
Selection.ClearContents
Range("R5").Select
End Sub
Sub Consulta_Avancada()
'
' Consulta_Avancada Macro
'