× Aidez la recherche contre le COVID-19 avec votre ordi ! Rejoignez l'équipe PC Astuces Folding@home
 > Tous les forums > Forum Bureautique
 Macro VBA Excel : incohérence de fonctionnement/non fonctionnementSujet résolu
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
Pegase7845
  Posté le 18/02/2017 @ 23:39 
Aller en bas de la page 
Petit astucien

Bonjour,

J'ai un curieux problème, j'essaie de résumer.

Il y a plusieurs années j'ai créé un gros fichier pour la compta d'une association, avec un très grand nombre de macros.

Ce fichier a été créé avec Office 2002 et 2003 et fonctionne parfaitement. Aujourd'hui je veux l'utiliser avec Office 2013 mais j'ai des problèmes.

Un exemple, dans une des macros j'ai écrit pour afficher la date du jour dans un bouton

'Caption du bouton aujourd'hui

FrmSaisie.cmdAujour.Caption = Format(Date, "dd/mm/yy")

Cette ligne de code provoque le message d'erreur suivant en surlignant la variable Date.
Cette variable semble inconnue

Pour faire un essai, j'ai ajouté un module de test dans lequel j'ai mis le code suivant :

Sub test()
Tdate = Format(Date, "dd/mm/yy")
MsgBox Tdate
End Sub

Si je l'exécute j'ai le même message d'erreur.

Par contre si je crée le même module de test dans un nouveau fichier, je n'ai pas de message d'erreur et le MsgBox m'affiche la bonne valeur.

Ce phénomène, avec le même message d'erreur, se produit pour au moins une autre commande dans un autre module

Par exemple :

Debut = ActiveSheet.Index

Si quelqu'un a une idée je lui en serai reconnaissant
Merci

Pégase



Modifié par Pegase7845 le 19/02/2017 13:49
Publicité
ferrand
 Posté le 18/02/2017 à 23:57 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Bonsoir,

Difficile car pas de raison que la fonction Date ne fonctionne pas telle qu'elle est utilisée, ou que la propriété Index ne renvoie pas une valeur d'index...

Ce n'est pas le code qui est en cause, il faut donc examiner le contexte d'exécution, donc le fichier...

Cordialement.

Pegase7845
 Posté le 19/02/2017 à 00:17 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Merci ferrand de ta réponse.

Je pensais bien que tu passerais par là mais pas aussi vite ! Bravo...

Je vois que nous sommes au moins 2 noctambules...

Je vais dormir, demain je te ferais part d'autres constatations que je n'ai pas précisé dans un premier temps pour ne pas trop alourdir ce premier message.

Merci cordialement

Titus68
 Posté le 19/02/2017 à 01:40 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Au niveau de Visual Basic, peut-être qu'une ou plusieurs références n'existent plus ou ne sont plus de la même version (outils -> références).

S'il y a des références externes, faire aussi attention si ton excel est en x64 alors que certaines références se rapportent à des objets en 32 bits ?

Mais là comme çà difficile effectivement d'en dire plus.



Modifié par Titus68 le 19/02/2017 01:41
Pegase7845
 Posté le 19/02/2017 à 15:02 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonjour,

En premier pour répondre à Titus

peut-être qu'une ou plusieurs références n'existent plus ou ne sont plus de la même version

Oui il doit y avoir des pb de références car en faisant des essais j'ai réussi (sans trop savoir comment, et je n'aime pas cela ) à faire fonctionner le module cité dans mon 1er message

Sub test()Tdate = Format(Date, "dd/mm/yy")MsgBox TdateEnd Sub

Mais il reste d'autres fonctiosn qui refusent de fonctionner avec le même message, tel que la ligne ci-dessous

test = Sheets("Setup").Range("B16")

Qui pourtant ne présente rien de particulier...

Parfois lorsque je veux cocher une référence il me demande d'abord d'enregistrer le projet, mais comme j'ai mis des fonctions à réaliser avant de l'enregistrement dans "Private Sub Workbook_BeforeSave..." j'ai l'impression que çà bloque.

Mon excel est en 32 bits comme celui d'origine (Excel 2002/2003)

Mes compléments promis à ferrand hier soir.

