OVH Cloud OVH Cloud

Module de classe

19 réponses
Avatar
garnote
Bonsoir à tous,

Quelqu'un saurait-il me donner un exemple
expliqué de module de classe. Un tout petit
exemple pour me lancer dans ces abîmes
conceptuels !

Merci

Serge

10 réponses

1 2
Avatar
Florian
Salut Serge une réponse de Maxence
Bonsoir


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 ?



"garnote" a écrit dans le message de
news:6IvNc.110071$
Bonsoir à tous,

Quelqu'un saurait-il me donner un exemple
expliqué de module de classe. Un tout petit
exemple pour me lancer dans ces abîmes
conceptuels !

Merci

Serge




Avatar
Starwing
Salut Garnote,

http://www.j-walk.com/ss/excel/tips/tip83.htm

Starwing
Avatar
garnote
Comprends rien pantoute !
Voici un exemple supposément simplet :
1. Créer un module de classe et le nommer «MaClasse»
2. Dans le module de classe :
Public WithEvents ClasseGraphe as Chart
Private Sub ClasseGraphe_Activate()
Msgbox ClasseGraphe.Parent.Name
End Sub
4. Dans un module standard :
Dim MonGraphe As New MaClasse
??? Où dois-je mettre ça :
Set MonGraphe.ClasseGraphe = ActiveSheet.ChartObjects(1).Chart

Serge


"garnote" a écrit dans le message de
news:6IvNc.110071$
Bonsoir à tous,

Quelqu'un saurait-il me donner un exemple
expliqué de module de classe. Un tout petit
exemple pour me lancer dans ces abîmes
conceptuels !

Merci

Serge




Avatar
docm
Bonjour.

Dans un module standard, par exemple:

Dim MonGraphe As New MaClasse

Sub t()
Set MonGraphe.ClasseGraphe = ActiveSheet.ChartObjects(1).Chart
End Sub

"garnote" wrote in message
news:HNwNc.111082$
Comprends rien pantoute !
Voici un exemple supposément simplet :
1. Créer un module de classe et le nommer «MaClasse»
2. Dans le module de classe :
Public WithEvents ClasseGraphe as Chart
Private Sub ClasseGraphe_Activate()
Msgbox ClasseGraphe.Parent.Name
End Sub
4. Dans un module standard :
Dim MonGraphe As New MaClasse
??? Où dois-je mettre ça :
Set MonGraphe.ClasseGraphe = ActiveSheet.ChartObjects(1).Chart

Serge


"garnote" a écrit dans le message de
news:6IvNc.110071$
Bonsoir à tous,

Quelqu'un saurait-il me donner un exemple
expliqué de module de classe. Un tout petit
exemple pour me lancer dans ces abîmes
conceptuels !

Merci

Serge








Avatar
Emcy
Bonjours Garnote,

Tu trouveras peut-être ton bonneur dans ces classeurs que j'ai fait.
ça te va ?

http://www.excel-downloads.com/html/French/fichiers/programmation-date_maj-1.htm

"garnote" a écrit dans le message de
news:6IvNc.110071$
Bonsoir à tous,

Quelqu'un saurait-il me donner un exemple
expliqué de module de classe. Un tout petit
exemple pour me lancer dans ces abîmes
conceptuels !

Merci

Serge




Avatar
Misange
Coucou Serge,
Il y en a au moins 1 sur excelabo (Daniel Maher ou Denis Michon, je ne
sais plus, c'est DM en tous cas !) + des explications dans le lexique.
Mais tu connais déjà probablement ...

Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta


le 27/07/2004 18:49:
Bonsoir à tous,

Quelqu'un saurait-il me donner un exemple
expliqué de module de classe. Un tout petit
exemple pour me lancer dans ces abîmes
conceptuels !

Merci

Serge




Avatar
Emcy
Bonjours Garnote,

Tu trouveras peut-être ton bonneur dans ces classeurs que j'ai fait.
ça te va ?

http://www.excel-downloads.com/html/French/fichiers/programmation-date_maj-1.htm



"garnote" a écrit dans le message de
news:6IvNc.110071$
Bonsoir à tous,

Quelqu'un saurait-il me donner un exemple
expliqué de module de classe. Un tout petit
exemple pour me lancer dans ces abîmes
conceptuels !

Merci

Serge




Avatar
garnote
Bonjour Emcy,

M'est avis que ça me conviendrait si je me décidais
à changer d'ordi ou à lui refaire une beauté.
Même plus capable de télécharger des documents *&?%$*%/

Merci

Serge


"Emcy" a écrit dans le message de
news:
Bonjours Garnote,

Tu trouveras peut-être ton bonneur dans ces classeurs que j'ai fait.
ça te va ?


http://www.excel-downloads.com/html/French/fichiers/programmation-date_maj-1.htm




"garnote" a écrit dans le message de
news:6IvNc.110071$
Bonsoir à tous,

Quelqu'un saurait-il me donner un exemple
expliqué de module de classe. Un tout petit
exemple pour me lancer dans ces abîmes
conceptuels !

Merci

Serge








Avatar
Emcy
C'est quoi ton soucis, c'est ton navigateur qui déconne ?
si tu veux je peux t'envoyer les exemples par mails (mais ils sont fait sous
Excel XP : je sais pas si ça va marcher sur ta version d'Excel)

Je peux pas t'écrire les exemples comme ça car ils n'ont aucunes
signification sans les userforms qui vont avec.

"garnote" a écrit dans le message de
news:Mp6Oc.137597$
Bonjour Emcy,

M'est avis que ça me conviendrait si je me décidais
à changer d'ordi ou à lui refaire une beauté.
Même plus capable de télécharger des documents *&?%$*%/

Merci

Serge


"Emcy" a écrit dans le message de
news:
Bonjours Garnote,

Tu trouveras peut-être ton bonneur dans ces classeurs que j'ai fait.
ça te va ?




http://www.excel-downloads.com/html/French/fichiers/programmation-date_maj-1.htm




"garnote" a écrit dans le message de
news:6IvNc.110071$
Bonsoir à tous,

Quelqu'un saurait-il me donner un exemple
expliqué de module de classe. Un tout petit
exemple pour me lancer dans ces abîmes
conceptuels !

Merci

Serge












Avatar
garnote
Tout déconne dans mon ordi et c'est la dernière fois
que j'embête le monde avec ça. J'irai consulter tes exemples
quand ça ira mieux.

Encore merci,
Serge


"Emcy" a écrit dans le message de
news:
C'est quoi ton soucis, c'est ton navigateur qui déconne ?
si tu veux je peux t'envoyer les exemples par mails (mais ils sont fait
sous

Excel XP : je sais pas si ça va marcher sur ta version d'Excel)

Je peux pas t'écrire les exemples comme ça car ils n'ont aucunes
signification sans les userforms qui vont avec.

"garnote" a écrit dans le message de
news:Mp6Oc.137597$
Bonjour Emcy,

M'est avis que ça me conviendrait si je me décidais
à changer d'ordi ou à lui refaire une beauté.
Même plus capable de télécharger des documents *&?%$*%/

Merci

Serge


"Emcy" a écrit dans le message de
news:
Bonjours Garnote,

Tu trouveras peut-être ton bonneur dans ces classeurs que j'ai fait.
ça te va ?






http://www.excel-downloads.com/html/French/fichiers/programmation-date_maj-1.htm




"garnote" a écrit dans le message de
news:6IvNc.110071$
Bonsoir à tous,

Quelqu'un saurait-il me donner un exemple
expliqué de module de classe. Un tout petit
exemple pour me lancer dans ces abîmes
conceptuels !

Merci

Serge
















1 2