Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

VB et Programmation Objet

11 réponses
Avatar
Nesta
Bonjour à tous,

Je souhaite dans mon code en VB déclarer des variables dans un type que
j'aurai défini auparavant, mais je ne sais plus comment on fait.
Mon type serait par exemple "article", avec plusieurs propriétés et méthode
:

article.code integer
article.désignation string
article.prix float

article.verifPrix()

Etc...

La question est : comment et où déclarer cet objet "article" ?
Je précise que je développe ce code dans Excel, dans un module.

Merci d'avance à tous pour vos informations.


Nesta

10 réponses

1 2
Avatar
X
Bonsoir,

Ne serait-ce pas quelque chose du genre:

Private Type article
art1 As string
art2 As integer
End Type
Dim nom_variable As article

---------------

"Nesta" a écrit dans le message de news:

Bonjour à tous,

Je souhaite dans mon code en VB déclarer des variables dans un type que
j'aurai défini auparavant, mais je ne sais plus comment on fait.
Mon type serait par exemple "article", avec plusieurs propriétés et
méthode :

article.code integer
article.désignation string
article.prix float

article.verifPrix()

Etc...

La question est : comment et où déclarer cet objet "article" ?
Je précise que je développe ce code dans Excel, dans un module.

Merci d'avance à tous pour vos informations.


Nesta



Avatar
Jean-Marc
"Nesta" a écrit dans le message de
news:
Bonjour à tous,

Je souhaite dans mon code en VB déclarer des variables dans un type


que
j'aurai défini auparavant, mais je ne sais plus comment on fait.
Mon type serait par exemple "article", avec plusieurs propriétés et


méthode
:

article.code integer
article.désignation string
article.prix float

article.verifPrix()

Etc...

La question est : comment et où déclarer cet objet "article" ?
Je précise que je développe ce code dans Excel, dans un module.



Hello,

petite précision, ce que tu veux n'est pas un "Objet" mais
un "Type défini par l'utilisateur", ce qui n'a rien à voir.

Revenons au sujet.

La définition se fait avec l'instruction Type, comme ceci:

Private Type Tarticle
code As Integer
designation As String
prix As Double
End Type

puis la définition d'une variable de ce type se fait
comme cela:

Private Sub Command1_Click()
Dim mon_article As Tarticle


' puis enfin l'utilisation

mon_article.code = 1234
mon_article.designation = "stylo plume"
mon_article.prix = 23.78

End Sub

Et voila :-)

--
Jean-marc
Tester mon serveur (VB6) => http://myjmnhome.dyndns.org
"There are only 10 kind of people
those who understand binary and those who don't."
mailto: remove '_no_spam_' ;
Avatar
Nesta
Salut Jean-Marc,

Merci pour la petite précision, c'est tellement facile de emmêler les
pinceaux quand on débute (^_^)
Je prends bonne note du morceau de code.

A bientôt

Nesta

"Jean-Marc" a écrit dans le message de news:
43d91c04$0$32571$
"Nesta" a écrit dans le message de
news:
Bonjour à tous,

Je souhaite dans mon code en VB déclarer des variables dans un type


que
j'aurai défini auparavant, mais je ne sais plus comment on fait.
Mon type serait par exemple "article", avec plusieurs propriétés et


méthode
:

article.code integer
article.désignation string
article.prix float

article.verifPrix()

Etc...

La question est : comment et où déclarer cet objet "article" ?
Je précise que je développe ce code dans Excel, dans un module.



Hello,

petite précision, ce que tu veux n'est pas un "Objet" mais
un "Type défini par l'utilisateur", ce qui n'a rien à voir.

Revenons au sujet.

La définition se fait avec l'instruction Type, comme ceci:

Private Type Tarticle
code As Integer
designation As String
prix As Double
End Type

puis la définition d'une variable de ce type se fait
comme cela:

Private Sub Command1_Click()
Dim mon_article As Tarticle


' puis enfin l'utilisation

mon_article.code = 1234
mon_article.designation = "stylo plume"
mon_article.prix = 23.78

End Sub

Et voila :-)

--
Jean-marc
Tester mon serveur (VB6) => http://myjmnhome.dyndns.org
"There are only 10 kind of people
those who understand binary and those who don't."
mailto: remove '_no_spam_' ;



Avatar
Nesta
Salut "X",


Merci à toi aussi pour tes indications qui vont beaucoup m'aider ;-)

A bientôt,

Nesta



"X" <x> a écrit dans le message de news:
%
Bonsoir,

Ne serait-ce pas quelque chose du genre:

Private Type article
art1 As string
art2 As integer
End Type
Dim nom_variable As article

---------------

"Nesta" a écrit dans le message de news:

Bonjour à tous,

Je souhaite dans mon code en VB déclarer des variables dans un type que
j'aurai défini auparavant, mais je ne sais plus comment on fait.
Mon type serait par exemple "article", avec plusieurs propriétés et
méthode :

article.code integer
article.désignation string
article.prix float

article.verifPrix()

Etc...

