Restreindre l'ouverture d'un fichier à une version d'Excel ET à une version d'OS

SERIEUXETCOOL Messages postés 336 Date d'inscription dimanche 3 avril 2011 Statut Membre Dernière intervention 12 juin 2012 - 4 déc. 2011 à 01:44
SERIEUXETCOOL Messages postés 336 Date d'inscription dimanche 3 avril 2011 Statut Membre Dernière intervention 12 juin 2012 - 11 déc. 2011 à 15:13
Bonsoir le Forum,

Je développe une macro qui est maintenant sur la fin. Néanmoins je rencontre quelques difficultés de compatibilité.

J'ai développé la macro sous Excel 2007 (version 12.0) et sous Windows XP (32-bit). Elle fonctionne très bien.
-Elle ne fonctionne plus à l'ouverture par Excel 2003.
-Elle ne fonctionne pas mieux avec Excel 2007 depuis Windows Seven (64-bit).
-Et enfin elle ne s'ouvre pas non plus avec Office 2011 pour Mac.

Pour éviter à l'utilisateur de se retrouver face à un message d'erreur, j'aimerais limiter l'ouverture du fichier Excel.
Les deux paramètres sont donc la version d'Excel, et la version de l'OS.

J'ai cherché sur le net et j'ai réussi à contrôler la version d'Excel. Ça fonctionne. Voici le code :


Private Sub Workbook_Open()

If Val(Application.Version) <> 12 Then
    MsgBox "L'application a été élaborée à l'aide d'office 2007 (version 12.0) sous Windows XP (32-bit)." & Chr(10) & Chr(10) _
    & "Vous utilisez actuellement la version " & Application.Version & " d'office qui tourne sous " & Application.OperatingSystem & "." & Chr(10) & Chr(10) _
    & "Le fichier va se fermer pour des raisons de non compatibilité."
    Application.Quit
End If

End Sub



Malheureusement je n'ai pas trouvé le moyen de contrôler la version de l'OS ou alors s'il est en 32 ou 64 bit.

Ma question est alors la suivante :

Peut-on contrôler la version de l'OS ou le type de bus (32 ou 64) du système au même titre que la version d'office ?

Merci à ceux qui pourront m'aiguiller.

Bien cordialement,

André

61 réponses

SERIEUXETCOOL Messages postés 336 Date d'inscription dimanche 3 avril 2011 Statut Membre Dernière intervention 12 juin 2012 1
5 déc. 2011 à 03:02
Bon avant de me coucher, j'ai voulu vérifier très rapidement si on pouvait intégrer ou non une ddl au démarrage d'une macro.

Et je suis tombé en 5 min sur un lien plutôt intéressant qui justement traite de mon problème de références, et de plantage au démarrage. Lié justement à des composants de bibliothèques.

Je pense qu'il est possible de faire des choses. Mais je verrais ça demain car je suis hs à cette heure tardive...

Je met le lien en question pour la curiosité certaine de certains ;)

http://www.excelabo.net/trucs/ajouter_reference_

Bonne nuit à tous.

André
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
5 déc. 2011 à 07:58
Les choses, là non plus, ne sont pas évidentes. Et tu parles maintenant des références et plus d'un composant.
Je crois que les gestes que tu as réussi à faire sur ta machine ont correspondu, à un moment que j'ignore, à la conjonction d'une référence que tu as cochée, puis d'un composant que tu as également coché.
Pour ton information : depuis VBA/Excel sur ma machine, je peux toujours ajouter (elle est bien présente) la référence à shdocvw.dll. Cela ne fait pour autant pas apparaitre, dans la boite des composants "rajoutables" valables, ce composant-là ! Seul Ieframe.dll (Microsoft Web Browser) m'y est proposé .
Si Microsoft Web Browser ne t'est pas proposé, cela veut probablement dire que tu as déinstallé Internet Explorer sur ta machine.

