module de classe

Le
Greffier
Bonjour,
Comment fabriquer un module de classe pour une vingtaine de texbox qui
auraient toutes cette cette structure :

Private Sub TextBox10_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii = 44 Or KeyAscii = 46 Then
KeyAscii = Asc(Application.International(xlDecimalSeparator))
End If
End Sub

Merci, pour tout renseignement,

Greffier.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
MichDenis
Le #4319441
Tu as un exemple sur exelabo http://www.excelabo.net/
dans le fichier "dm-moduleclasse.xls" suivant que tu peux
télécharger... avec des boutons de commande...
le principe est le même avec des textbox ...




"Greffier" Od4pd%
Bonjour,
Comment fabriquer un module de classe pour une vingtaine de texbox qui
auraient toutes cette cette structure :

Private Sub TextBox10_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii = 44 Or KeyAscii = 46 Then
KeyAscii = Asc(Application.International(xlDecimalSeparator))
End If
End Sub

Merci, pour tout renseignement,

Greffier.
Greffier
Le #4319411
Bonjour,

Le problème c'est que cela ne marche pas. Alors que sur tous les exemples
que je vois dans les moteurs de recherche, eux marchent.

Y a-t-il quelque chose qui empêche.

Greffier.


"MichDenis" %
Tu as un exemple sur exelabo http://www.excelabo.net/
dans le fichier "dm-moduleclasse.xls" suivant que tu peux
télécharger... avec des boutons de commande...
le principe est le même avec des textbox ...




"Greffier" Od4pd%
Bonjour,
Comment fabriquer un module de classe pour une vingtaine de texbox qui
auraient toutes cette cette structure :

Private Sub TextBox10_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii = 44 Or KeyAscii = 46 Then
KeyAscii = Asc(Application.International(xlDecimalSeparator))
End If
End Sub

Merci, pour tout renseignement,

Greffier.





MichDenis
Le #4319291
| Le problème c'est que cela ne marche pas.

Le problème, c'est que tu ne donnes pas beaucoup de détails sur la difficulté que tu rencontres.
Je n'ai pas envie de récrire ici les explications données dans le fichier exemple...

à titre d'exemple : le code du module de classe :
'---------------------------------
Public WithEvents toto As MSForms.TextBox

Private Sub toto_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii = 44 Or KeyAscii = 46 Then
KeyAscii = Asc(Application.International(xlDecimalSeparator))
End If
End Sub
'---------------------------------

Et dans le module du formulaire :
'---------------------------------
Private Sub UserForm_Initialize()
Dim A As Integer
For Each c In Me.Controls
If TypeName(c) = "TextBox" Then
ReDim Preserve Tbox(A)
Set Tbox(A).toto = c
A = A + 1
End If
Next
End Sub
'--------------------------------
MichDenis
Le #4319211
Désolé, dans le module formulaire, j'ai omis de déclarer la variable
dans le haut du module :

Dim Tbox() As New Classe1

