Cambiar Macro de 32 bits para 64 bits
Tengo una macro que me funciona excelente en excel de 32 bits y pero instale excel de 64 bits pero resulta que ya no me funciona me sale un error y no se que hacer necesito de su ayuda ya que no soy un programador solo un aficionado porque utilizo macros en algunos de mis trabajos. Les adjunto el error y la macro:
Private Type BROWSEINFO ' utilizado por la función GetFolderName
hOwner As Long
pidlRoot As Long
pszDisplayName As String
lpszTitle As String
ulFlags As Long
lpfn As Long
lParam As Long
iImage As Long
End Type
' (aqui se biene el error)
Private Declare Function SHGetPathFromIDList Lib "shell32.dll" _
Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) As Long
Private Declare Function SHBrowseForFolder Lib "shell32.dll" _
Alias "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) As Long
Function GetFolderName(Msg As String) As String
' devuelve el nombre de la carpeta seleccionada por el usuario
Dim bInfo As BROWSEINFO, path As String, r As Long
Dim X As Long, pos As Integer
bInfo.pidlRoot = 0& ' Carpeta raíz = escritorio
If IsMissing(Msg) Then
bInfo.lpszTitle = "Seleccione una Carpeta"
' el título de diálogo
Else
bInfo.lpszTitle = "¿En que carpeta desea guardar el Archivo a generar?" ' el título de diálogo
End If
bInfo.ulFlags = &H1 ' Tipo de directorio para volver
X = SHBrowseForFolder(bInfo) ' visualizar el diálogo
' Analizar el resultado
path = Space$(512)
r = SHGetPathFromIDList(ByVal X, ByVal path)
If r Then
pos = InStr(path, Chr$(0))
GetFolderName = Left(path, pos - 1)
Else
GetFolderName = ""
End If
End Function
Sub TestGetFolderName8_1()
Dim FolderName As String
FolderName = GetFolderName("Select a folder")
If FolderName = "" Then
MsgBox "Se Seleccionará la unidad D:", vbCritical, "Seleccione una carpeta"
Hoja3.TextBox1.Value = "D:"
Else
Hoja3.TextBox1.Value = FolderName
End If
End Sub
O si tubieran otras soluciones a mi macro que busca en donde guardar un archivo.