Le lien que tu as voulu me faire consulter étant incomplet, je n'ai pu le consulter valablement. Le seul début de son nom URL suffit cependant pour que l'on devine qu'il parle de Late Binding. Or, d'instinct, je dirais que cette solution est à écarter, au profit de l'utilisation de la fonction LoadLibrary de l'Api de Windows.
Dans tous les cas de figure : de nombreux problèmes de sécurité montreront le bout de leur nez !
Quant à cette partie :

Du coup si je comprends bien ton raisonnement, il suffirait que chaque machine dispose de cette fameuse ddl "shdocvw.dll" pour ne plus avoir de problème... Comment je peux faire pour résoudre mon problème du coup ?

-Devrais-je plutôt tenter d'intégrer cette ddl dans ma macro pour être sure ne plus avoir le problème ? (je ne sais pas du tout si c'est envisageable bien sur. Je dis ça comme ça.)

-Devrais-je plutôt vérifier l'existence de la ddl dans le système d'exploitation et interdire l'ouverture du fichier Excel si elle n'est pas disponible ?


ce n'est pas vraiment uniquement ainsi (pour plusieurs raisons ... que l'on va éviter d'exposer pour ne pas s'&égarer) !
Personnellement (mais je ne suis pas toi), je réinstallerais plutôt sur MA machine ieframe.dll, puis livrerais mon appli utilisant, cette fois-ci, le contrôle Microsoft Web Browser alors trouvable dans la liste des composants supplémentaires.

____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
SERIEUXETCOOL Messages postés 336 Date d'inscription dimanche 3 avril 2011 Statut Membre Dernière intervention 12 juin 2012 1
5 déc. 2011 à 09:56
Bonjour,

Ah oui en effet le lien que j'ai mis n'est pas complet. Vraiment dsl. Sans doute une mauvaise manipulation du copier-coller d'hier soir. Je verrais si je remet la main dessus. Donc dsl.

-
Si Microsoft Web Browser ne t'est pas proposé, cela veut probablement dire que tu as déinstallé Internet Explorer sur ta machine


Nan nan j'avais bien vérifé que je disposais quand même de IE hier soir. En fait, quand j'installe le système Windows XP sur mon pc, IE est préinstallé de base. Je ne le désinstalle pas car je m'en sert pour faire les mise à jour windows du type "Windows Update". Donc je ne le met pas à jour et ne m'en sert jamais. Mais il est bien installé depuis le début. Et je ne vois pourtant pas trace de la ddl "Ieframe.dll". Bizarre bizarre non ?

Je vérifierais que sur les autres machines, l'existence ou non des contrôles suivants : "Microsoft Web Browser" et "Navigateur Web Microsoft". Ça me donnera de précieux indices je pense.

Bonne journée,

André
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
5 déc. 2011 à 10:07
Etonnant, en effet !

1) Peux-tu ouvrir ta base de registre et me dire ce que tu y trouves dans cette clé :
HKEY_CLASSES_ROOT\CLSID\{8856F961-340A-11D0-A96B-00C04FD705A2}\InProcServer32
?

2) attention (pour le cas où tu serais tenté de le faire) : garde-toi de télécharger depuis n'importe où ieframe.dll pour "faire des essais comparatifs", hein. Attends.. (je t'enverrai au besoin cette bibliothèque moi-même. Elle est sûre, sur ma machine ).


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
5 déc. 2011 à 10:30
Et autre chose qui me turlupine.
Je pense que tu as mal copié/collé, mais on ne sait jamais ===>>
un peu partout, tu as écrit "shdocvw.ddl", à commencer par ici :
J'obtiens le chemin suivant : "Emplacement C:\WINDOWS\system32\shdocvw.ddl"