La question est : comment et où déclarer cet objet "article" ?
Je précise que je développe ce code dans Excel, dans un module.

Merci d'avance à tous pour vos informations.


Nesta







Avatar
Fred
Dans : news:,
Nesta disait :
Bonjour à tous,

Je souhaite dans mon code en VB déclarer des variables dans un type
que j'aurai défini auparavant, mais je ne sais plus comment on fait.
Mon type serait par exemple "article", avec plusieurs propriétés et
méthode




article.code integer
article.désignation string
article.prix float

article.verifPrix()

Etc...

La question est : comment et où déclarer cet objet "article" ?
Je précise que je développe ce code dans Excel, dans un module.



Bonjour,

Il faut insérer un module de classe que tu nommes Article
À l'intérieur tu mets quelque chose du style :

'Variables privées qui vont servir
'à stocker les valeurs efectives
'des propriétés
Private m_prix As Single
Private m_code As Integer
Private m_designation As String

'Une propriété directement accessible
Public EnStock As Single


'Les accesseurs pour les propriétés
'Let : pour l'affectation (Set si la propriété est de type objet)
'Get : pour la lecture
'L'intérêt des accesseurs est qu'ils te permettent d'effectuer
'des opérations, par exemple des vérifications.
'Si le Let est omis, la propriété est en lecture seule
'Si le Get est omis, la propriété est en écriture seule

Public Property Let Prix(value As Single)
m_prix = value
End Property

Public Property Get Prix() As Single
Prix = m_prix
End Property

Public Property Let Code(value As Integer)
m_code = value
End Property

Public Property Get Code() As Integer
Code = m_code
End Property

Public Property Let Designation(value As String)
m_designation = value
End Property

Public Property Get Designation() As String
Designation = m_designation
End Property


'Et une méthode
Public Sub VerifPrix()
'Le code
End Sub



Dans un module normal, tu utilises ton objet de cette façon :

Dim a as new article



--
Fred
http://www.cerbermail.com/?3kA6ftaCvT
Avatar
Vincent Guichard
Jean-Marc a écrit :
"Nesta" a écrit dans le message de
news:

Bonjour à tous,

Je souhaite dans mon code en VB déclarer des variables dans un type
que j'aurai défini auparavant, mais je ne sais plus comment on fait.
Mon type serait par exemple "article", avec plusieurs propriétés et
méthode :

article.code integer
article.désignation string
article.prix float

article.verifPrix()




Hello,

petite précision, ce que tu veux n'est pas un "Objet" mais
un "Type défini par l'utilisateur", ce qui n'a rien à voir.



Non.

Le PO (Nesta) précise bien qu'il veut un objet avec plusieurs propriétés
et méthodes. S'il veut pouvoir faire des "article.verifPrix()", il faut
que ce soit un objet, et pas un type utilisateur. Les types utilisateurs
ne peuvent pas contenir de fonctions (méthodes), à ma connaissance. Par
contre il n'a peut-être pas vraiment besoin de ces fonctions (ou alors
pas sous cette forme), et peux alors se rabattre sur un type utilisateur.

Pour en revenir à la question du PO, créer un objet est faisable en VB6
dans un module de classe. Dans Excel, je ne sais pas si c'est faisable,
je ne connais pas assez Excel pour me prononcer. Regardes si tu peux
créer des modules de classes (qui ont l'extension .cls).

Vincent Guichard
Avatar
jean-marc
"Vincent Guichard" wrote in message
news:43d9e2c0$0$18324$
Jean-Marc a écrit :
> "Nesta" a écrit dans le message de
> news:
>
>>Bonjour à tous,
>>
>>Je souhaite dans mon code en VB déclarer des variables dans un type
>>que j'aurai défini auparavant, mais je ne sais plus comment on fait.
>>Mon type serait par exemple "article", avec plusieurs propriétés et
>>méthode :
>>
>>article.code integer
>>article.désignation string
>>article.prix float
>>
>>article.verifPrix()
>>
>
> Hello,
>
> petite précision, ce que tu veux n'est pas un "Objet" mais
> un "Type défini par l'utilisateur", ce qui n'a rien à voir.

Non.

Le PO (Nesta) précise bien qu'il veut un objet avec plusieurs propriétés
et méthodes. S'il veut pouvoir faire des "article.verifPrix()", il faut
que ce soit un objet, et pas un type utilisateur. Les types utilisateurs
ne peuvent pas contenir de fonctions (méthodes), à ma connaissance. Par
contre il n'a peut-être pas vraiment besoin de ces fonctions (ou alors
pas sous cette forme), et peux alors se rabattre sur un type utilisateur.



Hello,

Tu as parfaitement raison, j'ai répondu un peu trop vite sans
voir qu'il souhaitait aussi une méthode.

Un type utilisateur est donc adapté pour ses besoins en terme
de structure de données, mais si il veut impérativement des
méthodes, un vrai objet est nécessaire.

--
Jean-marc
Avatar
Nesta
Bonsoir Vincent,

