Jump to content

ERROR DE MACRO EN WINDOWS 10


Go to solution Solved by avalencia,

Recommended Posts

  • Solution

Hola

Lo primero es recordar que esas declaraciones a funciones de la API de Windows están hechas, teóricamente, para funcionar en Office de 64 bits pero en realidad no darán errores en Office de 32 bits, es decir, tal cual están elaboradas pues no funcionarán en Office de 64 bits. Es obvio que los Office de 64 bits solo funcionan en sistemas operativos de 64 bits, pero no olvidar que también se puede instalar Office de 32 bits en sistemas operativos de 64 bits.

Segundo, usar funciones de la API de Windows requiere bastante conocimiento, y no me refiero solo a VBA, copiar/pegar sino también entender cosas de punteros y sistemas operativos. 

Tercero, y esto va para todos, no olvidar que en general los problemas de este tipo no están relacionados al Windows sino al tipo de Excel: 32 o 64 bits. Todo pudieron correr las macros porque estoy seguro usan Excel de 32 bits, en Excel de 64 bits da error, con el cambio de Windows a nuestro amigo le cambiaron el Office de 32 a 64 bits. Ese es el dilema

¿Cómo arreglarlo? Cambia por esto lo correspondiente:

Public Declare PtrSafe Function SetTimer Lib "user32" _
    (ByVal hwnd As LongPtr, _
        ByVal nIDEvent As LongPtr, _
            ByVal uElapse As LongLong, _
                ByVal lpTimerFunc As LongPtr) As LongLong

Public Declare PtrSafe Function KillTimer Lib "user32" _
    (ByVal hwnd As LongPtr, _
        ByVal nIDEvent As LongPtr) As LongLong

Public lngTimerID As LongPtr

Public Sub TimerProc(ByVal hwnd As LongPtr, _
    ByVal wMsg As LongLong, _
        ByVal idEvent As LongPtr, ByVal dwTime As LongLong)

On Error Resume Next

KillTimer hwnd, idEvent
FormControl.LabHora = Time

End Sub

 

Saludos.

Link to post
Share on other sites
Public Declare PtrSafe Function SetTimer Lib "user32" ( _
    ByVal hWnd As Long, _
    ByVal nIDEvent As Long, _
    ByVal uElapse As Long, _
    ByVal lpTimerFunc As LongPtr) As Long 'LongPtr cambialo por Long

Hola a todos, es esta parte cambia LongPtr por Long, a mi me funciona as´s.

Link to post
Share on other sites
a


  • Crear macros Excel

  • Posts

    • Hola a todos. Quería vuestra opinión. Tengo un programa que envío las nóminas por correo y en una hoja tengo una tabla con los empleados. La empresa ha decidido cambiar todos los ID de los empleados poniendo un carácter más delante. Es decir, si alguien era el 76254 ahora es 076254. Yo en mis PDFs lo tenía como (76254)_Nómina_2020_10. Ahora que tengo más de 1.000 fichero guardados he de volver  renombrarlos con (076254)_Nómina_2020_10. Y lo que quería preguntaros es si me aconsejáis que haga una macro para cambiar el nombre de cada fichero (cosa que no veo por donde empezar) o que me busque en la Red algún programa que haga esto específicamente. Gracias. Moisés.
    • Saludos a todos, con la siguiente disyuntiva quiero con macros filtrar una base de datos para quitarle todos los espacios en blanco y copiar los valores restantes a otra hoja. Pero al momento de estar grabando la macro me marca este error "Demasiadas continuaciones de linea". Anexo archivo de ejemplo. De antemano muchas gracias.   demasiadas continuaciones de lineas .xlsm
    • Muchas gracias. Funciona perfecto 😊
    • Ayuda, tengo dificultad para obtener las sumas parciales y totales por mes, de cada hoja de control de tiempo trabajado de cada colaborador en: CCTC1, CCTC2, CCTC3 y CCTC4 en la columna de tiempo tiempo trabajado, también la conversión de la columna total en horas trabajado en horas, ésta conversión se traslada a la hoja de DATOSRESUMEN en el CUADRO 1. REGISTRO DE HORARIO TRABAJADO, de cada colaborador.    AYUDAEXCEL25.11.2020.xlsx
    • Muchísimas gracias. Es justo lo que necesitaba. Millones de gracias
  • Recently Browsing

    No registered users viewing this page.

×
×
  • Create New...

Important Information

Privacy Policy