J'ai 2 PC un PC Principal sous W10 64bits sur lequel il y a quelques temps j'ai copié mon fameux fichier Finance_2016.xls pour l'utiliser avec Excel 2013. Celui-ci ne fonctionnant pas (même type de pb : fonction refusée), si je me souviens bien j'ai désinstaller complètement Office 2013 et réinstaller 2003.
Puis j'ai installer des modules particuliers comme mscomct2.ocx et j'en ai fait l'activation (je ne suis pas sur que ce soit le bon terme) du type regsvr32 c:\windows\System32\MSCOMCT2.OCX

Tout fonctionnait bien, puis j'ai ré-installé Office 2013 dans un second répertoire différent de celui de Office 2003 (dans mon idée, pour ce fichier si ça ne fonctionne pas avec 2013, ça fonctionnera avec 2003) et pas de pb de fonctionnement pour mon fichier Finance_2016.xls avec Excel 2013. C'était magnifique !

Ces derniers jours j'ai voulu refaire la même manip sur un PC Secondaire sous W10 (que je suis en train de refaire et qui doit partir à la campagne) et là je n'y arrive pas.
Il est vrai que j'ai voulu ré-essayé directement avec Office 2013 : échec, désinstallation de 2013, ré-installation de 2003 puis de 2013 pour arrivé à ce jour.

Je continue de chercher et vous tiendrai au courant, mais si vous avez des idées...

Merci à vous bon dimanche.

Pégase

Titus68
 Posté le 19/02/2017 à 18:21 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Ton PC est W10 x64, et donc tu as installé Excel 2013 x86 (32 bits).

Pour le ficher mscomct2.ocx, vu qu'il doit s'agir d'une version 32 bits, il faudrait plutôt le copier sous : c:\Windows\syswow64 et pour l'enregistrer faire :

c:\windows\syswow64\regsvr32.exe c:\windows\syswow64\mscomct2.ocx

Je ne pense pas que çà joue vraiment mais sait-on jamais.

Ensuite dans Excel et dans visual basic si dans Outils -> Référence, voir tu as bien Microsoft Windows Common Controls-2 6.0 (ou quelquechose comme çà) qui est coché si ton projet utilise mscomct2.ocx. Si tu ne l'as pas faire "parcourir" et chercher l'ocx sous c:\windows\syswow64.

ferrand
 Posté le 19/02/2017 à 21:00 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Bonsoir,

Dans la mesure où toutes les commandes incriminées relèvent des bibliothèques VBA et Excel, je ne crois pas trop à un problème de références. C'est toujours à vérifier lorsque ça plante, mais ne pas trop s'attendre à y trouver l'explication...

D'accord avec Titus sur l'OCX qui doit être placé dans syswow64 sur un sytème 64bits. Cela aurait entraîné une erreur de références lors de l'utilisation d'un de ces contrôles...

A suivre...

Titus68
 Posté le 19/02/2017 à 21:22 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

@Ferrand : sans plus d'infos, difficile effectivement de se prononcer, une piste ici :

https://msdn.microsoft.com/fr-fr/library/office/gg251321.aspx

Quand on cherche sur Google avec : Projet ou bibliothèque introuvable, il semble bien que cela soit une référence utilisée mais manquante.

Peut-être que, par exemple, que depuis Excel il y a un appel à Outlook, alors qu'Outlook n'est pas installé sur le PC ou un truc comme çà ?

Pegase7845
 Posté le 19/02/2017 à 23:19 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonsoir et merci à vous deux de vous pencher sur mon problème.

Le calendrier "appelé" par mscomct2.ocx fonctionne correctement.

J'avais vérifier avant la proposition de Titus j'avais copié mscomct2.ocx à la fois dans dans C:\Windows\System32 et dans C:\Windows\SysWOW64 , mais je ne sais plus si je l'ai enregistré pour les 2 cas.

