Microsoft Office Forums

Go Back   Microsoft Office Forums > >

Reply
 
Thread Tools Display Modes
  #1  
Old 03-14-2022, 07:20 AM
jpl jpl is offline Standard Module, Class Module and UserForm Windows 7 64bit Standard Module, Class Module and UserForm Office 2010 32bit
Advanced Beginner
Standard Module, Class Module and UserForm
 
Join Date: Jan 2016
Location: France
Posts: 33
jpl is on a distinguished road
Default Standard Module, Class Module and UserForm

Hello.
I apologize for the length of the message

In a Word document, I create a standard module named Module1, a UserForm named UserForm1, and a class module named Classe1.
In Module1 I write the procedure
Code:
Sub MdCoucou()
    Debug.Print "Coucou de Module1"
  End Sub
In UserForm1 I write the procedure
Code:
Sub UFCoucou()
    Debug.Print "Coucou de UserForm1"
  End Sub
and in Class1 the procedure
Code:
Sub ClCoucou()
    Debug.Print "Coucou de Classe1"
  End Sub
1. In the VBE editor, if I put the cursor in the procedure MdCoucou, and type F5, the expected message is displayed normally in the Immediate window.
2. For the UFCoucou procedure, the previous method fails.


I now go to the Immediate window, and type
Code:
UserForm1.UFCoucou
The expected message is displayed.
3. For the ClCoucou procedure, the first method fails, and if I type
Code:
Classe1.ClCoucou
in the Immediate window, a message tells me
Runtime error '424':
Object required
So I type
Code:
Set cl = New Classe1
then
Code:
cl.clCoucou
and there it works.
Here are my questions:
How can these differences in behavior be explained?
For the class module, you must instantiate Classe1 to use the ClCoucou procedure.
I thought UserForms were special class modules. But method 2 shows that I am wrong.
What is the exact nature of UserForms? Class or object?
Thank you in advance for your answers


En Français
Bonjour.
Dans un document Word, je crée un module standard nommé Module1, une UserForm nommée UserForm1 et un module de classe nommé Classe1.
Dans Module1, j'écris la procédure
Code:
Sub MdCoucou()
    Debug.Print "Coucou de Module1"
  End Sub
Dans UserForm1, j'écris la procédure
Code:
Sub UFCoucou()
    Debug.Print "Coucou de UserForm1"
  End Sub
et dans Classe1 la procédure
Code:
Sub ClCoucou()
    Debug.Print "Coucou de Classe1"
  End Sub
1. Dans l'éditeur VBE, si je mets le curseur dans la procédure MdCoucou, et tape F5, le message attendu s'affiche normalement dans la fenêtre Exécution.
2. Pour la procédure UFCoucou, la méthode précédente échoue.
Je vais maintenant dans la fenêtre Exécution, et je tape
Code:
UserForm1.UFCoucou
Le message attendu s'affiche.
3. Pour la procédure ClCoucou, la première méthode échoue, et si je tape
Code:
Classe1.ClCoucou
dans la fenêtre exécution, un message me dit
Erreur dexécution '424' :
Objet requis
Je tape donc
Code:
Set cl = New Classe1
puis
Code:
cl.clCoucou
et là, ça fonctionne.
Voici mes questions :
Comment expliquer ces différences de comportements ?
Pour le module de classe, il faut instancier la Classe1 pour utiliser la procédure ClCoucou.
Je croyais que les UserForm étaient des modules de classe spéciaux. Mais la méthode 2 montre que je suis dans l'erreur.
Quelle est la nature exacte des UserForm ? Classe ou objet ?


Reply With Quote
Reply



Similar Threads
Thread Thread Starter Forum Replies Last Post
Userform variables in another module Justice Word VBA 1 08-26-2021 12:56 AM
Callback to function in a module Cosmo Word VBA 0 02-21-2018 03:41 PM
Standard Module, Class Module and UserForm Compile error in Module ksigcajun Word VBA 2 04-08-2015 06:44 AM
VBA Code in a UserForm module to delete a Command Button which opens the userform Simoninparis Word VBA 2 09-21-2014 03:50 AM
AZWizard Module - ?hidden module pcaldwell Word 1 08-22-2012 01:19 PM

Other Forums: Access Forums

All times are GMT -7. The time now is 08:42 AM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions Inc.
Search Engine Optimisation provided by DragonByte SEO (Lite) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
MSOfficeForums.com is not affiliated with Microsoft