Dans ACCESS, pb références EXCEL

Dans ACCESS, pb références EXCEL - VB/VBA/VBS - Programmation

Marsh Posté le 07-02-2012 à 10:17:06    

Bonjour,
 
J'ai crée une base ACCESS que je diffuse au format MDE à tous mes collègues. Cette base ACCESS appelle des fonctions EXCEL. Sur certains postes de mes collègues, il y a EXCEL 2000 et non 2007; La référence à EXCEL Object 12.0 ne fonctionne donc pas.  
 
Comme je leur diffuse la base en MDE, ils n'ont pas moyen de changer les références eux même.
 
J'ai cherché pour localiser précisemment le fichier de référence en question mais cela n'a pas aboutit;cela semble plus compliqué que récupérer seulement par exemple le fichier de gestion des calendrier MSCAL.OCX, ce que je faisait jusqu'à présent.
 
Quelqu'un a-il une idée sur le sujet ?
 
Merci beaucoup,

Reply

Marsh Posté le 07-02-2012 à 10:17:06   

Reply

Marsh Posté le 08-02-2012 à 14:11:32    

C'est quoi comme fonctions Excel ?
 
Edit : sinon tu testes la présence de la version d'Excel et en fonction tu créés une référence...  [:le colonel moutarde:5]  

Code :
  1. References.AddFromFile("C:\Program Files\Microsoft Office\OfficeX\EXCEL.EXE" )


X est la version d'Excel que tu veux atteindre


Message édité par SuppotDeSaTante le 08-02-2012 à 14:16:16

---------------
Soyez malin, louez entre voisins !
Reply

Marsh Posté le 08-02-2012 à 20:46:55    

L'idée du test et de la création de référence me plait bien !
Je repasserai par là si ça ne résout pas le pb, mais ça devrait  
 
Merci bien.

Reply

Marsh Posté le 09-02-2012 à 00:03:30    

Le problème c'est que les fichiers de références n'ont pas le même chemin d'accès en fonction des windows : C:\Program Files... ou C:\Programmes ou C:\Program Files (x86)...

Reply

Marsh Posté le 09-02-2012 à 09:59:55    

Tu as plusieurs solutions pour tester la version.
 
La plus simple c'est d'utiliser l'objet Application d'Excel.
 
Je suppose, comme tu n'as pas répondu à ma question, que tu fais un :

Code :
  1. Set ExcelApp = CreateObject("Excel.Application" )


Si ce n'est pas le cas, bah il faudra le faire ;)
 
Ensuite pour récupérer la version, rien de plus simple :

Code :
  1. NumVersion = ExcelApp.Version


 
Et pour le chemin d'acces à Excel :

Code :
  1. CheminAcces = ExcelApp.Path


 
 
Tu peux tester dans un nouveau module ceci :

Code :
  1. Set ExcelApp = CreateObject("Excel.Application" )
  2. NumVersion = ExcelApp.Version
  3. CheminAcces = ExcelApp.Path
  4. MsgBox "La version d'Excel est : " & NumVersion & vbCrLf & vbCrLf & "Chemin d'accès : " & CheminAcces
  5. Set ExcelApp = Nothing


 
 
 


---------------
Soyez malin, louez entre voisins !
Reply

Marsh Posté le 10-02-2012 à 11:11:26    

Merci, j'avance petit à petit.  
 
La création de références fonctionne quand elles sont absentes, c'est bon.
 
le problème qui reste est que je n'arrive pas à identifier et supprimer les références manquantes :
 
Le code suivant me renvoie un erreur de chargement de DLL sans que je puisse obtenir le nom de la référence manquante.
 
Dim Ref As Reference
For Each Ref In Application.References
   MsgBox Ref.Name
   If Ref.IsBroken = True Then Application.References.Remove Ref
Next Ref

Reply

Marsh Posté le 10-02-2012 à 11:45:04    

Ah et au passage ... j'essaye de trouver la version d'outlook avec la même solution qu'au dessus pour Excel et ça ne fonctionne pas (normal ?)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed