Bonjour
Allez, va pour un mini cours.
T'es prêt ?
==> Un module est destiné à contenir:
- des instructions (sub)
- des fonctions (function)
- des constantes, et enumérations de constantes (const / enum)
- des variables (dim / private / public)
- des types (type)
- des déclarations d'API (declare)
==> Un module de classe est un 'moule à objet'. Il doit donc définir
l'ensemble des méthodes, propriétés ... qui seront propre à tous les objets
Prenons un exemple.
imaginons que nous ayons besoin d'un objet employé.
Cet objet aura des caractéristiques (Nom, Prénom, date de naissance, date
d'embauche, ancienneté)
Cet objet pourra envisager des actions (Travailler)
Et même des évènements pourront survenir (s'endormir) ;)
Mise en application :
Tu crées une classe EMPLOYES
Dedans, tu peux te copier le code suivant :
'===ÞBUT DU CODE D'EXEMPLE
Option Explicit
'--> Déclaration d'un évènement possible :
Public Event Sendormir()
'--> Définir des variables pour le module de classe, pour son
fonctionnement interne
Private m_bDormant As Boolean
'-->Pour définir des propriété simplement, tu peux faire des variable
publiques
Public Nom as String
Public Prenom as String
Public DateNaissance as Date
Public DateEmbauche as Date
'-->Pour définir des propriété un peu plus compliquées
' (moi, je fais simple, mais par contre, toi
' tu rechercheras plus d'infos dans l'aide hein ;))
Public Property get Anciennete() as Double
Anciennete=(Date()-DateEmbauche)/365.25
End Property
'--> Pour définir une méthode, tu fais une Function ou une Sub
Public Sub Travailler(NbHeures as Long)
Static NbTotal as Long
if m_bDormant then
m_bDormantúlse
NbTotal=0
Else
NbTotal = NbTotal + NbHeures
End if
If NbHeures > 12 then
m_bDormant=True
RaiseEvent Sendormir()
ELse
MsgBox Nom & " " & Prenom &" en est maintenant à " & NbHeures de
travail !"
End if
End Sub
'=====FIN DU CODE D'EXEMPLE
Maintenant, si tu veux l'utiliser, tu peux dans un module standard faire :
'===ÞBUT DU CODE D'EXEMPLE
Sub Test ()
Dim x as new EMPLOYE
Dim i as Long
x.DateNaissanceÚteSerial(1960,7,14)
x.DateEmbaucheÚteSerial(1983,9,1)
x.Nom="Dupont"
x.Prenom="Jean"
For i = 1 to 12
x.travailler i
Next
End Sub
'=====FIN DU CODE D'EXEMPLE
Voilà ...
Maintenant, si tu voulais utiliser l'évènement, tu devrais déclarer, dans
la zone de déclarations d'un module de classe (UserForm / Sheet /
Public WithEvents x as EMPLOYE
et à un moment donné, initialiser ta variable x en faisant :
Set x=New EMPLOYE
Ca ira ?
Bonjour
Allez, va pour un mini cours.
T'es prêt ?
==> Un module est destiné à contenir:
- des instructions (sub)
- des fonctions (function)
- des constantes, et enumérations de constantes (const / enum)
- des variables (dim / private / public)
- des types (type)
- des déclarations d'API (declare)
==> Un module de classe est un 'moule à objet'. Il doit donc définir
l'ensemble des méthodes, propriétés ... qui seront propre à tous les objets
Prenons un exemple.
imaginons que nous ayons besoin d'un objet employé.
Cet objet aura des caractéristiques (Nom, Prénom, date de naissance, date
d'embauche, ancienneté)
Cet objet pourra envisager des actions (Travailler)
Et même des évènements pourront survenir (s'endormir) ;)
Mise en application :
Tu crées une classe EMPLOYES
Dedans, tu peux te copier le code suivant :
'===ÞBUT DU CODE D'EXEMPLE
Option Explicit
'--> Déclaration d'un évènement possible :
Public Event Sendormir()
'--> Définir des variables pour le module de classe, pour son
fonctionnement interne
Private m_bDormant As Boolean
'-->Pour définir des propriété simplement, tu peux faire des variable
publiques
Public Nom as String
Public Prenom as String
Public DateNaissance as Date
Public DateEmbauche as Date
'-->Pour définir des propriété un peu plus compliquées
' (moi, je fais simple, mais par contre, toi
' tu rechercheras plus d'infos dans l'aide hein ;))
Public Property get Anciennete() as Double
Anciennete=(Date()-DateEmbauche)/365.25
End Property
'--> Pour définir une méthode, tu fais une Function ou une Sub
Public Sub Travailler(NbHeures as Long)
Static NbTotal as Long
if m_bDormant then
m_bDormantúlse
NbTotal=0
Else
NbTotal = NbTotal + NbHeures
End if
If NbHeures > 12 then
m_bDormant=True
RaiseEvent Sendormir()
ELse
MsgBox Nom & " " & Prenom &" en est maintenant à " & NbHeures de
travail !"
End if
End Sub
'=====FIN DU CODE D'EXEMPLE
Maintenant, si tu veux l'utiliser, tu peux dans un module standard faire :
'===ÞBUT DU CODE D'EXEMPLE
Sub Test ()
Dim x as new EMPLOYE
Dim i as Long
x.DateNaissanceÚteSerial(1960,7,14)
x.DateEmbaucheÚteSerial(1983,9,1)
x.Nom="Dupont"
x.Prenom="Jean"
For i = 1 to 12
x.travailler i
Next
End Sub
'=====FIN DU CODE D'EXEMPLE
Voilà ...
Maintenant, si tu voulais utiliser l'évènement, tu devrais déclarer, dans
la zone de déclarations d'un module de classe (UserForm / Sheet /
Public WithEvents x as EMPLOYE
et à un moment donné, initialiser ta variable x en faisant :
Set x=New EMPLOYE
Ca ira ?
Bonjour
Allez, va pour un mini cours.
T'es prêt ?
==> Un module est destiné à contenir:
- des instructions (sub)
- des fonctions (function)
- des constantes, et enumérations de constantes (const / enum)
- des variables (dim / private / public)
- des types (type)
- des déclarations d'API (declare)
==> Un module de classe est un 'moule à objet'. Il doit donc définir
l'ensemble des méthodes, propriétés ... qui seront propre à tous les objets
Prenons un exemple.
imaginons que nous ayons besoin d'un objet employé.
Cet objet aura des caractéristiques (Nom, Prénom, date de naissance, date
d'embauche, ancienneté)
Cet objet pourra envisager des actions (Travailler)
Et même des évènements pourront survenir (s'endormir) ;)
Mise en application :
Tu crées une classe EMPLOYES
Dedans, tu peux te copier le code suivant :
'===ÞBUT DU CODE D'EXEMPLE
Option Explicit
'--> Déclaration d'un évènement possible :
Public Event Sendormir()
'--> Définir des variables pour le module de classe, pour son
fonctionnement interne
Private m_bDormant As Boolean
'-->Pour définir des propriété simplement, tu peux faire des variable
publiques
Public Nom as String
Public Prenom as String
Public DateNaissance as Date
Public DateEmbauche as Date
'-->Pour définir des propriété un peu plus compliquées
' (moi, je fais simple, mais par contre, toi
' tu rechercheras plus d'infos dans l'aide hein ;))
Public Property get Anciennete() as Double
Anciennete=(Date()-DateEmbauche)/365.25
End Property
'--> Pour définir une méthode, tu fais une Function ou une Sub
Public Sub Travailler(NbHeures as Long)
Static NbTotal as Long
if m_bDormant then
m_bDormantúlse
NbTotal=0
Else
NbTotal = NbTotal + NbHeures
End if
If NbHeures > 12 then
m_bDormant=True
RaiseEvent Sendormir()
ELse
MsgBox Nom & " " & Prenom &" en est maintenant à " & NbHeures de
travail !"
End if
End Sub
'=====FIN DU CODE D'EXEMPLE
Maintenant, si tu veux l'utiliser, tu peux dans un module standard faire :
'===ÞBUT DU CODE D'EXEMPLE
Sub Test ()
Dim x as new EMPLOYE
Dim i as Long
x.DateNaissanceÚteSerial(1960,7,14)
x.DateEmbaucheÚteSerial(1983,9,1)
x.Nom="Dupont"
x.Prenom="Jean"
For i = 1 to 12
x.travailler i
Next
End Sub
'=====FIN DU CODE D'EXEMPLE
Voilà ...
Maintenant, si tu voulais utiliser l'évènement, tu devrais déclarer, dans
la zone de déclarations d'un module de classe (UserForm / Sheet /
Public WithEvents x as EMPLOYE
et à un moment donné, initialiser ta variable x en faisant :
Set x=New EMPLOYE
Ca ira ?
vraiment costaud Maxence.
Bonnes fêtes.
Alpha
"Maxence HUBICHE" a écrit dans le message de news:Bonjour
Allez, va pour un mini cours.
T'es prêt ?
==> Un module est destiné à contenir:
- des instructions (sub)
- des fonctions (function)
- des constantes, et enumérations de constantes (const / enum)
- des variables (dim / private / public)
- des types (type)
- des déclarations d'API (declare)
==> Un module de classe est un 'moule à objet'. Il doit donc définir
l'ensemble des méthodes, propriétés ... qui seront propre à tous les
objets
émergeants de cette classe.Prenons un exemple.
imaginons que nous ayons besoin d'un objet employé.
Cet objet aura des caractéristiques (Nom, Prénom, date de naissance,
date
d'embauche, ancienneté)Cet objet pourra envisager des actions (Travailler)
Et même des évènements pourront survenir (s'endormir) ;)
Mise en application :
Tu crées une classe EMPLOYES
Dedans, tu peux te copier le code suivant :
'===ÞBUT DU CODE D'EXEMPLE
Option Explicit
'--> Déclaration d'un évènement possible :
Public Event Sendormir()
'--> Définir des variables pour le module de classe, pour son
fonctionnement internePrivate m_bDormant As Boolean
'-->Pour définir des propriété simplement, tu peux faire des variable
publiquesPublic Nom as String
Public Prenom as String
Public DateNaissance as Date
Public DateEmbauche as Date
'-->Pour définir des propriété un peu plus compliquées
' (moi, je fais simple, mais par contre, toi
' tu rechercheras plus d'infos dans l'aide hein ;))
Public Property get Anciennete() as Double
Anciennete=(Date()-DateEmbauche)/365.25
End Property
'--> Pour définir une méthode, tu fais une Function ou une Sub
Public Sub Travailler(NbHeures as Long)
Static NbTotal as Long
if m_bDormant then
m_bDormantúlse
NbTotal=0
Else
NbTotal = NbTotal + NbHeures
End if
If NbHeures > 12 then
m_bDormant=True
RaiseEvent Sendormir()
ELse
MsgBox Nom & " " & Prenom &" en est maintenant à " & NbHeures de
travail !"End if
End Sub
'=====FIN DU CODE D'EXEMPLE
Maintenant, si tu veux l'utiliser, tu peux dans un module standard faire
:
'===ÞBUT DU CODE D'EXEMPLE
Sub Test ()
Dim x as new EMPLOYE
Dim i as Long
x.DateNaissanceÚteSerial(1960,7,14)
x.DateEmbaucheÚteSerial(1983,9,1)
x.Nom="Dupont"
x.Prenom="Jean"
For i = 1 to 12
x.travailler i
Next
End Sub
'=====FIN DU CODE D'EXEMPLE
Voilà ...
Maintenant, si tu voulais utiliser l'évènement, tu devrais déclarer,
dans
la zone de déclarations d'un module de classe (UserForm / Sheet /
ThisWorkBook / ...) ta variable comme suit :
Public WithEvents x as EMPLOYE
et à un moment donné, initialiser ta variable x en faisant :
Set x=New EMPLOYE
Ca ira ?
vraiment costaud Maxence.
Bonnes fêtes.
Alpha
"Maxence HUBICHE" <mhms@club-internet.fr> a écrit dans le message de news:
EEDD8ED6-5766-4A20-9E21-46FD4E7916AB@microsoft.com...
Bonjour
Allez, va pour un mini cours.
T'es prêt ?
==> Un module est destiné à contenir:
- des instructions (sub)
- des fonctions (function)
- des constantes, et enumérations de constantes (const / enum)
- des variables (dim / private / public)
- des types (type)
- des déclarations d'API (declare)
==> Un module de classe est un 'moule à objet'. Il doit donc définir
l'ensemble des méthodes, propriétés ... qui seront propre à tous les
objets
émergeants de cette classe.
Prenons un exemple.
imaginons que nous ayons besoin d'un objet employé.
Cet objet aura des caractéristiques (Nom, Prénom, date de naissance,
date
d'embauche, ancienneté)
Cet objet pourra envisager des actions (Travailler)
Et même des évènements pourront survenir (s'endormir) ;)
Mise en application :
Tu crées une classe EMPLOYES
Dedans, tu peux te copier le code suivant :
'===ÞBUT DU CODE D'EXEMPLE
Option Explicit
'--> Déclaration d'un évènement possible :
Public Event Sendormir()
'--> Définir des variables pour le module de classe, pour son
fonctionnement interne
Private m_bDormant As Boolean
'-->Pour définir des propriété simplement, tu peux faire des variable
publiques
Public Nom as String
Public Prenom as String
Public DateNaissance as Date
Public DateEmbauche as Date
'-->Pour définir des propriété un peu plus compliquées
' (moi, je fais simple, mais par contre, toi
' tu rechercheras plus d'infos dans l'aide hein ;))
Public Property get Anciennete() as Double
Anciennete=(Date()-DateEmbauche)/365.25
End Property
'--> Pour définir une méthode, tu fais une Function ou une Sub
Public Sub Travailler(NbHeures as Long)
Static NbTotal as Long
if m_bDormant then
m_bDormantúlse
NbTotal=0
Else
NbTotal = NbTotal + NbHeures
End if
If NbHeures > 12 then
m_bDormant=True
RaiseEvent Sendormir()
ELse
MsgBox Nom & " " & Prenom &" en est maintenant à " & NbHeures de
travail !"
End if
End Sub
'=====FIN DU CODE D'EXEMPLE
Maintenant, si tu veux l'utiliser, tu peux dans un module standard faire
:
'===ÞBUT DU CODE D'EXEMPLE
Sub Test ()
Dim x as new EMPLOYE
Dim i as Long
x.DateNaissanceÚteSerial(1960,7,14)
x.DateEmbaucheÚteSerial(1983,9,1)
x.Nom="Dupont"
x.Prenom="Jean"
For i = 1 to 12
x.travailler i
Next
End Sub
'=====FIN DU CODE D'EXEMPLE
Voilà ...
Maintenant, si tu voulais utiliser l'évènement, tu devrais déclarer,
dans
la zone de déclarations d'un module de classe (UserForm / Sheet /
ThisWorkBook / ...) ta variable comme suit :
Public WithEvents x as EMPLOYE
et à un moment donné, initialiser ta variable x en faisant :
Set x=New EMPLOYE
Ca ira ?
vraiment costaud Maxence.
Bonnes fêtes.
Alpha
"Maxence HUBICHE" a écrit dans le message de news:Bonjour
Allez, va pour un mini cours.
T'es prêt ?
==> Un module est destiné à contenir:
- des instructions (sub)
- des fonctions (function)
- des constantes, et enumérations de constantes (const / enum)
- des variables (dim / private / public)
- des types (type)
- des déclarations d'API (declare)
==> Un module de classe est un 'moule à objet'. Il doit donc définir
l'ensemble des méthodes, propriétés ... qui seront propre à tous les
objets
émergeants de cette classe.Prenons un exemple.
imaginons que nous ayons besoin d'un objet employé.
Cet objet aura des caractéristiques (Nom, Prénom, date de naissance,
date
d'embauche, ancienneté)Cet objet pourra envisager des actions (Travailler)
Et même des évènements pourront survenir (s'endormir) ;)
Mise en application :
Tu crées une classe EMPLOYES
Dedans, tu peux te copier le code suivant :
'===ÞBUT DU CODE D'EXEMPLE
Option Explicit
'--> Déclaration d'un évènement possible :
Public Event Sendormir()
'--> Définir des variables pour le module de classe, pour son
fonctionnement internePrivate m_bDormant As Boolean
'-->Pour définir des propriété simplement, tu peux faire des variable
publiquesPublic Nom as String
Public Prenom as String
Public DateNaissance as Date
Public DateEmbauche as Date
'-->Pour définir des propriété un peu plus compliquées
' (moi, je fais simple, mais par contre, toi
' tu rechercheras plus d'infos dans l'aide hein ;))
Public Property get Anciennete() as Double
Anciennete=(Date()-DateEmbauche)/365.25
End Property
'--> Pour définir une méthode, tu fais une Function ou une Sub
Public Sub Travailler(NbHeures as Long)
Static NbTotal as Long
if m_bDormant then
m_bDormantúlse
NbTotal=0
Else
NbTotal = NbTotal + NbHeures
End if
If NbHeures > 12 then
m_bDormant=True
RaiseEvent Sendormir()
ELse
MsgBox Nom & " " & Prenom &" en est maintenant à " & NbHeures de
travail !"End if
End Sub
'=====FIN DU CODE D'EXEMPLE
Maintenant, si tu veux l'utiliser, tu peux dans un module standard faire
:
'===ÞBUT DU CODE D'EXEMPLE
Sub Test ()
Dim x as new EMPLOYE
Dim i as Long
x.DateNaissanceÚteSerial(1960,7,14)
x.DateEmbaucheÚteSerial(1983,9,1)
x.Nom="Dupont"
x.Prenom="Jean"
For i = 1 to 12
x.travailler i
Next
End Sub
'=====FIN DU CODE D'EXEMPLE
Voilà ...
Maintenant, si tu voulais utiliser l'évènement, tu devrais déclarer,
dans
la zone de déclarations d'un module de classe (UserForm / Sheet /
ThisWorkBook / ...) ta variable comme suit :
Public WithEvents x as EMPLOYE
et à un moment donné, initialiser ta variable x en faisant :
Set x=New EMPLOYE
Ca ira ?
Ben ...
c'est dommage qu'Emcy ne soit pas repassé pour dire ce qu'il en pensait ...
J'ai l'impression d'avoir bossé pour rien :(
Merci à toi ;) ça fait du bien !
Ben ...
c'est dommage qu'Emcy ne soit pas repassé pour dire ce qu'il en pensait ...
J'ai l'impression d'avoir bossé pour rien :(
Merci à toi ;) ça fait du bien !
Ben ...
c'est dommage qu'Emcy ne soit pas repassé pour dire ce qu'il en pensait ...
J'ai l'impression d'avoir bossé pour rien :(
Merci à toi ;) ça fait du bien !
Mais non, Maxence, tu n'as pas bossé pour rien...
Si le destinataire principal n'a pas (encore - il est peut-être en
vacances) lu ton cours, d'autres l'ont remarqué et apprécié :-)
Bonne fêtes
--
Amicalement,
Monique (la Wallonne) - (remplacer mpfe par skynet.be)
en campagne pour des sites conformes aux standards et accessibles...
http://www.webmaster-hub.com/
et pour les amateurs d'athlétisme... http://users.skynet.be/osga/Ben ...
c'est dommage qu'Emcy ne soit pas repassé pour dire ce qu'il en pensait
...
J'ai l'impression d'avoir bossé pour rien :(
Merci à toi ;) ça fait du bien !
Mais non, Maxence, tu n'as pas bossé pour rien...
Si le destinataire principal n'a pas (encore - il est peut-être en
vacances) lu ton cours, d'autres l'ont remarqué et apprécié :-)
Bonne fêtes
--
Amicalement,
Monique (la Wallonne) - (remplacer mpfe par skynet.be)
en campagne pour des sites conformes aux standards et accessibles...
http://www.webmaster-hub.com/
et pour les amateurs d'athlétisme... http://users.skynet.be/osga/
Ben ...
c'est dommage qu'Emcy ne soit pas repassé pour dire ce qu'il en pensait
...
J'ai l'impression d'avoir bossé pour rien :(
Merci à toi ;) ça fait du bien !
Mais non, Maxence, tu n'as pas bossé pour rien...
Si le destinataire principal n'a pas (encore - il est peut-être en
vacances) lu ton cours, d'autres l'ont remarqué et apprécié :-)
Bonne fêtes
--
Amicalement,
Monique (la Wallonne) - (remplacer mpfe par skynet.be)
en campagne pour des sites conformes aux standards et accessibles...
http://www.webmaster-hub.com/
et pour les amateurs d'athlétisme... http://users.skynet.be/osga/Ben ...
c'est dommage qu'Emcy ne soit pas repassé pour dire ce qu'il en pensait
...
J'ai l'impression d'avoir bossé pour rien :(
Merci à toi ;) ça fait du bien !
Salut Monique,
Bon Noël.
Pour le cas ou Emcy reviendrait ...
Voici un exemple commenté qui explique le pourquoi de "set ObjetClasse > Nothing"
en complément du très didactique cours de Maxence.
http://www.ilyapa.net/excel/exempleEMCY.zip
J'ai essayé, et c'est difficile, d'être simple et clair ...
Salut Monique,
Bon Noël.
Pour le cas ou Emcy reviendrait ...
Voici un exemple commenté qui explique le pourquoi de "set ObjetClasse > Nothing"
en complément du très didactique cours de Maxence.
http://www.ilyapa.net/excel/exempleEMCY.zip
J'ai essayé, et c'est difficile, d'être simple et clair ...
Salut Monique,
Bon Noël.
Pour le cas ou Emcy reviendrait ...
Voici un exemple commenté qui explique le pourquoi de "set ObjetClasse > Nothing"
en complément du très didactique cours de Maxence.
http://www.ilyapa.net/excel/exempleEMCY.zip
J'ai essayé, et c'est difficile, d'être simple et clair ...