OVH Cloud OVH Cloud

Références VBA qui interfèrent

5 réponses
Avatar
Gérard Ducouret
Bonjour,
Dans MS Project 2003, j'ai une procédure VBA qui lit une base de données
pour importer des données ds Project.
Les Références VBA sont :
- Visual Basic For Applications
- OLE Automation
- Microsoft Office 9.0 Object Library
Tout marche bien jusque là.

Je rajoute une procédure VBA qui exporte des données vers Excel (version
2003 sur mon PC)
Je crée donc une Référence VBA sur "Microsoft Excel 11.0 Object Library".
Tout marche bien sur mon PC équipé de Excel 2003.
Mais sur les autres PCs de l'entreprise, équipés de Excel 2000, plus rien ne
marche, y compris la 1ere procédure qui ne fait pas appel à Excel !

D'où vient le problème ? Comment faire pour que toutes les procédures VBA
fonctionnent quelle que soit la version d'Excel ?
Merci !

Gérard

5 réponses

Avatar
lSteph
Bonjour Gérard,

Je rajoute une procédure VBA qui exporte des données vers Excel (version
2003 sur mon PC)


Pour ce que tu as exposé très brièvement je ne sais pas mais d'une manière
générale:
mieux vaudrait réaliser tout ton projet dans la version inférieure, y
compris l'export de données...
Cela devrait être pris en charge dans la version 2003 dans la plupart des
cas ,
ce qui est moins souvent vrai, dans l'autres sens.

..Comment faire pour que toutes les procédures VBA
fonctionnent quelle que soit la version d'Excel ?


Là, amha, on peut toujours mettre un cierge à St Bill !

Cordialement.

lSteph

"Gérard Ducouret" a écrit dans le message
de news:
Bonjour,
Dans MS Project 2003, j'ai une procédure VBA qui lit une base de données
pour importer des données ds Project.
Les Références VBA sont :
- Visual Basic For Applications
- OLE Automation
- Microsoft Office 9.0 Object Library
Tout marche bien jusque là.

Je rajoute une procédure VBA qui exporte des données vers Excel (version
2003 sur mon PC)
Je crée donc une Référence VBA sur "Microsoft Excel 11.0 Object Library".
Tout marche bien sur mon PC équipé de Excel 2003.
Mais sur les autres PCs de l'entreprise, équipés de Excel 2000, plus rien
ne
marche, y compris la 1ere procédure qui ne fait pas appel à Excel !

D'où vient le problème ? Comment faire pour que toutes les procédures VBA
fonctionnent quelle que soit la version d'Excel ?
Merci !

Gérard




Avatar
Clément Marcotte
Bonjour

D'où vient le problème ?


Les références ne sont pas mises à jour automatiquement en cas de changement
de version.


Comment faire pour que toutes les procédures VBA
fonctionnent quelle que soit la version d'Excel ?
Merci !


Si c'est juste pour les références, essaie de passer par CreateObject() au
lieu de cocher les références.

Avatar
michdenis
Bonjour Gérard,

pour charger la référence à excel nonobstant la version de l'application,
utilise ce type de code :

On Error Resume Next
With ThisWorkbook.VBProject.References _
.AddFromGuid("{00020813-0000-0000-C000-000000000046}", 1, 5)
End With


Salutations!




"Gérard Ducouret" a écrit dans le message de news:
Bonjour,
Dans MS Project 2003, j'ai une procédure VBA qui lit une base de données
pour importer des données ds Project.
Les Références VBA sont :
- Visual Basic For Applications
- OLE Automation
- Microsoft Office 9.0 Object Library
Tout marche bien jusque là.

Je rajoute une procédure VBA qui exporte des données vers Excel (version
2003 sur mon PC)
Je crée donc une Référence VBA sur "Microsoft Excel 11.0 Object Library".
Tout marche bien sur mon PC équipé de Excel 2003.
Mais sur les autres PCs de l'entreprise, équipés de Excel 2000, plus rien ne
marche, y compris la 1ere procédure qui ne fait pas appel à Excel !

D'où vient le problème ? Comment faire pour que toutes les procédures VBA
fonctionnent quelle que soit la version d'Excel ?
Merci !

Gérard
Avatar
Gérard Ducouret
Merci à tous les trois !

Gérard
Avatar
Clément Marcotte
Sinon, il y a la compilation conditionnelle,

#if vba5 then

#Else

#end if


ou

if application.version = 8 then
....
....
elseif application.version = 9 then
....
....
elseif application.version = 10 then
....
....
else
....
....
end if

"Clément Marcotte" a écrit dans le message
de news:

Bonjour

D'où vient le problème ?


Les références ne sont pas mises à jour automatiquement en cas de
changement de version.


Comment faire pour que toutes les procédures VBA
fonctionnent quelle que soit la version d'Excel ?
Merci !


Si c'est juste pour les références, essaie de passer par CreateObject() au
lieu de cocher les références.