Problemas de compatibilidad en Macros de excel de 32 bits y 64 bits

Estoy creando un formulario de cotizaciones en excel y trate de automatizarlo lo más posible con VBA (macros) el problema es que todas las macros y toda la programación las hice en una pc de 32 bits y quedo perfecto, pero cuando quisieron usar el formulario en una pc de 64 bits no corrían las macros.. Daban varios errores.

Mi pregunta es:¿Habrá alguna forma de modificar el código VBA para hacerlo compatible para las dos versiones?

No puedo agregar el codigo por que me dice que es muy largo pero aqui les dejo el link para descargar el archivo:

https://drive.google.com/open?id=1APv-uAQWAtFcP8lELf3gXc3NKgVrV124 

1 respuesta

Respuesta
1

Coloca esto al inicio del nódulo del formulario y prueba.

Tengo esto que también fue cedido por un colaborador de aquí, creo ser esto que necesitas para que te función en x86 y x64

M quedaron las apis

'APIs, Para que funcione en X86 y X64
    'Validamos la versión de Office
    #If VBA7 And Win64 Then
        'Si es de 64 bits
        Private 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 Long) As LongPtr
    #Else
        'Si es de 32 bits
        Private 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

¡Gracias! amigo joaom ya mismo lo voy a probar...

no amigo no trabaja... me sale un error diciendome que los comentarios deben ser despues de end sub, end function o end if...

Te diré que llegue a usar al tener Office x64 instalado pero use.

Yo en virtud que Office x64 no trae ciertas librerías pero si ciertas restricciones que no tiene Office x86, preferí quitar el x64 y volver al x86.

Veremos si algún colaborador revisa, verifica las apis que te deje a ver si es eso

si amigo estoy pensando en eso... ¿ahora no hay problema si el sistema operativo es 64 y el office 32?

Instale office 2016 de 32 bits y sigue el problema la pc tiene instalada windows 10 32 bits y me da problema en esta línea:

'guardar primero
Private Sub crearcarpeta2()
'On Error Resume Next
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Ruta = "\\BCC\bccservidor\BCC\2019\1.- COTIZACIONES\1-COTIZACION ACC\COTIZACIONES GENERADAS\"
arch = Range("H1")
<aqui>   If Dir(Ruta & "\" & arch, vbDirectory) = "" Then
                MkDir Ruta & "\" & arch
            End If

ActiveWorkbook.SaveAs Ruta & arch & "\" & "PLANTILLA PARA COTIZAR EN EXCEL BCC.xlsm"
Sheets("PLANTILLA").Visible = True
Sheets("PLANTILLA").Select
Sheets("LISTAS DE PRODUCTOS").Visible = True
Application.ScreenUpdating = True
Application.DisplayAlerts = True

End Sub

Me dice que el nombre del archivo es incorrecto o algo así... lo cierto es que probé el formulario en 3 equipos con windows 7 y en los 3 trabajo perfectamente en windows 10 no trabaja...

Ninguno. Usa esta ampliación de Microsoft que puedes bajarla desde la página.

Esta te limpia Desinstala por completo el Office porque es de suministro por el mismo Microsoft

O15-ctrremove. Diagcab

La primera URL es para tu información y la 2ª es donde debes bajarla

https://www.softzone.es/2016/11/01/problemas-desinstalar-office-asi-puedes-eliminarlo-completo/
https://support.office.com/en-us/article/uninstall-office-from-a-pc-9dd49b83-264a-477a-8fcc-2fdf5dbf61d8?ui=en-US&rs=en-US&ad=US

Siento ya no poder ayudarte en ese tu problema. Esperemos que un colaborador con conocimiento pueda hacerlo

Bueno al fin logre resolver el problema que tenía...

El problema no era por que fuera Windows 10 o por que tuviera Office 2013 el problema era que estaba escribiendo la dirección mal (donde se iba a crear la carpeta) como el documento que contiene las macro está almacenado en un servidor y las carpetas que este iba a crear también están en un servidor en el path debía ingresar la dirección ip del servidor, lo curioso y extraño del caso es que en Windows 7 no necesito poner la dirección ip, y trabaja perfectamente y lo probé en tres pcs conectadas a ese servidor y trabajaba bien todas las macros bueno lo cierto es que ya resolví... Y aclaro para por si alguien tiene ese mismo problema... 😂🤣

Me alegro que hayas podido resolver tu problema. Las macros no es mi fuerte, estoy solo con lo básico. Felictaciones

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas