XL 2013 Récupération contrôle active X dans un module

David73

XLDnaute Nouveau
Bonjour à tous,
j'ai une question assez simple mais dont je ne trouve pas la solution.
J'ai un contrôle ActiveX (zone de texte) dans une feuille Excel ; il se nomme "TextBox1"

Je souhaiterais récupérer directement la valeur de ce contrôle (TextBox1.Value) dans un module VBA ou je fais des calculs.
Mais je ne vois comment faire ?
Merci beaucoup pour votre aide
 

jmfmarques

XLDnaute Accro
Bonjour
Une "zone de texte" n'est pas un activex. Je suppose donc qu'il s'agitb d'une contrôle Textbox.

regarde ce que fait ceci (où textbox1 est le nom donné à la textbox) :
dans un module standard
VB:
Sub toto(ctl As MSForms.TextBox)
  MsgBox ctl.Name
End Sub
et l'appel, ainsi, de cette procédure :
Code:
toto TextBox1
 

Dranreb

XLDnaute Barbatruc
Essayez en ajoutant ByVal devant le paramètre.
(À la base TextBox1 n'est pas une TextBox mais un OLEObject, puisqu'il nest pas dans le milieu naturel d'une TextBox qu'est un UserForm et qu'il lui faut donc un objet intermédiaire support)
Si ça ne va toujours pas, à l'appel précisez en plus TextBox1.Control.
Si pas accepté OLEObjects("TextBox1").Control
Notez que si la Sub n'a besoin que de sa valeur, transmettez celle ci, ce sera plus simple.
(Toujours ByVal pour ne pas s'offrir comme cible au Type d'argument ByRef incompatible)
 
Dernière édition:

jmfmarques

XLDnaute Accro
Bonjour
le code que j'avais montré supposait que son appel était fait depuis le module de code de la feuille contenant la textbox concernée.
il est tout simplement clair que si l'appel se fait depuis un autre module de code, il est alors nécessaire de préciser le conteneur (ici une feuille de calcul) de la textbox concernée. (B.A.BA)
 

Discussions similaires

Statistiques des forums

Discussions
312 098
Messages
2 085 265
Membres
102 844
dernier inscrit
atori2