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

Excel Discussion :

Excel & Mscomctl : pb compatibilité 32Bits vs 64Bits


Sujet :

Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Responsable marketing opérationnel
    Inscrit en
    Juillet 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable marketing opérationnel
    Secteur : Alimentation

    Informations forums :
    Inscription : Juillet 2012
    Messages : 9
    Points : 5
    Points
    5
    Par défaut Excel & Mscomctl : pb compatibilité 32Bits vs 64Bits
    Bonjour,

    Ne trouvant pas de solution à mon problème, je poste ce message en espérant qu’un petit génie va pouvoir m’aider..

    J’ai écrit des macros utilisant les listview avec Excel 2010 sur un PC fonctionnant sous win7 64bits.
    Le fichier mscomctl.ocx ce trouve dans le dossier SysWow64 de Windows. Tout fonctionne correctement sur cette machine.

    Mon fichier doit également fonctionner sur Excel 2003 sur des machines fonctionnant avec Win XP 32 bits et la problème, car à chaque ouverture du fichier VBA me dit qu’il ne trouve pas Mscomctl.ocx, ce qui est normal vu qu’il est dans System32…

    Pour que cela fonctionne je suis obligé d’aller chercher la référence (via le menu outil/références) à la main dans system32.

    Comment faire pour que VBA trouve seul le fichier sur les deux systèmes ?

    ou y a t'il un moyen de changer le fichier de place sur mon PC win7 64 bits ?

    Merci

  2. #2
    Membre expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 267
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 267
    Points : 3 663
    Points
    3 663
    Par défaut
    Bonjour,

    Comment faire pour que VBA trouve seul le fichier sur les deux systèmes ?
    Normalement ça ne pose pas de problème.

    ou y a t'il un moyen de changer le fichier de place sur mon PC win7 64 bits ?
    Surtout pas, les bibliothèques 32 bits doivent être dans syswow64.

    Le PC avec 2003 a l'air d'être victime du syndrome de la maj d'avril 2012.
    Voir ici : http://support.microsoft.com/kb/2598039
    En résumé : recherchez sur votre disque dur les fichiers dont l'extension est «*.exd*» et supprimez tous les fichiers .exd qui s'y trouvent.
    Ces fichiers .exd seront automatiquement recréés à l'aide des nouveaux contrôles la prochaine fois que vous utiliserez VBA.

    Si ça ne résous pas tu pourras toujours tenter une désinscrition/réinscription au registre de mscomctl.

    eric

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Responsable marketing opérationnel
    Inscrit en
    Juillet 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable marketing opérationnel
    Secteur : Alimentation

    Informations forums :
    Inscription : Juillet 2012
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Bonjour et merci d'avoir répondu à ma question.

    La solution me semble compliquée.. enlever les fichier exd sur des centaines de pc dont je ne suis pas l'administrateur me semble impossible.
    toutefois, j'ai recherché ces fichiers sur un des pc dont je peux disposer et je n'en ai trouvé aucun

    J'ai pas fini de galérer apparement il suffirait pourtant juste qu'il aille chercher le mscomctl.oxd dans mon dossier system32 sur mon PC Win7 64X car il est aussi..

  4. #4
    Membre expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 267
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 267
    Points : 3 663
    Points
    3 663
    Par défaut
    toutefois, j'ai recherché ces fichiers sur un des pc dont je peux disposer et je n'en ai trouvé aucun
    C'est que ce contrôle (listview) n'a jamais été utilisé sur ce pc en vba.
    Pour éliminer totalement cette piste fait quand même un test de ton fichier sur ce pc voir s'il a le même pb.
    Et contrôle si ces pc ont bien toutes leurs mises à jour de faites...
    il suffirait pourtant juste qu'il aille chercher le mscomctl.oxd dans mon dossier system32 sur mon PC Win7 64X car il est aussi..
    Tu ne vas pas refaire windows, ces 2 répertoires ont leur rôle bien précis.
    Sur système 64 bits :
    system32 : pour les dll et ocx 64 bits
    syswow64 : pour les dll et ocx 32 bits (pour émulation en 64 bits)
    eric

  5. #5
    Membre expérimenté
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 875
    Points : 1 394
    Points
    1 394
    Par défaut
    normalement quand tu ajoutes ton contrôle tu as las possibilité d'ajouter de nouveaux contrôles à la liste. Avant d'insérer le list view qui t'intéresse va chercher le fichier mscomctl.ocx dans system 32. De mémoire devant la même situation c'est ce que j'avais fait.

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Responsable marketing opérationnel
    Inscrit en
    Juillet 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable marketing opérationnel
    Secteur : Alimentation

    Informations forums :
    Inscription : Juillet 2012
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Super cool pour les différentes explications merci !

    Je ne vois pas trop la solution pour l'instant..
    y a t'il moyen de référencer le fichier mscomctl.ocx du dossier system32, des pc sur XP 32 bits, via un fichier batch ou une programmation VB du style un petit EXE qui s'occupe de ca ?
    J'ai déjà piloté Excel via Visual basic et exécuter des macros, mais je ne sais pas s'il est possible de simuler:
    ALT F11 / outils / références et aller chercher le mscomctl.ocx dans system32..

    Ca pourrait être un "pansement" à défaut d'une vraie solution ?

  7. #7
    Membre expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 267
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 267
    Points : 3 663
    Points
    3 663
    Par défaut
    Et si tu reconstruisais ton fichier sur 2003 pour voir ensuite si ça réagit correctement sur ces pc ?

    eric

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Responsable marketing opérationnel
    Inscrit en
    Juillet 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable marketing opérationnel
    Secteur : Alimentation

    Informations forums :
    Inscription : Juillet 2012
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Oui ! çà sa fonctionne, si je vais sur un pc équipé de XP avec office 2003, que je vais rechercher le fichier mscomctl.oxc dans system32 puis que je créer à nouveau ma listeview (car elle a disparue) dans le formulaire, alors oui ça fonctionne partout ensuite.

    Y sont compliqués les Cro$ofts quand même c'est vraiment pas cool

  9. #9
    Membre expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 267
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 267
    Points : 3 663
    Points
    3 663
    Par défaut
    Ben voilà, plus de problème alors...

    Une question me vient : ton fichier sur 2010 tu l'avais bien fait en mode compatibilité et a été enregistré en type .xls ?
    Parce que si c'est le pack de compatibilité 2003-2010 qui le traite à l'ouverture sur 2003 c'est sans doute plus ou moins normal.
    eric

  10. #10
    Futur Membre du Club
    Homme Profil pro
    Responsable marketing opérationnel
    Inscrit en
    Juillet 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable marketing opérationnel
    Secteur : Alimentation

    Informations forums :
    Inscription : Juillet 2012
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Salut,
    Désolé du retard, c’est la course en ce moment..

    Le problème est toujours présent dans la mesure où je voudrais bien que Windows ou Excel ce débrouille seul pour aller rechercher le mscomctl au bon endroit.
    Dans l’immédiat, je code sur mon PC Win7 64X Excel 2010 puis une fois terminé je bascule sur un pc Win Xp32B Excel 2003 pour aller rechercher le mscomctl au bon endroit puis rajouter ma listeView car elle disparaît lors du transfert, je recompile et c’est bon.

    Bref c’est pénible, ça me fait perdre du temps et parfois j’oublie la manip du coup le tel se met à sonner de partout : « Ça marche pas… ! » LOL jaune..

    Sinon, oui j’enregistre en mode compatibilité 97-2000 en XLS.

    Merci

  11. #11
    Membre expérimenté
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 875
    Points : 1 394
    Points
    1 394
    Par défaut
    si tu es le seul de ta boîte en office 64 tu devrai faire tes deve sur une machine virtuelle avec un office 32, ça te réduirait le problème.
    Sinon il est possible d'ajouter des scontrôles dynamiquement en VBA (lors de l'exécution du code)

  12. #12
    Membre expérimenté
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 875
    Points : 1 394
    Points
    1 394
    Par défaut
    tiens en fouillant sur le net j'ai trouvé ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ThisWorkbook.VBProject.references.addfromfile "C:\WINDOWS\System32\stdole2.tlb"

  13. #13
    Invité
    Invité(e)
    Par défaut
    Salut,

    Tu ne peux pas utiliser une synthaxe du style

    Si Win 64, alors va chercher ici, sinon, va ici ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    #if Vba7 then 
    '  Code is running in the new VBA7 editor 
         #if Win64 then 
         '  Code is running in 64-bit version of Microsoft Office 
         #else 
         '  Code is running in 32-bit version of Microsoft Office 
         #end if 
    #else 
    ' Code is running in VBA version 6 or earlier 
    #end if

  14. #14
    Futur Membre du Club
    Homme Profil pro
    Responsable marketing opérationnel
    Inscrit en
    Juillet 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable marketing opérationnel
    Secteur : Alimentation

    Informations forums :
    Inscription : Juillet 2012
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Merci, ça semble interressant comme solution, je n'ai pas encore eu le temps de tester, mais je vais me pencher dessus

    Sinon créer une machine virtuelle, je ne sais pas faire

Discussions similaires

  1. [XL-2010] Problème compatibilité 32bits et 64bits
    Par MEUCORACAO dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 27/07/2019, 13h26
  2. [XL-2003] Problème de compatibilité 32bits-64bits
    Par mathspountz dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 30/06/2014, 16h33
  3. Incompatibilité excel 2010 32bits et 64bits
    Par goingoin6 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 28/10/2011, 18h24
  4. Réponses: 2
    Dernier message: 05/10/2010, 14h59
  5. Compatibilité des dump 32bits et 64bits
    Par matta dans le forum Adaptive Server Enterprise
    Réponses: 2
    Dernier message: 02/06/2010, 10h45

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