IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Compatibilité vba Excel 2007 et vba Excel 2013 [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Profil pro
    Enseignant
    Inscrit en
    Août 2006
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Août 2006
    Messages : 156
    Points : 105
    Points
    105
    Par défaut Compatibilité vba Excel 2007 et vba Excel 2013
    Bonjour

    J'ai un programme "Operation32.xlsm" en vba Excel 2007 qui fonctionne très bien sur Excel 2007 ou 2010 32 bits. Malheureusement ce programme se bloque sur vba Excel 2013 64 bits. Quelle est la modification à apporter svp pour obtenir un fonctionnement correct?
    Merci pour l'attention apportée à mon post, et bonne soirée!

    lexot


    PS: J'ai mis "Operation32.zip" en pièces jointes composée de 3 fichiers

  2. #2
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Bonsoir.

    Si tu utilises des API, il faut les déclarer autrement.
    Dans tous les cas, une bonne adresse : Développer avec Office 64 bits d'Arkham46.

    Cordialement,

    PGZ
    pluritas non est ponenda sine necessitate - Le rasoir d'Okham
    Ne jamais attribuer à la malignité ce que la stupidité peut expliquer -Le rasoir d'Hanlon

  3. #3
    Membre régulier
    Profil pro
    Enseignant
    Inscrit en
    Août 2006
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Août 2006
    Messages : 156
    Points : 105
    Points
    105
    Par défaut Suite
    Bonsoir,

    Quelques précisions. Ce programme permet de s'entrainer en calcul mental sur les 4 opérations (addition, soustraction, multiplication, et division).
    L'amplitude des nombres est paramétrable. On peut décider en addition d'ajouter que des nombres positifs. Donc on réglera le minimum à 0 et le maximum à 10 par exemple. La somme minimale sera "0+0", et la somme maximale sera "10+10". Le programme propose 3 réponses possibles. Si la réponse est correcte, "Bien" est affiché, le compteur de réponses correctes est incrémenté, et on passe à l'opération suivante. Si la réponse est fausse, un bip est émis, le compteur de réponses fausses est incrémenté, et on attend une bonne réponse de l'utilisateur pour passer à la question suivante.

    Si on veut utiliser des nombres négatifs, on réglera le minimum à -10 et le maximum à 10 par exemple.
    La somme minimale sera "-10 + -10 = -20", et la somme maximale sera "10+10 = 20".

    Un grand "merci" à celui qui me viendra en aide. Ce programme date de 2006, et j'aurai du mal si je devais le refaire.
    Je veux croire que les modifications à faire pour qu'il fonctionne sur vba Excel 2013 sont mineures.

    Ce programme est distribué gratuitement pour venir en aide à tout élève ayant des difficultés en calcul mental.
    Merci pour tous ces élèves qui pourront utiliser cet outil sur vba Excel 2013.

    Bonne soirée

  4. #4
    Membre régulier
    Profil pro
    Enseignant
    Inscrit en
    Août 2006
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Août 2006
    Messages : 156
    Points : 105
    Points
    105
    Par défaut suite2
    Bonsoir

    Merci apz pour ton aide. Je suis un programmeur "autodidacte", et j'ai oublié ce que c'est qu'un API.
    La seule modif que j'ai faite sur un programme VBA Excel 2007 a été d'ajouter l'instruction "PtrSafe", et le programme a bien fonctionné sur Excel 2013.

    vba Excel 2007
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Public Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" _
        (ByVal lpszName As String, ByVal hModule As Long, ByVal dwFlags As _
        Long) As Long
    vba Excel 2013
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Public Declare PtrSafe Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" _
        (ByVal lpszName As String, ByVal hModule As Long, ByVal dwFlags As _
        Long) As Long
    Mais "PtrSafe" ne suffit plus au programme "Opération32", et ça bloque.
    Encore merci pour toute l'aide que je reçois.

    lexot2

  5. #5
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Salut, dans le lien donné par pgz lire ceci

  6. #6
    Membre régulier
    Profil pro
    Enseignant
    Inscrit en
    Août 2006
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Août 2006
    Messages : 156
    Points : 105
    Points
    105
    Par défaut suite 3
    Bonjour,

    J'ai installé Office 2013 32 bits sur mon pc, et le programme "Operation32.xlsm" fonctionne correctement. Microsoft recommande d'utiliser Office 2013 32 bits au lieu d'Office 2013 64 bits même si on dispose d'un pc muni d'un windows en 64 bits.
    Merci pour votre aide, et bonne journée

    Cordialement

  7. #7
    Membre régulier
    Profil pro
    Enseignant
    Inscrit en
    Août 2006
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Août 2006
    Messages : 156
    Points : 105
    Points
    105
    Par défaut J'ai mis résolu trop vite
    Bonsoir,

    Mon programme "Opération32.xlsm" conçu sur Excel 2007 a bien fonctionné sur Excel 2013 32 bits et s'est à nouveau bloqué. Moi qui pensait tenir la solution. Merci encore pour votre aide

    Cordialement

  8. #8
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    bonsoir,

    qu'entends tu par "bloquer"



    Fichier joint dans vos discussions



  9. #9
    Membre régulier
    Profil pro
    Enseignant
    Inscrit en
    Août 2006
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Août 2006
    Messages : 156
    Points : 105
    Points
    105
    Par défaut
    Bonsoir,

    Je suis surpris de constater que le programme "Operation32" fonctionne bien sur un pc équipé de windows 7, Excel 2013 32 bits, et que sur un autre pc équipé de windows 7, Excel 2013 32 bits aussi il est bloqué. (bloqué = tout est figé. l'action sur les boutons est inopérante) C'est comme si le programme tournait dans une boucle sans fin avec aucun résultat en sortie.

    Comment expliquer 2 fonctionnements différents pour le même programme? Une ou des mises à jour peut-être?
    2 interventions sont alors possibles :
    1) soit modifier le programme pour qu'il fonctionne dans toutes les situations sur windows 7, Excel 2013 32 bits.
    2) soit ajouter les mises à jour manquantes dans le windows 7 "fautif" qui autorisent un bon fonctionnement (ou enlever les mises à jour qui bloquent le programme)

    Ce n'est qu'une simple hypothèse, car je ne connais pas l'origine du "bug".
    Je compte sur votre expérience et je vous en remercie

    Cordialement

    Bonjour,
    Fichiers attachés Fichiers attachés

  10. #10
    Membre régulier
    Profil pro
    Enseignant
    Inscrit en
    Août 2006
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Août 2006
    Messages : 156
    Points : 105
    Points
    105
    Par défaut
    Bonsoir,

    Ma supposition était bonne. J'ai désinstallé "Service Pack 1 for Microsoft Office 2013 (KB2850036) 32-Bit Edition" et le programme "Opération32.xlsm" s'est remis à fonctionner normalement. C'est un bon procédé, mais une solution pérenne serait plus adaptée. Je ne suis pas à l'abri de nouvelles mises à jour qui rebloqueraient le programme.
    Comment modifier les macros pour qu'elles ne soient plus affectées par les mises à jour?
    Je ne demande pas qu'on me fasse un programme, puisqu'il est réalisé depuis de nombreuses années sur Excel 2007. Je demande seulement quelques idées sur les procédures actuelles que je ne connais pas, étant un programmeur "autodidacte"
    Je suppose que les modifications à apporter pour rendre le programme compatible avec Excel 2013 sont mineures.
    Merci pour l'attention portée à mon courrier.

    Cordialement

  11. #11
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Citation Envoyé par Lexot2 Voir le message
    Bonsoir,

    Comment modifier les macros pour qu'elles ne soient plus affectées par les mises à jour?
    Il faut juste savoir quelles mises à jour et quelles autres modifications vont être apportées à Office par Microsoft et savoir combien de temps Microsoft va conserver VBA.


    Je suppose que les modifications à apporter pour rendre le programme compatible avec Excel 2013 sont mineures.
    Cordialement
    Encore là, il y a plusieurs choses à considérer:

    Si la question est en 32 bits et uniquement en 32 bits, c'est probablement vrai. Encore que je n'ai pas Office 2013, mais Office 2010 en 64 bits.

    Si c'est en 64 bits et uniquement en 64 bits, il y a un paquet de contrôles 32 bits qui sont inutilisables en 64 bits.

    Si la question est d'avoir une macro utilisable indistinctement sur Excel 32 bits et Excel 64 bits; VBA pour Office 2010 et, je présume, pour Office 2013 et Office 365, a été muni de nouvelles constantes de compilation conditionnelle. Encore que cela ne règle pas la question des vieux contrôles 32 bits de VB6.

    Ajout:

    Hier soir j'ai réussi à le faire fonctionner sur Excel 2010 64 bits, en désactivant deux lignes de protection dans le Thisworkbook.
    J'ai ajouté des instructions de compilation conditionnelle pour 32/64 bits.
    J'ai ajouté un certificat numérique temporaire (1 an max) que tu peux remplacer par le tien. (Menu signature numérique à quelque part dans l'éditeur VB, j'ai oublié où.) Cela permet d'exécuter les macros, sans autoriser toutes les macros par défaut.
    Fichiers attachés Fichiers attachés
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  12. #12
    Membre régulier
    Profil pro
    Enseignant
    Inscrit en
    Août 2006
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Août 2006
    Messages : 156
    Points : 105
    Points
    105
    Par défaut
    Bonsoir,

    Merci clementmarcotte pour ton aide. J'ai le choix entre "ajouts" au programme ou suppression "mises à jour gênantes".
    Je vais aussi privilégier l'usage de Excel 32 bits, parce-que le programme a été conçu sur un pc doté de Windows xp et Excel 2007. Bonne soirée....

    Codialement

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Passer de Excel 2007 sous XP à Excel 2013 sous Windows 8
    Par Pantagruel92 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 09/04/2014, 12h33
  2. [Excel 2003] Ouverture fichier excel via internet (VBA)
    Par senbo dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 23/07/2013, 13h25
  3. [XL-2007] Tableur excel 2007 et vba
    Par bzhpronos dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 04/07/2011, 20h14
  4. vb6 ou vba - lenteur execution macro sur excel 2007
    Par Enigme dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 26/03/2010, 13h50
  5. office pme excel 2007 et vba
    Par casefayere dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 09/04/2008, 18h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo