[RESOLU] Question existantielle : Me. & MsForm(s). ??

  • Initiateur de la discussion Initiateur de la discussion Enerjp
  • 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 !

E

Enerjp

Guest
Bonjour tout le monde,

Je reviens vers vous après avoir potassé l'aide Excel mais je ne trouve pas tout.
Je ne vois pas trop à quoi sert l'instruction Msform. et le Me.
autant on a Msform.commandButton que Msform.dataobject, donc j'en déduit que ça remplace le nom d'un Userform?

POur Me. je crois que ça remplace application. mais ce n'est pas ça...

Bref ces deux commandes me perturbe. merci de m'éclairer.

Bonne journée à vous.
 
Dernière modification par un modérateur:
Re : Question existantielle : Me. & MsForm(s). ??

Bonjour Enerjp,
(...) Msform. et le Me. autant on a Msform.commandButton que Msform.dataobject, donc j'en déduit que ça remplace le nom d'un Userform? (...)
Ne serait ce pas plutôt MsForms ?

Pour mapomme, MsForms est une référerence à une bibliothèque qui contient des classes que l'on peut instancier (par exemple la classe commandButton - on crée une instance de la classe Msforms.commandButton en faisant glisser l'image du commandButton de la fenêtre "Boîte à outils" sur un Userform). Chez moi, elle est contenu au sein du fichier C:\Windows\system32\FM20.DLL et a pour petit nom Microsoft Forms 2.0 Object Library. Donc Msforms ne remplace pas le nom d'un Userform.



(...) POur Me. je crois que ça remplace application (...)
Me représente l'objet lui-même au sein de l'instanciation de sa classe me semble-t il.

Ex: dans le module de code de la feuille "Feuil1", placer le code suivant:
Code:
Private Sub Worksheet_Activate()
  MsgBox Me.Name
End Sub
Chaque fois qu'on sélectionne la feuille "Feuil1", on affiche le nom de la feuille (soit Feuil1). Si on place le même code dans le module de code d'une feuille nommée "Toto", alors à chaque activation de la feuille "Toto", on affichera son nom.

Pour un userform, Me represente le userform lui-même. L'instruction Unload Me, placée n'importe où dans le module de code du userform, le referme.

D'autres que moi,bien plus férus sur la chose, t'expliqueront sans doute mieux voire infirmerons mes propos.
 
Dernière édition:
Re : Question existantielle : Me. & MsForm(s). ??

Ah super merci. c'est bien plus clair maintenant.
Je vais passer une bonne journée grâce à toi^^.
OUi oui il y a un "s" tu à raison.

DOnc juste pour etre sur si j'ai dans un module de classe :

Code:
Public WithEvents GrChiffres As MSForms.CommandButton
Private Sub GrChiffres_Click()
  GrChiffres.Parent.Result = TypeChauffe.Result & GrChiffres.Caption
End Sub

cela affectera tout les bouton du classeur?

tansi que si je fais :

Code:
With UserForm1
For Each GrChiffres in MSForms.CommandButton
...
next
end with
...

cela n'affectera que les bouton de l'Userform1?

Le deuxième cas est faux je pense mais c'est pour le principe. (avec un module de classe je n'ai pas besoin de refaire ça à coté je crois)
Merci beaucoup en tout cas
 
Re : Question existantielle : Me. & MsForm(s). ??

Bonsour®

plutôt que d'écrire MSForms.CommandButton,utilisez Me.CommandButton ("moi" ; sous-entendu : le formulaire actif dans lequel se trouve le code VBA).

nb :
Dans les langages inspirés du C++ (Java, C#, PHP...), l'équivalent de Me s'appelle this.
 
- 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.
Retour