VBA
Fermé
Saannaa
Messages postés
1
Date d'inscription
dimanche 2 mars 2014
Statut
Membre
Dernière intervention
2 mars 2014
-
2 mars 2014 à 20:28
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 14 mars 2014 à 07:53
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 14 mars 2014 à 07:53
2 réponses
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
3 mars 2014 à 14:50
3 mars 2014 à 14:50
Bonjour,
Pour changer la police d'un textbox :
ou :
Tu peux placer ce code, par exemple, dans l'événement Initialize de l'UserForm :
Ensuite, pour limiter la saisie à un seul caractère dans le textbox, toujours dans l'événement initialize de l'UserForm, régler la propriété MaxLength à 1 :
Pour éviter la saisie d'un autre caractère qu'un chiffre, tu peux jouer avec l'événement Change() du TextBox, comme ceci :
Pour changer la police d'un textbox :
TextBox1.Font = "Times New Roman"
ou :
TextBox1.Font = "Mistral"
Tu peux placer ce code, par exemple, dans l'événement Initialize de l'UserForm :
Private Sub UserForm_Initialize() TextBox1.Font = "Times New Roman" 'TextBox1.Font = "Mistral" End Sub
Ensuite, pour limiter la saisie à un seul caractère dans le textbox, toujours dans l'événement initialize de l'UserForm, régler la propriété MaxLength à 1 :
Private Sub UserForm_Initialize() TextBox1.Font = "Times New Roman" TextBox1.MaxLength = 1 End Sub
Pour éviter la saisie d'un autre caractère qu'un chiffre, tu peux jouer avec l'événement Change() du TextBox, comme ceci :
Private Sub TextBox1_Change() If Not IsNumeric(TextBox1) Then TextBox1 = "" End Sub
Bonsoir,
Merci bien pour la réponse ces codes marchent avec un seul text box mais mon problème c'est que j'ai un tableau de text box "tab(i,j) " je veux parcourir ce tableau et si une case a changé de valeur je la teste si elle est numérique ou nn
j'ai essayé avec ce code
If (IsNumeric(unite(i, j).Text) = False) Then
MsgBox("veuilez entrer un chiffre de 0 à 9 ")
unite(i, j).Text = ""
mais ça marche uniquement pour la première case tab(0,0)
j'ai essayé avec la boucle for ça ne marche pas car il existe des cases encore vides dans mon tableau
s'il y a une façon de savoir si une case a changé de valeur ça pourra m'aider peut-être
j'ai essayé avec
if (tab(i,j).modified = true) then .....
ça n'a pas marché :\
Merci bien pour la réponse ces codes marchent avec un seul text box mais mon problème c'est que j'ai un tableau de text box "tab(i,j) " je veux parcourir ce tableau et si une case a changé de valeur je la teste si elle est numérique ou nn
j'ai essayé avec ce code
If (IsNumeric(unite(i, j).Text) = False) Then
MsgBox("veuilez entrer un chiffre de 0 à 9 ")
unite(i, j).Text = ""
mais ça marche uniquement pour la première case tab(0,0)
j'ai essayé avec la boucle for ça ne marche pas car il existe des cases encore vides dans mon tableau
s'il y a une façon de savoir si une case a changé de valeur ça pourra m'aider peut-être
j'ai essayé avec
if (tab(i,j).modified = true) then .....
ça n'a pas marché :\
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
14 mars 2014 à 07:53
14 mars 2014 à 07:53
Bonjour,
Si j'ai bien compris...
Tu veux boucler sur tous tes textbox et voir lesquels ont changés, s'ils ont changés, tu veux vérifier leur valeur? C'est bien ça?
Tu peux tenter une boucle comme celle-ci si les n° des textbox se suivent (de 5 à 124 dans l'exemple, à adapter) :
Code à placer dans un bouton de commande (par exemple) :
Dans l'événement Change() de tous tes textbox :
De toutes façons, cette méthode dans le cas que je décris n'est pas la bonne. C'est un élément de réponse. Il nous faut en savoir plus, voire voir ton fichier.
Si j'ai bien compris...
Tu veux boucler sur tous tes textbox et voir lesquels ont changés, s'ils ont changés, tu veux vérifier leur valeur? C'est bien ça?
Tu peux tenter une boucle comme celle-ci si les n° des textbox se suivent (de 5 à 124 dans l'exemple, à adapter) :
Code à placer dans un bouton de commande (par exemple) :
Dim i As Long For i = 5 To 124 'Boucle sur les textbox, du textbox5 au textbox124 If Me.Controls("TextBox" & i).Tag = "X" Then If Not IsNumeric(TextBox1) Then 'ici ton code si le textbox n'est pas numérique Else 'ici ton code si le textbox est numérique End If End If Next i
Dans l'événement Change() de tous tes textbox :
Private Sub TextBox5_Change() TextBox5.Tag = "X" End Sub Private Sub TextBox6_Change() TextBox6.Tag = "X" End Sub Private Sub TextBox7_Change() TextBox7.Tag = "X" End Sub
De toutes façons, cette méthode dans le cas que je décris n'est pas la bonne. C'est un élément de réponse. Il nous faut en savoir plus, voire voir ton fichier.