Afin de contrôler la validité des caractères entrés dans un Texbox je pense
utiliser l'évènement KeyPress.
Mon problème c'est que ce contrôle doit porter sur une quinzaine de Textbox
( Textbo1 .... Textbox15 ).
Pour éviter d'écrire 15 fois la même chose au numéro près, j'ai fait un
petit tour sur Excelabo et,
si j'ai bien lu, avec le code ci-dessous de Laurent Longres, je devrais m'en
sortir ?
En fait, non et je ne comprends pas pourquoi.
A l'initialisation du USerform, j'ai le message :
<< Erreur de compilation : Membre de méthode ou de données introuvable >>
et ce au niveau des 2 instructions
Cellule(i).Text = ""
Cellule(i).MaxLength = 8
Les propriétés TextBox ne sont pas héritées ?
Je suis totalement novice dans l'utilisation des modules de classe, alors si
vous pouviez éclairer ma lanterne,
ce serait super.
Merci d'avance
'Module de classe nommé TxtBoxClasse
Public WithEvents TxtBox As MSForms.TextBox
Private Sub TxtBox_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case 49 To 57
'OK
Case Else
MsgBox "Seuls les chiffres de 1 à 9 sont autorisés !"
KeyAscii = Asc(Chr(8))
End Select
End Sub
'Module Standard
Option Explicit
Public Cellule(1 To 15) As TxtBoxClasse
Function Initialise_Cellules()
Dim i As Integer
For i = 1 To 15
Set Cellule(i) = New TxtBoxClasse
Set Cellule(i).TxtBox = UserForm1.Controls("Textbox" & i)
Next i
End Function
'Userform
Private Sub UserForm_Initialize()
'Initialise la grille
Initialise_Cellules
For i = 1 To 15
Cellule(i).Text = ""
Cellule(i).MaxLength = 8
Next i
Show
End Sub
--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
Conseillé :
http://dj.joss.free.fr/netiquet.htm
(charte, nétiquette, conseils, abréviations, souriettes...)
http://www.excelabo.net/mpfe/connexion.php
(connexion, conseils...)
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
anonymousA
bonjour,
les cellules étant initialisées ,elles exposent la classe Textboxclass
Private Sub UserForm_Initialize() 'Initialise la grille Initialise_Cellules For i = 1 To 15 Cellule(i).TxtBox.Text = "" Cellule(i).TxtBox.MaxLength = 8 Next i
End Sub
par ailleurs je n'ai pas compris ce qui vient faire l'instructin Show dans la procédure Initialize
A+
bonjour,
les cellules étant initialisées ,elles exposent la classe
Textboxclass
Private Sub UserForm_Initialize()
'Initialise la grille
Initialise_Cellules
For i = 1 To 15
Cellule(i).TxtBox.Text = ""
Cellule(i).TxtBox.MaxLength = 8
Next i
End Sub
par ailleurs je n'ai pas compris ce qui vient faire l'instructin Show
dans la procédure Initialize
les cellules étant initialisées ,elles exposent la classe Textboxclass
Private Sub UserForm_Initialize() 'Initialise la grille Initialise_Cellules For i = 1 To 15 Cellule(i).TxtBox.Text = "" Cellule(i).TxtBox.MaxLength = 8 Next i
End Sub
par ailleurs je n'ai pas compris ce qui vient faire l'instructin Show dans la procédure Initialize
A+
Michel Pierron
Bonjour Pounet95; Simplifie le tout, vire tout cequi est inutile dansle module standard et dans le module Userform:
Private Cellule(1 To 15) As New TxtBoxClasse
Private Sub UserForm_Initialize() Dim i As Integer For i = 1 To 15 Set Cellule(i).TxtBox = Me.Controls("Textbox" & i) Cellule(i).TxtBox.Text = "" Cellule(i).TxtBox.MaxLength = 8 ' Ou directement 'Me.Controls("Textbox" & i).Text = "" 'Me.Controls("Textbox" & i).MaxLength = 8 Next i End Sub
MP
"Pounet95" a écrit dans le message de news:
Bonjour à toutes et tous XL2000 Windows XP
Afin de contrôler la validité des caractères entrés dans un Texbox je pense
utiliser l'évènement KeyPress. Mon problème c'est que ce contrôle doit porter sur une quinzaine de Textbox
( Textbo1 .... Textbox15 ). Pour éviter d'écrire 15 fois la même chose au numéro près, j'ai fait un petit tour sur Excelabo et, si j'ai bien lu, avec le code ci-dessous de Laurent Longres, je devrais m'en
sortir ? En fait, non et je ne comprends pas pourquoi.
A l'initialisation du USerform, j'ai le message :
<< Erreur de compilation : Membre de méthode ou de données introuvable >>
et ce au niveau des 2 instructions
Cellule(i).Text = "" Cellule(i).MaxLength = 8
Les propriétés TextBox ne sont pas héritées ? Je suis totalement novice dans l'utilisation des modules de classe, alors si
vous pouviez éclairer ma lanterne, ce serait super. Merci d'avance
'Module de classe nommé TxtBoxClasse
Public WithEvents TxtBox As MSForms.TextBox
Private Sub TxtBox_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) Select Case KeyAscii Case 49 To 57 'OK Case Else MsgBox "Seuls les chiffres de 1 à 9 sont autorisés !" KeyAscii = Asc(Chr(8)) End Select End Sub
'Module Standard
Option Explicit Public Cellule(1 To 15) As TxtBoxClasse
Function Initialise_Cellules() Dim i As Integer For i = 1 To 15 Set Cellule(i) = New TxtBoxClasse Set Cellule(i).TxtBox = UserForm1.Controls("Textbox" & i) Next i End Function
'Userform Private Sub UserForm_Initialize() 'Initialise la grille Initialise_Cellules For i = 1 To 15 Cellule(i).Text = "" Cellule(i).MaxLength = 8 Next i
Show End Sub
-- Pounet95 on trouve tout ( ou presque ) http://www.excelabo.net/ Conseillé : http://dj.joss.free.fr/netiquet.htm (charte, nétiquette, conseils, abréviations, souriettes...) http://www.excelabo.net/mpfe/connexion.php (connexion, conseils...)
Bonjour Pounet95;
Simplifie le tout, vire tout cequi est inutile dansle module standard et
dans le module Userform:
Private Cellule(1 To 15) As New TxtBoxClasse
Private Sub UserForm_Initialize()
Dim i As Integer
For i = 1 To 15
Set Cellule(i).TxtBox = Me.Controls("Textbox" & i)
Cellule(i).TxtBox.Text = ""
Cellule(i).TxtBox.MaxLength = 8
' Ou directement
'Me.Controls("Textbox" & i).Text = ""
'Me.Controls("Textbox" & i).MaxLength = 8
Next i
End Sub
MP
"Pounet95" <pasdepub@oneado.fr> a écrit dans le message de news:
e9ROWeAwFHA.212@TK2MSFTNGP12.phx.gbl...
Bonjour à toutes et tous
XL2000 Windows XP
Afin de contrôler la validité des caractères entrés dans un Texbox je
pense
utiliser l'évènement KeyPress.
Mon problème c'est que ce contrôle doit porter sur une quinzaine de
Textbox
( Textbo1 .... Textbox15 ).
Pour éviter d'écrire 15 fois la même chose au numéro près, j'ai fait un
petit tour sur Excelabo et,
si j'ai bien lu, avec le code ci-dessous de Laurent Longres, je devrais
m'en
sortir ?
En fait, non et je ne comprends pas pourquoi.
A l'initialisation du USerform, j'ai le message :
<< Erreur de compilation : Membre de méthode ou de données introuvable >>
et ce au niveau des 2 instructions
Cellule(i).Text = ""
Cellule(i).MaxLength = 8
Les propriétés TextBox ne sont pas héritées ?
Je suis totalement novice dans l'utilisation des modules de classe, alors
si
vous pouviez éclairer ma lanterne,
ce serait super.
Merci d'avance
'Module de classe nommé TxtBoxClasse
Public WithEvents TxtBox As MSForms.TextBox
Private Sub TxtBox_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case 49 To 57
'OK
Case Else
MsgBox "Seuls les chiffres de 1 à 9 sont autorisés !"
KeyAscii = Asc(Chr(8))
End Select
End Sub
'Module Standard
Option Explicit
Public Cellule(1 To 15) As TxtBoxClasse
Function Initialise_Cellules()
Dim i As Integer
For i = 1 To 15
Set Cellule(i) = New TxtBoxClasse
Set Cellule(i).TxtBox = UserForm1.Controls("Textbox" & i)
Next i
End Function
'Userform
Private Sub UserForm_Initialize()
'Initialise la grille
Initialise_Cellules
For i = 1 To 15
Cellule(i).Text = ""
Cellule(i).MaxLength = 8
Next i
Show
End Sub
--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
Conseillé :
http://dj.joss.free.fr/netiquet.htm
(charte, nétiquette, conseils, abréviations, souriettes...)
http://www.excelabo.net/mpfe/connexion.php
(connexion, conseils...)
Bonjour Pounet95; Simplifie le tout, vire tout cequi est inutile dansle module standard et dans le module Userform:
Private Cellule(1 To 15) As New TxtBoxClasse
Private Sub UserForm_Initialize() Dim i As Integer For i = 1 To 15 Set Cellule(i).TxtBox = Me.Controls("Textbox" & i) Cellule(i).TxtBox.Text = "" Cellule(i).TxtBox.MaxLength = 8 ' Ou directement 'Me.Controls("Textbox" & i).Text = "" 'Me.Controls("Textbox" & i).MaxLength = 8 Next i End Sub
MP
"Pounet95" a écrit dans le message de news:
Bonjour à toutes et tous XL2000 Windows XP
Afin de contrôler la validité des caractères entrés dans un Texbox je pense
utiliser l'évènement KeyPress. Mon problème c'est que ce contrôle doit porter sur une quinzaine de Textbox
( Textbo1 .... Textbox15 ). Pour éviter d'écrire 15 fois la même chose au numéro près, j'ai fait un petit tour sur Excelabo et, si j'ai bien lu, avec le code ci-dessous de Laurent Longres, je devrais m'en
sortir ? En fait, non et je ne comprends pas pourquoi.
A l'initialisation du USerform, j'ai le message :
<< Erreur de compilation : Membre de méthode ou de données introuvable >>
et ce au niveau des 2 instructions
Cellule(i).Text = "" Cellule(i).MaxLength = 8
Les propriétés TextBox ne sont pas héritées ? Je suis totalement novice dans l'utilisation des modules de classe, alors si
vous pouviez éclairer ma lanterne, ce serait super. Merci d'avance
'Module de classe nommé TxtBoxClasse
Public WithEvents TxtBox As MSForms.TextBox
Private Sub TxtBox_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) Select Case KeyAscii Case 49 To 57 'OK Case Else MsgBox "Seuls les chiffres de 1 à 9 sont autorisés !" KeyAscii = Asc(Chr(8)) End Select End Sub
'Module Standard
Option Explicit Public Cellule(1 To 15) As TxtBoxClasse
Function Initialise_Cellules() Dim i As Integer For i = 1 To 15 Set Cellule(i) = New TxtBoxClasse Set Cellule(i).TxtBox = UserForm1.Controls("Textbox" & i) Next i End Function
'Userform Private Sub UserForm_Initialize() 'Initialise la grille Initialise_Cellules For i = 1 To 15 Cellule(i).Text = "" Cellule(i).MaxLength = 8 Next i
Show End Sub
-- Pounet95 on trouve tout ( ou presque ) http://www.excelabo.net/ Conseillé : http://dj.joss.free.fr/netiquet.htm (charte, nétiquette, conseils, abréviations, souriettes...) http://www.excelabo.net/mpfe/connexion.php (connexion, conseils...)
Pounet95
Bonjour et merci pour la réponse.
Ca fonctionne comme je le veux. Quant à la présence de l'instruction Show dans la procédure, c'est pour afficher le USF car son éxécution est lancée à partir d'un bouton dans un onglet Sans cette instruction, il n'y a pas d'affichage ou alors il faut charger autrement en remplaçant Load Userform1 par Userform1.Show Juste une histoire d'habitude, bonne ou mauvaise ????
Private Sub CommandButton1_Click() On Error Resume Next Load UserForm1 If Err <> 0 Then MsgBox Err & vbCrLf & Err.Description Unload UserForm1 End Sub
-- Pounet95 on trouve tout ( ou presque ) http://www.excelabo.net/ Conseillé : http://dj.joss.free.fr/netiquet.htm (charte, nétiquette, conseils, abréviations, souriettes...) http://www.excelabo.net/mpfe/connexion.php (connexion, conseils...)
"anonymousA" a écrit dans le message de news:
bonjour,
les cellules étant initialisées ,elles exposent la classe Textboxclass
Private Sub UserForm_Initialize() 'Initialise la grille Initialise_Cellules For i = 1 To 15 Cellule(i).TxtBox.Text = "" Cellule(i).TxtBox.MaxLength = 8 Next i
End Sub
par ailleurs je n'ai pas compris ce qui vient faire l'instructin Show dans la procédure Initialize
A+
Bonjour et merci pour la réponse.
Ca fonctionne comme je le veux.
Quant à la présence de l'instruction Show dans la procédure, c'est pour
afficher le USF
car son éxécution est lancée à partir d'un bouton dans un onglet
Sans cette instruction, il n'y a pas d'affichage ou alors il faut charger
autrement
en remplaçant Load Userform1 par Userform1.Show
Juste une histoire d'habitude, bonne ou mauvaise ????
Private Sub CommandButton1_Click()
On Error Resume Next
Load UserForm1
If Err <> 0 Then MsgBox Err & vbCrLf & Err.Description
Unload UserForm1
End Sub
--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
Conseillé :
http://dj.joss.free.fr/netiquet.htm
(charte, nétiquette, conseils, abréviations, souriettes...)
http://www.excelabo.net/mpfe/connexion.php
(connexion, conseils...)
"anonymousA" <anonymousA@wanadoo.fr> a écrit dans le message de news:
1127460615.129122.118300@g43g2000cwa.googlegroups.com...
bonjour,
les cellules étant initialisées ,elles exposent la classe
Textboxclass
Private Sub UserForm_Initialize()
'Initialise la grille
Initialise_Cellules
For i = 1 To 15
Cellule(i).TxtBox.Text = ""
Cellule(i).TxtBox.MaxLength = 8
Next i
End Sub
par ailleurs je n'ai pas compris ce qui vient faire l'instructin Show
dans la procédure Initialize
Ca fonctionne comme je le veux. Quant à la présence de l'instruction Show dans la procédure, c'est pour afficher le USF car son éxécution est lancée à partir d'un bouton dans un onglet Sans cette instruction, il n'y a pas d'affichage ou alors il faut charger autrement en remplaçant Load Userform1 par Userform1.Show Juste une histoire d'habitude, bonne ou mauvaise ????
Private Sub CommandButton1_Click() On Error Resume Next Load UserForm1 If Err <> 0 Then MsgBox Err & vbCrLf & Err.Description Unload UserForm1 End Sub
-- Pounet95 on trouve tout ( ou presque ) http://www.excelabo.net/ Conseillé : http://dj.joss.free.fr/netiquet.htm (charte, nétiquette, conseils, abréviations, souriettes...) http://www.excelabo.net/mpfe/connexion.php (connexion, conseils...)
"anonymousA" a écrit dans le message de news:
bonjour,
les cellules étant initialisées ,elles exposent la classe Textboxclass
Private Sub UserForm_Initialize() 'Initialise la grille Initialise_Cellules For i = 1 To 15 Cellule(i).TxtBox.Text = "" Cellule(i).TxtBox.MaxLength = 8 Next i
End Sub
par ailleurs je n'ai pas compris ce qui vient faire l'instructin Show dans la procédure Initialize