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

Application.Caller ne fonctionne plus

Troudz

XLDnaute Occasionnel
Bonjour à tous,

J'ai un problème certainement tout bête mais pour lequel je n'arrive pas à trouver de solution.
J'ai relié un bouton (contrôle ActiveX, pas un bouton de formulaire) à la macro suivante :
Code:
Private Sub Bouton1_Click()
    MsgBox application.Caller
End Sub
Malheureusement, application.Caller me renvoi désormais l'erreur 2023.
A noter que, depuis quelques jours, le mot "application" ne semble plus reconnu et l'éditeur Vba ne lui met plus automatiquement de majuscule. Est - ce lié ?

Je vous remercie par avance pour votre aide,

Troudz
 
Dernière édition:

david84

XLDnaute Barbatruc
Re : Application.Caller ne fonctionne plus

Bonjour,
regarde dans l'aide d'Excel la façon dont Application.Caller doit être utilisée :
Malheureusement, application.Caller me renvoi désormais l'erreur 2023.
Peut-être pourrais-tu nous dire ce que tu voudrais qu'elle te renvoie parce que sans fichier exemple exposant clairement ta demande, nous n'avons pas les informations permettant de te répondre...
A+
 

job75

XLDnaute Barbatruc
Re : Application.Caller ne fonctionne plus

Bonjour Troudz,

Quand la macro est appelée par un objet, Application.Caller renvoie le nom de l'objet.

Mais uniquement quand cet objet a été créé par Formulaires.

Avec les objets ActiveX il faut une autre méthode, par exemple un Module de classe.

Edit : bonjour David

A+
 

Modeste geedee

XLDnaute Barbatruc
Re : Application.Caller ne fonctionne plus

Bonsour®

les 2 choses sont indépendantes !!!

application.caller n'est pas une propriété d'un activeX

l'activeX posséde ses propres événements dont Click !!!


sauf à fermer les yeux (mal-voyance, handicap etc...) en général on sait sur quel bouton on appuie ....
VB:
Private Sub Bouton_1_Click()
Application.Speech.Speak "L'appui a été effectué sur : " & Bouton_1.Name & "  le texte du bouton est : " & Bouton_1.Caption
MsgBox "appui effectué sur " & Bouton_1.Name & Chr(10), vbInformation, Bouton_1.Caption
End Sub
 

job75

XLDnaute Barbatruc
Re : Application.Caller ne fonctionne plus

Re,

Voyez ce que donne le fichier joint avec un module de classe.

Les macros sont dans ThisWorkbook, Module1 et Classe1 (Alt+F11).

A+
 

Pièces jointes

  • Boutons ActiveX(1).xls
    38.5 KB · Affichages: 170

Troudz

XLDnaute Occasionnel
Re : Application.Caller ne fonctionne plus

Bonjour David, Job et Modeste et merci pour vos réponses

@David : Merci pour ce copier coller de l'aide. J'ai un soucis sur mon poste depuis de longs mois, l'ouverture de l'aide fait planter Excel. Malgré mes demandes répétées, l'informatique n'a toujours pas résolu le problème.
Je voudrais simplement récupérer le nom du bouton ayant déclenché la macro afin d'en modifier le comportement et de factoriser au maximum mon code.

@Job : J'étais persuadé de l'avoir déjà utilisé avec des contrôles ActiveX d'où mon entêtement. Merci pour l'info et pour ton fichier, je vais essayer de voir ce que je peux faire via un module de classe.

@Modeste : Ce n'est pas une question d'handicap (laissons les handicapés tranquilles, ils n'ont rien demandé), c'est une question de simplifier et factoriser au maximum mon code.
 

Modeste geedee

XLDnaute Barbatruc
Re : Application.Caller ne fonctionne plus

Bonsour®
Ce n'est pas une question d'handicap (laissons les handicapés tranquilles, ils n'ont rien demandé), c'est une question de simplifier et factoriser au maximum mon code.


si tu travailles dans une entreprise de moyenne importance (soumise à quotas concernés), la prise en compte des handicaps doit être intégrée dés la conception des applications.
Windows permet justement une approche possible permettant un accès à un plus large éventail de personnes...


une application est un juste milieu entre l'adéquation aux besoins et la mise en œuvre raisonnée du cahier des charges
(pas de fioritures, mais une ouverture vers évolutivité et maintenance, le confort du programmeur n'est qu'un facteur minime)
 

david84

XLDnaute Barbatruc
Re : Application.Caller ne fonctionne plus

Bonjour Gérard, Modeste geedee,
Je voudrais simplement récupérer le nom du bouton ayant déclenché la macro afin d'en modifier le comportement et de factoriser au maximum mon code.
Avant d'envisager d'autres solutions est-ce que simplement
Code:
Private Sub CommandButton1_Click()
MsgBox CommandButton1.Name
End Sub
ne suffit pas ?
Si tu ne modifies pas le nom du bouton après avoir créé le code tu peux récupérer simplement ce nom et le stocker dans une variable.
A+
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…