Est-ce juste une faute de frappe ? (car si non ....ouille, peut-être).
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
SERIEUXETCOOL Messages postés 336 Date d'inscription dimanche 3 avril 2011 Statut Membre Dernière intervention 12 juin 2012 1
5 déc. 2011 à 20:58
Bonsoir, j'ai pu ouvrir la base de registre et vérifier ce que contenait le dossier "HKEY_CLASSES_ROOT\CLSID\{8856F961-340A-11D0-A96B-00C04FD705A2}\InProcServer32"

J'y trouve deux éléments :

-Un premier truc qui dit "par défaut", "C:\WINDOWS\system32\shdocvw.dll"
-Un second truc "ThreadingModel", Apartment"

J'y connais rien à ces choses la dsl Ucfoutu. J'espère que je répond à ta question avec ceci.

Ne t'en fait pas, je ne compte rien télécharger pour le moment sans être sur que ce soit la bonne voie de solution ;). Mais merci du conseil en tout cas. C'est cool.

Pour la chose qui te turlipinait^^...En effet j'ai mal recopié. Il s'agit bien "Emplacement C:\WINDOWS\system32\shdocvw.dll" Ce n'est pas une erreur de frappe, mais je pensais que c'était "ddl" et non "dll". Tir rectifié.

Je n'ai pas pu tester mon code sous d'autres machines pour le moment. Dès que j'en sais plus je le dit.

André
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
5 déc. 2011 à 21:13
et voilà donc !
C'est dans cette clé que l'on aurait du trouver :
Microsoft Web Browser

