Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[VBA] Compilation conditionnelle et manipulation de fenêtre Windows

3 réponses
Avatar
HD
Bonjour,

Sur l'une de mes macros VBA je manipule des fenêtres Windows en activant
certaines fenêtre et en faisant fermer d'autres... Mon problème est que si
ces macros fonctionnaient parfaitement sur des postes avec Windows 98 et
Excel 97 j'ai maintenant des erreurs sur les postes avec Windows XP et Excel
2003...

Je sais que la solution passerait par une compilation conditionnelle mais je
ne sais pas:

1 ) Comment réaliser ma compilation conditionnelle
2 ) Quelles fonctions compatibles avec les nouveaux Excel mettre....

Merci d'avance pour votre aide
--
@+
HD

3 réponses

Avatar
Argyronet
Bonjour,

Avant de se lancer dans une telle direction, il serait intéressant de poser
des gestions d'erreurs afin d'intercepter celles-ci et agir en conséquence...
Avez-vous mis cela en place et si oui, quelles erreurs sont levées... ?
--
Argy { MVP }
http://argyronet.developpez.com/

Ce qui donne son sens à la communication, c´est la réponse que l´on obtient.
Si vous n´obtenez pas la réponse voulue, communiquez différemment



Bonjour,

Sur l'une de mes macros VBA je manipule des fenêtres Windows en activant
certaines fenêtre et en faisant fermer d'autres... Mon problème est que si
ces macros fonctionnaient parfaitement sur des postes avec Windows 98 et
Excel 97 j'ai maintenant des erreurs sur les postes avec Windows XP et Excel
2003...

Je sais que la solution passerait par une compilation conditionnelle mais je
ne sais pas:

1 ) Comment réaliser ma compilation conditionnelle
2 ) Quelles fonctions compatibles avec les nouveaux Excel mettre....

Merci d'avance pour votre aide
--
@+
HD





Avatar
anonymousA
Bonjour,

la compilation conditionnelle existe mais à ma connaissance est faite
pour tester si on est en VBA5 ou VBA6 ce qui n'a plus d'importance à
partir d'Excel 97, du moins si ma mémoire de mes lectures ( en effet,
j'ai Excel 2000) est bonne.
Pour le reste, sur l'utilisation de méthodes ou/et propriétés nouvelles
selon les versions, ce qui m'étonne c'est qu'en règle générale il y a
une compatibilité ascendante , donc ce qui fonctionnait avec une
ancienne version fonctionne avec une version plus récente. Ceci dit, si
je me trompe, il faut sans doute t'en remettre à ce que Argyronet t'a
indiqué
A+

Bonjour,

Sur l'une de mes macros VBA je manipule des fenêtres Windows en activant
certaines fenêtre et en faisant fermer d'autres... Mon problème est que si
ces macros fonctionnaient parfaitement sur des postes avec Windows 98 et
Excel 97 j'ai maintenant des erreurs sur les postes avec Windows XP et Excel
2003...

Je sais que la solution passerait par une compilation conditionnelle mais je
ne sais pas:

1 ) Comment réaliser ma compilation conditionnelle
2 ) Quelles fonctions compatibles avec les nouveaux Excel mettre....

Merci d'avance pour votre aide
--
@+
HD




Avatar
Ange Ounis
Excel 97 c'est VBA5 et Excel 2000 et + c'est VBA6 :

Sub essai()
#If VBA6 Then
'Excel 2000/2002/2003
MsgBox "VBA v6"
#Else
'Excel 97 (et peut-être 95)
MsgBox "VBA v5"
#End If
End Sub

Ceci dit, si ton code fonctionne correctement avec Excel 97 il devrait
fonctionner sans erreur avec Excel 2003. C'est l'inverse qui peut poser problème
(une macro élaborée avec Excel 2003 et exécutée avec Excel 97).
Par contre, c'est le passage de Win 98 à Win XP que je soupçonnerais en premier
lieu d'être responsable des erreurs constatées. Pour aller un peu plus loin, une
description succincte de la ou des erreurs dont tu parles pourrait aider.
Si ce c'est pas le système, ça peut aussi être l'antivirus et ses paramétrages
qui sont sûrement différents sur les postes Win XP de ceux qui tournent avec Win
98. Certains antivirus (Kaspersky par exemple) sont des vraies plaies lorsqu'ils
sont utilisés avec leurs réglages par défaut.

----------
Ange Ounis
----------

Bonjour,

Sur l'une de mes macros VBA je manipule des fenêtres Windows en activant
certaines fenêtre et en faisant fermer d'autres... Mon problème est que si
ces macros fonctionnaient parfaitement sur des postes avec Windows 98 et
Excel 97 j'ai maintenant des erreurs sur les postes avec Windows XP et Excel
2003...

Je sais que la solution passerait par une compilation conditionnelle mais je
ne sais pas:

1 ) Comment réaliser ma compilation conditionnelle
2 ) Quelles fonctions compatibles avec les nouveaux Excel mettre....

Merci d'avance pour votre aide
--
@+
HD