Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Classeur exel au premier plan

  • Initiateur de la discussion Initiateur de la discussion mickey
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

M

mickey

Guest
Bonjour a tous,

J'utilise la fonction SetForegroundWindow() afin de passer le classeur exel au premier plan pour executer la macro (fermeture automatique du classeur au bout d'une minute)
Cette macro fonctionne correctement sous win Xp et exel 2003, mais bug sous exel 2000 et la j'avoue je bloque.

Le debuger s'arret sur : lngRetour = SetForegroundWindow(Application.hWnd)
en erreur 438.Objet ne gère pas cette propriété ou méthode

Merci de votre aide
 
Re : Classeur exel au premier plan

Bonjour,

A tout hasard, ajoutez la déclaration API suivante

Code:
Private Declare Function FindWindow& Lib "user32" Alias "FindWindowA" ( _
 ByVal lpClassName As String, ByVal lpWindowName As String)

puis changez votre ligne de code par

Code:
lngRetour = SetForegroundWindow(FindWindow("xlMain", Application.Caption))

Cordialement.

PMO
Patrick Morange
 
Re : Classeur exel au premier plan

Bonjour,

Merci pour ton retour, mais avec la solution propose j'ai une erreur de fonction non définie sur FindWindow dans lngRetour = SetForegroundWindow(FindWindow("xlMain", Application.Caption)).
 
Re : Classeur exel au premier plan

Bonjour,

Avez-vous, en tête du module de code, fait la déclaration suivante (et, s'il s'agit d'un autre module, préférez Public à Private)

Code:
Public Declare Function FindWindow& Lib "user32" Alias "FindWindowA" ( _
 ByVal lpClassName As String, ByVal lpWindowName As String)

????

Cordialement.

PMO
Patrick Morange
 
Re : Classeur exel au premier plan

Impc ca marche, effectivement mes déclaration sont dans un autre module.

Pour mon infos perso quel est la différence avec le code que j avais ?
 
Re : Classeur exel au premier plan

Bonjour,

Code:
Application.hWnd

Cette propriété renvoie un objet de type Long désignant le handle de fenêtre
supérieure de la fenêtre Microsoft Excel. Propriété en lecture seule.

C'est une fonctionnalité d'Excel qui, d'après ce que je constate à la suite de votre question, est récente et n'existait pas sous Excel 2000.

La fonction FindWindow, quant à elle, appartient à l'Api Windows et existe depuis longtemps. La propriété hWnd d'Excel est, très vraisemblablement, issue de l'usage de cette Api.

Conclusion:
Si le programme doit-être utilisé sur différentes versions d'Excel, il est préférable de coder avec la version la plus ancienne, même si cela est moins aisé, afin d'éviter ce genre de problème.

Cordialement.

PMO
Patrick Morange
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…