et il n'y est pas ! elle pointe directement vers la librairie shdocvw !
Pas étonnant que tu ne trouves pas le composant adéquat !
Je ne sais pas quelles sont les différentes manoeuvres conduites au fil du temps pour arriver à cette situation pour le moins bâtarde, mais ne saurait trop te conseiller de la corriger le plus rapidement possible :
=>> injection de la librairie ieframe.dll
==>> enregistrement de cette librairie
=>> PUIS ===>> rétablissement de la bonne clé.
Cela te permettra de développer du "plus transportable" que ce que tu développes à présent
Cela entraînera toutefois probablement la nécessité de revenir sur chacune des applis déjà développées et qui incluent ton curieux contrôle
Une chose est sûre : plus tu attendras, plus ce sera douloureux (autant te jeter de suite àç l'eau).


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
SERIEUXETCOOL Messages postés 336 Date d'inscription dimanche 3 avril 2011 Statut Membre Dernière intervention 12 juin 2012 1
5 déc. 2011 à 22:56
Un truc m'étonne toujours et encore...Pourquoi sur ma machine je n'ai pas accès au composant "Microsoft Web Browser" mais accès au composant "Navigateur Web Microsoft" ???

Et pourquoi sur le net l'on parle essentiellement du composant "Microsoft Web Browser" et jamais du composant "Navigateur Web Microsoft" ???

C'est un peu bizarre qu'aucun OS n'intègre par défaut les bons composants je trouve. Je ne demande rien d’exceptionnel si ce n'est un composant qui ne fait pas parti de la boite à outil par défaut ! Et en plus ce composant se trouve parfois sur certaines machines et parfois pas sur les OS. Rien ne me garanti donc une parfaite compatibilité du système si déjà de base mon système ne dispose pas le composant. Non ????

Je suis un peu dubitatif sur la conduite à tenir dans ces conditions. J'arrive pas à comprendre pourquoi certains OS possèdent "Microsoft Web Browser" et d'autres seulement "Navigateur Web Microsoft".

Si tu veux bien m'envoyer cette dll ainsi que le mode d'emploi pour l'instal. Mais bon rien que de savoir que je vais devoir retoucher le code ça ne me plais pas du tout. En espérant que les modifs sont faibles.

Merci pour ton analyse Ucfoutu. Ça va chercher loin je trouve quand même. C'est la première fois que j'ai osé ouvrir ma base de registre. C'est jamais bon signe je pense lol...

André
0
SERIEUXETCOOL Messages postés 336 Date d'inscription dimanche 3 avril 2011 Statut Membre Dernière intervention 12 juin 2012 1
6 déc. 2011 à 19:13
Bonsoir le forum,

Voici le message d'erreur obtenu sur un mac quand je lance la macro :

-Microsoft Forms : Impossible de charger les objets car ils ne sont pas disponible sur cette machine.

-Microsoft Visual Basic : Erreur d'exécution << 53 >> : Fichier introuvable : User 32

voili voila.

Quelle pourrait être la méthode pour identifier la présence ou non de la librairie "shdoc.dll" dans l'OS à l'ouverture de la macro ??? Une méthode qui fonctionnerait quel que soit l'OS bien entendu.

Ainsi, il me suffirait de vérifier la présence de cette librairie (c'est une librairie ce truc la ???) pour autoriser ou non l'ouverture du fichier Excel.

Qu'en pensez vous, quelles sont vos remarques ?


André
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
6 déc. 2011 à 19:59
Arrête de chercher à "trouver où peut bien ne pas se trouver ce que tu cherches", André.
Tu éviteras ainsi de perdre beaucoup de temps
Windows s'articule autour de son API ( Application Programming Interface interface de développement).
Cdtte API est principalement composée de DLL ( Dynamic Link Library Bibliothèque de liens dynamiques)
User32 = user32.dll et n'existe que sous Windows
Toute dll, de même que tout composant qui utiliserait User32.dll ne saurait fonctionner sans la présence de la librairie User32.dll de l'API de Windows. Elle est bien évidemment absente sous Mac !
Rechercher sous mac la présence ou l'absence d'une librairie de Windows est donc à la fois peine inutile et un non-sens ! On ne risque pas de l'y trouver.
C'est à cela que sert la compilation conditionnelle ! et si mac ===>> inutile (pardi) d'aller y voir ... si on y trouve des librairies de ... l'Api de ... Windows !
Je reviens demain avec de quoi te permettre d'avoir, de Microsoft directement, la librairie ieframe.dll.

Arrête de "fantasmer" (excuse-moi ... je veux rester doux, mais les mots m'échappent quelquefois) sur des mirages qui ne font que t'égarer.
Amitiés.
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
SERIEUXETCOOL Messages postés 336 Date d'inscription dimanche 3 avril 2011 Statut Membre Dernière intervention 12 juin 2012 1
6 déc. 2011 à 21:10
Ah ben voila ! Merci pour ton dernier message Ucfoutu. Je suis resté tard au boulot à chercher des choses qui n'existent pas sous Mac !!!

Les boules mdr.

Bon ben du coup je ne vais pas me casser la tête bien plus longtemps pour régler le cas "Mac"...Interdiction d'utiliser le fichier Excel sous Mac. J'utiliserais les infos que tu m'as donné sur la compilation conditionnelle pour parvenir à mes fins.

Reste tout de même à régler le point sur le fait que tous les Windows n'ouvrent pas non plus le fichier Excel pour le moment. On dirait que seuls les Windows XP semblent être full compatible. Mais bon comme tu me l'a bien dit, ça peut très largement être une coïncidence.

Faut que j'en sache plus sur "shdoc.dll". Je vais vérifier la présence de cette librairie sur un Windows Seven.

Je te tiens au courant ;)
0
SERIEUXETCOOL Messages postés 336 Date d'inscription dimanche 3 avril 2011 Statut Membre Dernière intervention 12 juin 2012 1
6 déc. 2011 à 22:14
je poste un lien très en rapport avec le programme que je rencontre. Youpi je ne suis pas seul lol ^^

La discussion engagée est très riche et complète ! Je n'ai pas fini de lire, mais j'en sais suffisamment pour dire que c'est important.

De ce que j'en sais, c'est lié à IE 7 !!! Tous les problèmes de compatibilité ont été rencontrés avec IE 7. Tous les gens ayant upgradé IE vers IE 7 ont rencontrés le souci de compatibilité avec les composants de leurs UserForm.

Sur ma machine perso j'utilise IE 6. Normal que je ne trouve pas trace de "ieframe.dll". Il vient avec IE 7 et ses nouvelles fonctionnalités. Et c'est la que tout foire. Je dois également vérifier sur les machines Windows ou le fichier n'a pas fonctionné si IE 7 était installé ou non. Et je pense avoir ma réponse !!! La réponse est oui mais je dois confirmer.

C'est donc IE 7 qui est la cause de tous ces problèmes.

Voici le lien que j'utilise actuellement :

http://social.msdn.microsoft.com/Forums/en-US/iewebdevelopment/thread/21935021-1dc7-445b-a829-b02489009aab


André
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
6 déc. 2011 à 22:32
Pas vraiment, André,
Il s'agit en fait là d'une autre aspect, dont je parlais plus haut !
Pour mémoire :
Il se peut enfin qu'il s'agisse d'une vieille version d'IE 6 qui, à l'occasion d'une mise à jour vers IE67, ait provoqué une modification erronée d'une clef de la base de registre (et que tout cela soit passé complètement inaperçu, surtout si la machine concernée passe par un autre navigateur).

La où, par contre, je ne suis pas du tout d'accord, c'est avec ce genre de "solution" que l'un des intervenants a proposé :
I found this solution on another site, and it worked for me.

In IE7, they have separated the library and code for the browser out of ieframe.dll. In the project references, I changed the reference for "Microsoft Internet Controls" from the ieframe.dll to shdocvw.ocx (browse for it in the same folder), saved my project, reopened it, and no longer received the errors.

C'est une erreur assez grave et non sans conséquences.

C'est là un problème bien connu de l'époque.
On y viendra, mais pas avant d'avoir réinstallé ieframe.dll


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
SERIEUXETCOOL Messages postés 336 Date d'inscription dimanche 3 avril 2011 Statut Membre Dernière intervention 12 juin 2012 1
6 déc. 2011 à 23:40
Je pense que je devrais ajouter des commentaires qui approuvent ce que tu rappel sur l'ancienne version de IE 6.

Je m'explique :

-Comme tu le sais, je hais IE. Il est installé sur ma machine car il est livré de base avec le système d'exploitation. Ma machine à plus de 5 ans maintenant ! Je ne me souviens plus vraiment la raison, mais j'ai le souvenir d'avoir refusé plusieurs fois la mise à jour vers IE 7. Il est donc possible que des modifications sommaires se soient effectuées pendant le téléchargement de la mise à jour; et qu'au dernier moment je refuse l'installation de cette dernière avec pour conséquence la modification de la base de registre à ce moment. Tout ce serait déroulé sous mes yeux sans que je ne puisse contrôler.

Ça colle avec ce que tu pense Ucfoutu. Du coup, finalement c'est peut être mon IE que je dois faire évoluer. Aujourd’hui très peu de gens sont dans mon cas je pense. Du coup IE 6 ne se retrouve installé que sur très peu de machines (Ça tiens la route ce que dis la ???). Conclusion, il me suffit de faire Windows Update, accepter la mise à jour critique pour migrer vers IE 7.

Ensuite si tout se passe comme prévu, dès que j'aurais installé IE 7 mon projet ne fonctionnera plus. Mais du coup j'aurais accès au composant "Microsoft Web Browser" et non plus "Navigateur Web Microsoft". Je vire mon Browser, le remplace par le nouveau et tout rentre dans l'ordre. Je ne pointerais plus vers "shdocvw.dll" mais "ieframe.dll".

Et comme "très peu de gens" utilisent IE < IE 7 je rend très simplement mon projet compatible. Finalement seul les machines utilisant IE < IE 7 ne pourront pas utiliser le fichier.

Je ne sais pas si mes propos tiennent la route. Je pense que oui mais bon... Je vais tester un truc qui présente un petit risque : Je vais faire comme je le sens en installant IE 7 pour voir ce qui arrive à mon projet. J'espère que je ne risque pas de tout foirer. Je vais faire des copies de sauvegarde entre temps.

Ah oui autre chose. J'en sais maintenant plus sur une machine ou mon code plantais. Mon code ne fonctionnais pas sur une machine Windows Seven 32 bit. J'ai vérifié, la machine est équipée de IE 9 !!! Les machines Windows Seven sont pré-livrées avec IE 8 minimum. Je ne sais pas si ça peut aider.

Du coup, on sait également que sur la machine Windows Seven 64 bit, il y avait soit IE 8 soit IE 9 dessus. Et mon code n'a pas fonctionné avec aucune de ces deux machines.

Aller je me jette à l'eau je passe à IE 7 ce soir. Je sens que plus rien ne vas fonctionner aie aie aie.

Je vous tiens au courant des résultats.

André
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
7 déc. 2011 à 00:51
1) Passe directement à IE8.
2) pas tout-à-fait comme tu penses. IEFrame.dll elle-même utilise shdocvw.dll . Elle l'appelle, mais avec des paramètres précis qui ne sont plus là lorsque tu te sers directement de shdocvw.dll. C'est celà, qui est gênant et rend tes applis difficilement portables.
Je crois (ne peux vérifier car je n'ai pas Access) que VBA/Access propose par contre un composant qui fait appel directement à shdocvw.dll (ce serait en fait Access qui définit les paramètres à passer). Le pense que c'est là la raison pour laquelle tu as trouvé ce composant "disponible", sans savoir qu'il n'y était présenté que pour Access. Et il n'aurait jamais dû normalement apparaître dans la boîte des composants supplémentaires pour Excel. Je ne sais pas comment il y est arrivé un jour (peux-être parce que se trouvait, parrallèlement, cochée la référence Access ? ou peut-être que tu as copié/collé ce composant depuis l'IDE de Access vers l'IDE de Excel ? ==>> je n'en sais fichtre rien ...)
Comme tu le sais, je hais IE.