Demain je vais le dés-enregistrer (je crois qu'il faut ajouter le commutateur /u) et faire des essais.

Il y a quand même des choses bizarres avec Excel 2013 comme je l'ai écrit dans mon message du 19/02/2017 à 15:02 le code test = Sheets("Setup").Range("B16") >> Erreur de Compilation Projet ou compilation introuvable.
Si je change test en testx plus de problème, comme si test était une variable réservée.
Bon je verrai cela plus tard, pour l'instant je reste avec testx.

Je vais peut-être remettre tout au propre (j'ai une image disque d'avant l'instal de Office) et bien noter ce que j'installe avec vérif à chaque fois. Mais comme cela va me prendre un peu de temps je ne pourrais peut-être pas y travailler avant quelques jours, en plus le préside notre AG vendredi prochain, j'ai donc un peu de boulot...

Mais je vous tiendrai au courant et merci de votre aide.

Cordialement
Pégase

Publicité
Pegase7845
 Posté le 21/02/2017 à 00:49 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonsoir,

J'ai pu reprendre mes investigations sur un win 10 tout neuf, tout propre !

J'ai installé Office 2013 (et seulement lui) puis copié mscomct2.ocx dans C:\Windows\SysWOW64.
Je l'ai enregistré comme il se doit via regsvr32 c:\windows\SysWOW64\MSCOMCT2.OCX


Puis j'ai activer les macros complémentaires comme je le faisais avec Excel 2003, sauf que j'ai eu du mal à les retrouver car la fonction est bien cachée, pour info il faut aller dans Fichier > Options > Compléments > Gérer compléments Excel > Atteindre (c'était plus simple sous 2003 !)

Et là tout fonctionne correctement. Vos messages m'ont permis de me sortir la tête de l'eau.

Pour votre info voici les références qui sont cochées, je n'ai rien ajouté

Là s'arrête mes compétences, je sais qu'il faut que certaines références soient bien activées, mais je n'en connais pas les tenants et aboutissants.

En tout cas un grand merci à Ferrand et Titus68 pour votre aide et votre intérêt pour mon pb.

Cordialement
Pégase

PS : je mets en résolu

ferrand
 Posté le 21/02/2017 à 01:08 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Bonne continuation.

Titus68
 Posté le 21/02/2017 à 07:52 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Merci et à une prochaine !

Page : [1] 
Page 1 sur 1

Vous devez être connecté pour poster des messages. Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !


Les bons plans du moment PC Astuces

Tous les Bons Plans
14,99 €Hub Aukey USB C 6 en 1 (USB 3.0, HDMI 4K, lecteur SD et MicroSD) à 14,99 €
Valable jusqu'au 10 Août

Amazon fait une promotion sur le Hub Aukey USB C 6 en 1 qui passe à 14,99 €. Ce Hub à brancher sur un port USB C vous permettra d'ajouter 3 ports USB 3.0, un lecteur de cartes mémoire SD et MicroSD ainsi qu'un port HDMI 4K à votre ordinateur portable ou votre smartphone.


> Voir l'offre
35,29 €Compresseur portable autonome Xiaomi Mija à 35,29 €
Valable jusqu'au 11 Août

Gearbest fait une promotion sur le compresseur portable autonome Xiaomi Mija qui passe à 35,29 €. Ce compresseur à emporter facilement avec vous comporte un écran (où vous pourrez choisir la pression à atteindre en PSI ou BAR) une batterie de 2000 mA et vous permettra de gonfler vos jouets (41 pièces avec une charge), pneus de vélo, de trotinette, de moto (6 pneus avec une charge) et même de voiture (5 pneus avec une charge) facilement. Le câble est accompagné d'un embout pour valve Schrader et un adapteur Presta et une aiguille sont fournis. Le compresseur se recharge via une prise Micro USB.

Ce marchand sérieux se trouvant en Chine, la livraison peut prendre une vingtaine de jours. Vous pouvez payer par carte bancaire ou par Paypal (conseillé pour bénéficier de la garantie Paypal).


> Voir l'offre
209,99 €Disque dur Seagate NAS IronWolf 8 To à 209,99 €
Valable jusqu'au 13 Août

Cdiscount propose actuellement le disque dur Seagate Iron Wolf 8 To à 209,99 € livré gratuitement. Ce disque dur 3.5 pouces SATA III est adapté aux NAS et ordinateurs qui fonctionnent 24h/24. On le trouve ailleurs à partir de 260 €.


> Voir l'offre

Sujets relatifs
Fonctionnement de Libre Office
Mauvais fonctionnement de Glary Utilities PRO
Non fonctionnement du correcteur d'orthographe
Skype vérifier le fonctionnement de ma camera
fonctionnement de Money 2005
fonctionnement visionneuse pp 2007
Fonctionnement des checkbox sous powerpoint
fonctionnement clip animé avec power point 97
Fonctionnement en boucle d'un diaporame
Macro dans Outlook
Plus de sujets relatifs à Macro VBA Excel : incohérence de fonctionnement/non fonctionnement
 > Tous les forums > Forum Bureautique