Merci pour les précisions.
Je ne sais pas encore si j'aurai besoin des fonctions, mais je préfère
prévoir au cas où.
Pour les modules de classes, je ne sais pas ce que c'est, ni l'utilisation
que je peux en faire. Mais vu que tu m'as donné la piste, je vais me
renseigner sur le sujet et voir si cela ne correspondrait pas plus à ce dont
j'ai besoin.
Par contre, les exemples de codes que Jean-Marc m'a donné semblent
correspondre (en tout cas en partie) à ce que je recherche.
donc, je fais un test comme ça, et si ça ne convient pas, je reviens à la
charge avec mes questions !

Encore merci à tous pour votre aide.

Nesta


"Vincent Guichard" a écrit dans le message de
news: 43d9e2c0$0$18324$
Jean-Marc a écrit :
"Nesta" a écrit dans le message de
news:

Bonjour à tous,

Je souhaite dans mon code en VB déclarer des variables dans un type
que j'aurai défini auparavant, mais je ne sais plus comment on fait.
Mon type serait par exemple "article", avec plusieurs propriétés et
méthode :

article.code integer
article.désignation string
article.prix float

article.verifPrix()




Hello,

petite précision, ce que tu veux n'est pas un "Objet" mais
un "Type défini par l'utilisateur", ce qui n'a rien à voir.



Non.

Le PO (Nesta) précise bien qu'il veut un objet avec plusieurs propriétés
et méthodes. S'il veut pouvoir faire des "article.verifPrix()", il faut
que ce soit un objet, et pas un type utilisateur. Les types utilisateurs
ne peuvent pas contenir de fonctions (méthodes), à ma connaissance. Par
contre il n'a peut-être pas vraiment besoin de ces fonctions (ou alors pas
sous cette forme), et peux alors se rabattre sur un type utilisateur.

Pour en revenir à la question du PO, créer un objet est faisable en VB6
dans un module de classe. Dans Excel, je ne sais pas si c'est faisable, je
ne connais pas assez Excel pour me prononcer. Regardes si tu peux créer
des modules de classes (qui ont l'extension .cls).

Vincent Guichard


Avatar
Fred
Dans : news:%,
Nesta disait :


Pour les modules de classes, je ne sais pas ce que c'est, ni
l'utilisation que je peux en faire. Mais vu que tu m'as donné la
piste, je vais me renseigner sur le sujet et voir si cela ne
correspondrait pas plus à ce dont j'ai besoin.




Bonsoir,

Je te remets une copie de mon post d'hier soir puisque ni toi ni Vincent
ne semblent le voir (Jean-Marc ?) Chez moi il apparaît (même avec OE
;-) )

Je t'y donnais la méthode à utiliser en vba (comme en vb6 d'ailleurs)
pour créer une classe :
(Précision : clique bouton droit dans la fenêtre «projet» de l'éditeur
vba)

<copie>
Il faut insérer un module de classe que tu nommes Article

À l'intérieur tu mets quelque chose du style :

'Variables privées qui vont servir
'à stocker les valeurs efectives
'des propriétés
Private m_prix As Single
Private m_code As Integer
Private m_designation As String

'Une propriété directement accessible
Public EnStock As Single


'Les accesseurs pour les propriétés
'Let : pour l'affectation (Set si la propriété est de type objet)
'Get : pour la lecture
'L'intérêt des accesseurs est qu'ils te permettent d'effectuer
'des opérations, par exemple des vérifications.
'Si le Let est omis, la propriété est en lecture seule
'Si le Get est omis, la propriété est en écriture seule

Public Property Let Prix(value As Single)
m_prix = value
End Property

Public Property Get Prix() As Single
Prix = m_prix
End Property

Public Property Let Code(value As Integer)
m_code = value
End Property

Public Property Get Code() As Integer
Code = m_code
End Property

Public Property Let Designation(value As String)
m_designation = value
End Property

Public Property Get Designation() As String
Designation = m_designation
End Property


'Et une méthode
Public Sub VerifPrix()
'Le code
End Sub



Dans un module normal, tu utilises ton objet de cette façon :

Dim a as new article
</copie>

--
Fred
http://www.cerbermail.com/?3kA6ftaCvT
Avatar
Jean-Marc
"Fred" a écrit dans le message de
news:
Dans : news:%,
Nesta disait :


> Pour les modules de classes, je ne sais pas ce que c'est, ni
> l'utilisation que je peux en faire. Mais vu que tu m'as donné la
> piste, je vais me renseigner sur le sujet et voir si cela ne
> correspondrait pas plus à ce dont j'ai besoin.


Bonsoir,

Je te remets une copie de mon post d'hier soir puisque ni toi ni


Vincent
ne semblent le voir (Jean-Marc ?) Chez moi il apparaît (même avec OE



Hello,

Si si, ton post est bien apparu hier soir, à 21h47 pour être précis :-)

--
Jean-marc
Tester mon serveur (VB6) => http://myjmnhome.dyndns.org
"There are only 10 kind of people
those who understand binary and those who don't."
mailto: remove '_no_spam_' ;
1 2