Tu n'es pas le seul et je ne m'en sers jamais non plus !
Mais tant IEFrame.dll que shdocvw.dll sont des librairies livrées avec, librairies que tu retrouveras sur toutes les machines, sauf si supprimées volontairement.
Autant on peut s'insurger de ce que Microsoft tente d'imposer son navigateur, autant il nous faut nous taire si l'on décide d'en utiliser les outils (IEFrame) dans nos applis (personne ne nous y force !). Ru comprends ? (difficile de se plaindre de ne pas avoir à sa disposition, sur une autre voiture, le magnifique volant de la voiture dont on ne veut pas ).
C'est comme dans la chanson "Tu veux ou tu veux pas ? si tu veux, tu veux, si tu veux pas ... etc ..." et Microsoft est inattaquable sur ce point là.
OK installe IE8 et fais-le-moi savoir (quand fait) que nous allions jeter un petit coup-d'oeil dans la base de registre.


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
SERIEUXETCOOL Messages postés 336 Date d'inscription dimanche 3 avril 2011 Statut Membre Dernière intervention 12 juin 2012 1
8 déc. 2011 à 21:03
Voila voila..IE 8 est maintenant installé sur machine. Dsl du retard mais j'ai eu des journées de fou.


Voici comment je m'y suis pris :