Classe1 = Nom du module de classe (de la classe de l'objet)




"MichDenis"

| Le problème c'est que cela ne marche pas.

Le problème, c'est que tu ne donnes pas beaucoup de détails sur la difficulté que tu rencontres.
Je n'ai pas envie de récrire ici les explications données dans le fichier exemple...

à titre d'exemple : le code du module de classe :
'---------------------------------
Public WithEvents toto As MSForms.TextBox

Private Sub toto_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii = 44 Or KeyAscii = 46 Then
KeyAscii = Asc(Application.International(xlDecimalSeparator))
End If
End Sub
'---------------------------------

Et dans le module du formulaire :
'---------------------------------
Private Sub UserForm_Initialize()
Dim A As Integer
For Each c In Me.Controls
If TypeName(c) = "TextBox" Then
ReDim Preserve Tbox(A)
Set Tbox(A).toto = c
A = A + 1
End If
Next
End Sub
'--------------------------------
LSteph
Le #4319201
Bonjour,

Il faut nommer ton module de classe,
pour ce faire

dans l'explorateur de projet sur ta gauche
sélectionner l'icône du module de classe
Menu affichage
afficher la fenêtre des propriétés , puis nommer
MyTBoxClass par exemple

En haut du module de Code de ton
UF tu reprends cette définition

Dim TBox as new MyTBoxClass


Cordialement.

lSteph

Bonjour,

Le problème c'est que cela ne marche pas. Alors que sur tous les exemples
que je vois dans les moteurs de recherche, eux marchent.

Y a-t-il quelque chose qui empêche.

Greffier.


"MichDenis" %
Tu as un exemple sur exelabo http://www.excelabo.net/
dans le fichier "dm-moduleclasse.xls" suivant que tu peux
télécharger... avec des boutons de commande...
le principe est le même avec des textbox ...




"Greffier" Od4pd%
Bonjour,
Comment fabriquer un module de classe pour une vingtaine de texbox qui
auraient toutes cette cette structure :

Private Sub TextBox10_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii = 44 Or KeyAscii = 46 Then
KeyAscii = Asc(Application.International(xlDecimalSeparator))
End If
End Sub

Merci, pour tout renseignement,

Greffier.









Greffier
Le #4260341
Bonjour,

et mille excuses car je me suis trompé de objet tout à l'heure, c'était pour
combobox et additem :
"Le problème c'est que cela ne marche pas. Alors que sur tous les exemples
que je vois dans les moteurs de recherche, eux marchent.

Y a-t-il quelque chose qui empêche."

Je vais essayer ce matin le module de classe indiqué par michdenis, avec
excellabo.

Ah, les yeux c'est tout.

Amicalement,

Greffier.
.




"LSteph" OL0Vnn%
Bonjour,

Il faut nommer ton module de classe,
pour ce faire

dans l'explorateur de projet sur ta gauche
sélectionner l'icône du module de classe
Menu affichage
afficher la fenêtre des propriétés , puis nommer
MyTBoxClass par exemple

En haut du module de Code de ton
UF tu reprends cette définition

Dim TBox as new MyTBoxClass


Cordialement.

lSteph

Bonjour,

Le problème c'est que cela ne marche pas. Alors que sur tous les exemples
que je vois dans les moteurs de recherche, eux marchent.

Y a-t-il quelque chose qui empêche.

Greffier.


"MichDenis" %
Tu as un exemple sur exelabo http://www.excelabo.net/
dans le fichier "dm-moduleclasse.xls" suivant que tu peux
télécharger... avec des boutons de commande...
le principe est le même avec des textbox ...




"Greffier" Od4pd%
Bonjour,
Comment fabriquer un module de classe pour une vingtaine de texbox qui
auraient toutes cette cette structure :

Private Sub TextBox10_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii = 44 Or KeyAscii = 46 Then
KeyAscii = Asc(Application.International(xlDecimalSeparator))
End If
End Sub

Merci, pour tout renseignement,

Greffier.










LSteph
Le #4260311
Bonjour,

"Le problème ...c'est que cela ne marche pas.
Il serait plus avisé de dire ...c'est que je n'y arrive pas!


Ce que je t'indiquais est valable pour l'utilisation d'un module de
classe tel que code fourni sur Excelabo ou par MichDenis ou je peux même
t'en fournir un autre ce sera pareil!
Le module doit être nommé et la variable dans le private module s'y
rattacher.

En revanche si un code ne fonctionnait pas sur excelabo indique
précisément lequel cela permettra de tester et le cas échéant qu'il
soit corrigé.


Cordialement.

lSteph

Bonjour,

et mille excuses car je me suis trompé de objet tout à l'heure, c'était pour
combobox et additem :
"Le problème c'est que cela ne marche pas. Alors que sur tous les exemples
que je vois dans les moteurs de recherche, eux marchent.

Y a-t-il quelque chose qui empêche."

Je vais essayer ce matin le module de classe indiqué par michdenis, avec
excellabo.

Ah, les yeux c'est tout.

Amicalement,

Greffier.
.




"LSteph" OL0Vnn%
Bonjour,

Il faut nommer ton module de classe,
pour ce faire

dans l'explorateur de projet sur ta gauche
sélectionner l'icône du module de classe
Menu affichage
afficher la fenêtre des propriétés , puis nommer
MyTBoxClass par exemple

En haut du module de Code de ton
UF tu reprends cette définition

Dim TBox as new MyTBoxClass


Cordialement.

lSteph

Bonjour,

Le problème c'est que cela ne marche pas. Alors que sur tous les exemples
que je vois dans les moteurs de recherche, eux marchent.

Y a-t-il quelque chose qui empêche.

Greffier.


"MichDenis" %
Tu as un exemple sur exelabo http://www.excelabo.net/
dans le fichier "dm-moduleclasse.xls" suivant que tu peux
télécharger... avec des boutons de commande...
le principe est le même avec des textbox ...




"Greffier" Od4pd%
Bonjour,
Comment fabriquer un module de classe pour une vingtaine de texbox qui
auraient toutes cette cette structure :

Private Sub TextBox10_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii = 44 Or KeyAscii = 46 Then
KeyAscii = Asc(Application.International(xlDecimalSeparator))
End If
End Sub

Merci, pour tout renseignement,

Greffier.












Greffier
Le #4260021
Bonjour,

Je profite de ces instants pour vous communiquer ce que j'ai déduit des
différentes réponses :
- Création d'un moule de classe classe1
- renommer ce module avec la propriété renommer : TxtBoxKeyPress
- mettre le code suivant dans ce module :
Public WithEvents TxtBox As MSForms.TextBox

Private Sub TextBox_KeyPress(ByVal KeyAscii As
MSForms.ReturnInteger)
If KeyAscii = 44 Or KeyAscii = 46 Then
KeyAscii = Asc(Application.International(xlDecimalSeparator))
End If
End Sub

- ajouter le code suivant dans le module du formulaire :
Private Sub UserForm_Initialize()

Dim TxtBoxKeyPres(1 To 18) As TxtBoxKeyPress
Dim I As Integer
For I = 1 To 18
Set TxtBoxKeyPres(I) = New TxtBoxKeyPress
Set TxtBoxKeyPres(I).TxtBox = UserForm2.Controls("TextBox" & I)
Next I

Avant de faire des essais, ai-je bien compris ?

Merci.

Amicalement.

Greffier.






"LSteph"
Bonjour,

"Le problème ...c'est que cela ne marche pas.
Il serait plus avisé de dire ...c'est que je n'y arrive pas!


Ce que je t'indiquais est valable pour l'utilisation d'un module de classe
tel que code fourni sur Excelabo ou par MichDenis ou je peux même t'en
fournir un autre ce sera pareil!
Le module doit être nommé et la variable dans le private module s'y
rattacher.

En revanche si un code ne fonctionnait pas sur excelabo indique
précisément lequel cela permettra de tester et le cas échéant qu'il soit
corrigé.


Cordialement.

lSteph

Bonjour,

et mille excuses car je me suis trompé de objet tout à l'heure, c'était
pour combobox et additem :
"Le problème c'est que cela ne marche pas. Alors que sur tous les
exemples
que je vois dans les moteurs de recherche, eux marchent.

Y a-t-il quelque chose qui empêche."

Je vais essayer ce matin le module de classe indiqué par michdenis, avec
excellabo.

Ah, les yeux c'est tout.

Amicalement,

Greffier.
.




"LSteph" OL0Vnn%
Bonjour,

Il faut nommer ton module de classe,
pour ce faire

dans l'explorateur de projet sur ta gauche
sélectionner l'icône du module de classe
Menu affichage
afficher la fenêtre des propriétés , puis nommer
MyTBoxClass par exemple

En haut du module de Code de ton
UF tu reprends cette définition

Dim TBox as new MyTBoxClass


Cordialement.

lSteph

Bonjour,

Le problème c'est que cela ne marche pas. Alors que sur tous les
exemples que je vois dans les moteurs de recherche, eux marchent.

Y a-t-il quelque chose qui empêche.

Greffier.


"MichDenis" %
Tu as un exemple sur exelabo http://www.excelabo.net/
dans le fichier "dm-moduleclasse.xls" suivant que tu peux
télécharger... avec des boutons de commande...
le principe est le même avec des textbox ...




"Greffier" Od4pd%
Bonjour,
Comment fabriquer un module de classe pour une vingtaine de texbox qui
auraient toutes cette cette structure :

Private Sub TextBox10_KeyPress(ByVal KeyAscii As
MSForms.ReturnInteger)
If KeyAscii = 44 Or KeyAscii = 46 Then
KeyAscii = Asc(Application.International(xlDecimalSeparator))
End If
End Sub

Merci, pour tout renseignement,

Greffier.














MichDenis
Le #4259811
Cette ligne de code va dans le haut du module formulaire
et non dans la procédure Private Sub UserForm_Initialize()

'J'ai ajouté le mot New à la déclaration - HAUT DU FORMULAIRE
Dim TxtBoxKeyPres(1 To 18) As New TxtBoxKeyPress

et ta nouvelle procédure est :
'-----------------------------------
Private Sub UserForm_Initialize()
Dim I As Integer
For I = 1 To 18
Set TxtBoxKeyPres(I).TxtBox = UserForm2.Controls("TextBox" & I)
Next I
End Sub





"Greffier" %
Bonjour,

Je profite de ces instants pour vous communiquer ce que j'ai déduit des
différentes réponses :
- Création d'un moule de classe classe1
- renommer ce module avec la propriété renommer : TxtBoxKeyPress
- mettre le code suivant dans ce module :
Public WithEvents TxtBox As MSForms.TextBox

Private Sub TextBox_KeyPress(ByVal KeyAscii As
MSForms.ReturnInteger)
If KeyAscii = 44 Or KeyAscii = 46 Then
KeyAscii = Asc(Application.International(xlDecimalSeparator))
End If
End Sub

- ajouter le code suivant dans le module du formulaire :
Private Sub UserForm_Initialize()


Dim I As Integer
For I = 1 To 18
Set TxtBoxKeyPres(I).TxtBox = UserForm2.Controls("TextBox" & I)
Next I

Avant de faire des essais, ai-je bien compris ?

Merci.

Amicalement.

Greffier.






"LSteph"
Bonjour,

"Le problème ...c'est que cela ne marche pas.
Il serait plus avisé de dire ...c'est que je n'y arrive pas!


Ce que je t'indiquais est valable pour l'utilisation d'un module de classe
tel que code fourni sur Excelabo ou par MichDenis ou je peux même t'en
fournir un autre ce sera pareil!
Le module doit être nommé et la variable dans le private module s'y
rattacher.

En revanche si un code ne fonctionnait pas sur excelabo indique
précisément lequel cela permettra de tester et le cas échéant qu'il soit
corrigé.


Cordialement.

lSteph

Bonjour,

et mille excuses car je me suis trompé de objet tout à l'heure, c'était
pour combobox et additem :
"Le problème c'est que cela ne marche pas. Alors que sur tous les
exemples
que je vois dans les moteurs de recherche, eux marchent.

Y a-t-il quelque chose qui empêche."

Je vais essayer ce matin le module de classe indiqué par michdenis, avec
excellabo.

Ah, les yeux c'est tout.

Amicalement,

Greffier.
.




"LSteph" OL0Vnn%
Bonjour,

Il faut nommer ton module de classe,
pour ce faire

dans l'explorateur de projet sur ta gauche
sélectionner l'icône du module de classe
Menu affichage
afficher la fenêtre des propriétés , puis nommer
MyTBoxClass par exemple

En haut du module de Code de ton
UF tu reprends cette définition

Dim TBox as new MyTBoxClass


Cordialement.

lSteph

Bonjour,

Le problème c'est que cela ne marche pas. Alors que sur tous les
exemples que je vois dans les moteurs de recherche, eux marchent.

Y a-t-il quelque chose qui empêche.

Greffier.


"MichDenis" %
Tu as un exemple sur exelabo http://www.excelabo.net/
dans le fichier "dm-moduleclasse.xls" suivant que tu peux
télécharger... avec des boutons de commande...
le principe est le même avec des textbox ...




"Greffier" Od4pd%
Bonjour,
Comment fabriquer un module de classe pour une vingtaine de texbox qui
auraient toutes cette cette structure :

Private Sub TextBox10_KeyPress(ByVal KeyAscii As
MSForms.ReturnInteger)
If KeyAscii = 44 Or KeyAscii = 46 Then
KeyAscii = Asc(Application.International(xlDecimalSeparator))
End If
End Sub

Merci, pour tout renseignement,

Greffier.














LSteph
Le #4259691
Bonsoir,

Tu y es presque mais
il faudrait relire ce qu'on a déjà écrit
comme ceci

En haut du module de Code de ton
UF





...entre autres

@+

lSteph

Bonjour,

Je profite de ces instants pour vous communiquer ce que j'ai déduit des
différentes réponses :
- Création d'un moule de classe classe1
- renommer ce module avec la propriété renommer : TxtBoxKeyPress
- mettre le code suivant dans ce module :
Public WithEvents TxtBox As MSForms.TextBox

Private Sub TextBox_KeyPress(ByVal KeyAscii As
MSForms.ReturnInteger)
If KeyAscii = 44 Or KeyAscii = 46 Then
KeyAscii = Asc(Application.International(xlDecimalSeparator))
End If
End Sub

- ajouter le code suivant dans le module du formulaire :
Private Sub UserForm_Initialize()

Dim TxtBoxKeyPres(1 To 18) As TxtBoxKeyPress
Dim I As Integer
For I = 1 To 18
Set TxtBoxKeyPres(I) = New TxtBoxKeyPress
Set TxtBoxKeyPres(I).TxtBox = UserForm2.Controls("TextBox" & I)
Next I

Avant de faire des essais, ai-je bien compris ?

Merci.

Amicalement.

Greffier.






"LSteph"
Bonjour,

"Le problème ...c'est que cela ne marche pas.
Il serait plus avisé de dire ...c'est que je n'y arrive pas!


Ce que je t'indiquais est valable pour l'utilisation d'un module de classe
tel que code fourni sur Excelabo ou par MichDenis ou je peux même t'en
fournir un autre ce sera pareil!
Le module doit être nommé et la variable dans le private module s'y
rattacher.

En revanche si un code ne fonctionnait pas sur excelabo indique
précisément lequel cela permettra de tester et le cas échéant qu'il soit
corrigé.


Cordialement.

lSteph

Bonjour,

et mille excuses car je me suis trompé de objet tout à l'heure, c'était
pour combobox et additem :
"Le problème c'est que cela ne marche pas. Alors que sur tous les
exemples
que je vois dans les moteurs de recherche, eux marchent.

Y a-t-il quelque chose qui empêche."

Je vais essayer ce matin le module de classe indiqué par michdenis, avec
excellabo.

Ah, les yeux c'est tout.

Amicalement,

Greffier.
.




"LSteph" OL0Vnn%
Bonjour,

Il faut nommer ton module de classe,
pour ce faire

dans l'explorateur de projet sur ta gauche
sélectionner l'icône du module de classe
Menu affichage
afficher la fenêtre des propriétés , puis nommer
MyTBoxClass par exemple

En haut du module de Code de ton
UF tu reprends cette définition

Dim TBox as new MyTBoxClass


Cordialement.

lSteph

Bonjour,

Le problème c'est que cela ne marche pas. Alors que sur tous les
exemples que je vois dans les moteurs de recherche, eux marchent.

Y a-t-il quelque chose qui empêche.

Greffier.


"MichDenis" %
Tu as un exemple sur exelabo http://www.excelabo.net/
dans le fichier "dm-moduleclasse.xls" suivant que tu peux
télécharger... avec des boutons de commande...
le principe est le même avec des textbox ...




"Greffier" Od4pd%
Bonjour,
Comment fabriquer un module de classe pour une vingtaine de texbox qui
auraient toutes cette cette structure :

Private Sub TextBox10_KeyPress(ByVal KeyAscii As
MSForms.ReturnInteger)
If KeyAscii = 44 Or KeyAscii = 46 Then
KeyAscii = Asc(Application.International(xlDecimalSeparator))
End If
End Sub

Merci, pour tout renseignement,

Greffier.

















Publicité
Poster une réponse
Anonyme