-Création d'une sauvegarde de mon fichier Excel ou tout fonctionnait bien

-Téléchargement et Installation de IE 8 (IE 9 n'est pas compatible XP)

-Redémarrage du PC puis Windows Update

-Ensuite navigation sous IE 8 histoire d'activer l'ensemble

-Vérification de la base de registre

-Et enfin lancement de la macro comme d'hab



Voici maintenant les diverses constations et remarques :

Je sais maintenant pour quelle raison ma machine était équipée de IE 6. En fait j'utilise un fond d'écran qui est animé. J'ai toujours utilisé ce fond d'écran animé car je le trouvais class. Ça donnait du style aussi je trouvais. Sauf qu'à l'époque ou j'avais installé IE 7, mon fond d'écran ne fonctionnait plus et je devais utiliser une simple image statique proposé par Windows. Quand j'ai compris que ça venais de IE 7 et que je n'en servais jamais, alors j'avais désinstallé ce dernier. Je me suis retrouvé avec IE 6 ET mon fond d'écran animé fonctionnais de nouveau.
Maintenant que j'ai installé IE 8, c'est le même problème. J'ai de nouveau perdu le fond d'écran animé. Du coup j'ai mis une pauvre image pourri de XP. Ça fait chier tout de même ce IE ! Je déteste IE et si en plus rien qu'en l'installant il me détraque mes trucs. Piouf quel merd...!

Bref je me suis résigné à passer d'un fond d'écran animé à un fond statique. Tant pis pour moi.

Ensuite, je suis allé voir la base de registre. La dernière fois il y avait shdocvw.dll me semble t'il, maintenant il pointe vers ...\system32\ieframe.dll

Tout comme c'était prévisible.

J'ai donc lancé ensuite le fichier Excel et il n'y a pas eu de problème. Aucune erreur, le webbrowser fonctionnais très bien également. Bref tout allait bien.
Je suis aller dans l'userform qui contient le WebBrowser, j'ai ajouté les compléments à la palette de la boite à outils. Avant je ne trouvais uniquement "Navigateur Web Microsoft" maintenant je ne trouve plus que "Microsoft Web Browser". L'un à disparu au profil de l'apparition de l'autre.

J'ai également eu la curiosité de supprimer mes anciens Web Browser puis de les remplacer par le nouveau composant qui viens d’apparaitre dans la liste. Après lancement de la macro aucune différence. Du coup je dois les changer ou je ne change rien vis à vis des anciens "WebBrowser" ???



Demain soir je rentre chez moi et je pourrais tester la macro sous un XP qui contient IE 6 pour voir si sa plante ou pas. Je saurais ainsi si je dois brider ma macro en fonction de IE 6 ou pas.

Ucfoutu si tu as des remarques ou des commentaires sur la nouvelle situation je suis preneur.

André

Ps : Une dernière remarque tout de même, le fonctionnement de la macro à tout de même légèrement changé par rapport à avant. Avec IE 8, durant l’exécution de la macro je reçois le message chaque fois que je créé un graph. Le message est du genre "L'affichage du graph avec la mise en forme complexe de l'objet risque de prendre du temps. Voulez vous continuer avec cette forme ? " J'utilise des graphs avec des forms 3D (Biseau notamment). C'est pas bien gênant, mais il faut tout de même cliquer sur le message pour chaque graph du coup. Dommage...
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
9 déc. 2011 à 07:08
Bonjour André,
Avant je ne trouvais uniquement "Navigateur Web Microsoft" maintenant je ne trouve plus que "Microsoft Web Browser". L'un à disparu au profil de l'apparition de l'autre.

Rien de plus normal. C'est la situation précédente qui, elle, érait étrange !
Rappelle-toi ce que je t'en avais d'ailleurs dit :
Je crois (ne peux vérifier car je n'ai pas Access) que VBA/Access propose par contre un composant qui fait appel directement à shdocvw.dll (ce serait en fait Access qui définit les paramètres à passer). Le pense que c'est là la raison pour laquelle tu as trouvé ce composant "disponible", sans savoir qu'il n'y était présenté que pour Access. Et il n'aurait jamais dû normalement apparaître dans la boîte des composants supplémentaires pour Excel.

en ce qui concerne :
J'ai également eu la curiosité de supprimer mes anciens Web Browser puis de les remplacer par le nouveau composant qui viens d’apparaitre dans la liste. Après lancement de la macro aucune différence. Du coup je dois les changer ou je ne change rien vis à vis des anciens "WebBrowser" ???

Si tu as, comme je le comprends :
1) effacé ces composants sur l'userform
2) réinséré ('le bon composant, cette fois-ci) aevc le même nom que l'ancien
= >> tu as fort bien fait et c'est là la seule méthode propre .
En ce qui concerne ton post-scriptum : ===>> Euh ... aucun lien avec ni le contrôle Web Browser, ni avec IE !

Question, par ailleurs :
Lorsque tu dis :
Ensuite, je suis allé voir la base de registre. La dernière fois il y avait shdocvw.dll me semble t'il, maintenant il pointe vers ...\system32\ieframe.dll

Quelle(s) clé(s) as-tu vérifiée(s) ? (j'ai besoin de le savoir pour déterminer s'il est utile ou non qu'on aille y faire un petit tour).
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
9 déc. 2011 à 08:33
Autre chose, à propos de ton post-scriptum ===>>
Je ne sais pas pourquoi, mais j'ai très vaguement l'impression de ce que ce problème était déjà présent antérieurement et qu'il avait été contourné par une solution que je t'avais donnée, en te précisant même que je ne l'aimais pas.
Il est vraisemblable que tu as modifié l'ordre de déroulement des choses dans la partie concernée de ton code) et qu'il faille donc tout simplement placer ailleurs le Sendkeys que je t'y avait fait ajouter
Mais ne mélangeons pas les choses. ICI, ne traitons que ton contrôle Web Browser, pour rester cohérents.


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
SERIEUXETCOOL Messages postés 336 Date d'inscription dimanche 3 avril 2011 Statut Membre Dernière intervention 12 juin 2012 1
9 déc. 2011 à 14:49
Bonjour le Forum, Ucfoutu

Je suis content de voir que la situation actuelle semble plus "normal" que la situation précédente. C'est déjà dans le bon sens.


Si tu as, comme je le comprends :
1) effacé ces composants sur l'userform
2) réinséré ('le bon composant, cette fois-ci) aevc le même nom que l'ancien
=>> tu as fort bien fait et c'est là la seule méthode propre.


C'est bien ce que j'ai fait.

J'ai vérifié la même clé dont tu m'avais parlé la dernière fois. Celle-ci :

HKEY_CLASSES_ROOT\CLSID\{8856F961-340A-11D0-A96B-00C04FD705A2}\InProcServer32


En ce qui concerne le post scriptum sur l'apparition du message... Il faut savoir qu'avec IE 6 j'ai en effet eu ce problème mais qu'il avait finit par être corrigé. Quand j'ai installé IE 8 et lancé la macro j'ai de nouveau eu ce souci. Entre temps je n'ai RIEN changé. Soyons clairs, je ne mélange rien la. Le problème est survenu à au passage de IE 6 vers IE 8. C'est une conséquence du changement.
Mais ce n'est pas bien grave. Je vais essayer de réparer tout ça tranquillement ce weekend. J'ai déjà une idée pour résorber définitivement le problème ;)


De plus j'ai testé le nouveau code sou XP et IE 6 et ça à bugé à un endroit (pas sur le WebBroser) mais je pense pouvoir la encore trouver une solution. Bref le passage de IE 6 à IE 8 va me faire travailler un peu plus pour les modifications. Tant pis. Au moins comme ça je serais compatible.


André
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
9 déc. 2011 à 15:50
Bien, pour la clé que tu as déjà vérifiée.

Il en reste une, dont je voudais que tu me dises le contenu :
HKEY_CLASSES_ROOT\TypeLib\{EAB22AC0-30C1-11CF-A7EB-0000C05BAE0B}\1.1\0\win32


Pour ce qui est du problème signalé par ton post-sciptum et dont je maintiens qu'il ne peut avoir de rapport avec le webbrowser : pourrais-tu déposer ton fichier quelque-part, que je puisse le voir ?
Ou au moins me montrer le bout de code qui déclenche l'apparition de cette avertissement (encore que je préfèrerais voir le fichier) ?
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
Rejoignez-nous