eastpeople
Messages postés105Date d'inscriptiondimanche 16 décembre 2007StatutMembreDernière intervention11 novembre 2008
-
6 juin 2008 à 10:50
lillith212
Messages postés1229Date d'inscriptionvendredi 16 novembre 2007StatutMembreDernière intervention16 juin 2009
-
12 juin 2008 à 10:02
Bonjour tous les monde.
Je vou explique, dans un user form j'ai 5textbox qui s'appellent prix1 prix2 prix3 prix4 et prix5 et derrière chaque texte box j'ai une procèdure qui est exactement la même.
Comment pourrai je faire pour eviter cette redondance et marquer par exemple for prix1 to prix5 alors faire la même procédure?
Voila mon code qui est derrière toute mes cases:
Private Sub case1_Click()
If MODIFICATION Then Exit Sub
If case1 = False Then
'si la case chekbox1 n'est pas cocher alors
prix1.Enabled = False
'la case prix1 n'est pas griser
Else
prix1.Enabled = True
'la case prix1 est griser (pas accessible)
prix1.Text = InputBox("Veuillez entrer le prix correspondant SVP", "PRIX")
'inputbox apparaît quand une case chekbox est coché
If prix1 = "" Then
'si la case est coché mais que le prix est vide alors
erreur = MsgBox("Vous avez coché la case, veuillez rentrer un prix", vbOKOnly + vbCritical, "OUPS")
'msgbox
prix1.Text = InputBox("Veuillez entrer le prix correspondant SVP", "PRIX")
'inputbox
End If
End If
End Sub
Merci de votre aide
A voir également:
Instruction incorrecte à l'extérieur d'une procédure
eastpeople
Messages postés105Date d'inscriptiondimanche 16 décembre 2007StatutMembreDernière intervention11 novembre 2008 6 juin 2008 à 11:40
Bonjour lillith212, alors j'ai pensé à ce que tu as di mais le problème c'est que si je fais ça dans mon traitement y va y avoir prix1 mais si je fais call changement sur la case prix 2 cela ne sera pas pri en compte.
Tu compren ce que je veux dire?
lillith212
Messages postés1229Date d'inscriptionvendredi 16 novembre 2007StatutMembreDernière intervention16 juin 2009 6 juin 2008 à 12:41
Alors, je pense comprendre ton problème. Voila ce que je te propose. Tu peux recréer tes textbox en utilisant un groupe de controle, pour que la propriété name soit du type : prix(indice) (comme le sugère jmfmarques) Ensuite sur l'événement click tu traites...
Private Sub case1_Click()
If MODIFICATION Then Exit Sub
For intI = 0 to 4
If case1 = False Then
'si la case chekbox1 n'est pas cocher alors
prix(intI).Enabled = False
'la case prix1 n'est pas griser
Else
prix(intI).Enabled = True
'la case prix1 est griser (pas accessible)
prix(intI).Text = InputBox("Veuillez entrer le prix correspondant SVP", "PRIX")
'inputbox apparaît quand une case chekbox est coché
If prix(intI) = "" Then
'si la case est coché mais que le prix est vide alors
erreur = MsgBox("Vous avez coché la case, veuillez rentrer un prix", vbOKOnly + vbCritical, "OUPS")
'msgbox
prix(intI).Text = InputBox("Veuillez entrer le prix correspondant SVP", "PRIX")
'inputbox
End If
End If
Next
End Sub
S.L.B.
<hr />
Vous n’avez pas trouvé la réponse que vous recherchez ?
eastpeople
Messages postés105Date d'inscriptiondimanche 16 décembre 2007StatutMembreDernière intervention11 novembre 2008 6 juin 2008 à 15:26
Alors si j'ai bien compris je recrées des textbox mais dois-je les appelé de la même façon, je n'ai pas bien compri prix(indice)
Et Controls("prix" & i) n'agit pas dans ta réponse non lillith?
Je suis désolée je compren pas bien.
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 6 juin 2008 à 18:38
Re,
lillith212 ne s'est probablement pas rendu compte de ce que tu travailles sous VBA ...
Les groupes de contrôles indexés n'existent pas sous VBA (ils existent sous VB6)
C'est la raison pour laquelle je te suggérais de passer par la collection Controls
Si tu as un contrôle nommé toto4, par exemple, tu peux t'y référer par
Controls("toto4")
et donc également par
no = "4"
Controls("toto" & no)
eastpeople
Messages postés105Date d'inscriptiondimanche 16 décembre 2007StatutMembreDernière intervention11 novembre 2008 7 juin 2008 à 21:21
Ouais evident evident c'est pas le mot approprié lol.
Donc si j'ai compri je doit faire une procédure pour quand la case est coché et une autre quand elle est coché mais que le prix est vide.puis je les appelle?
Je suis desolée je débute c'est dur
lillith212
Messages postés1229Date d'inscriptionvendredi 16 novembre 2007StatutMembreDernière intervention16 juin 2009 12 juin 2008 à 10:02
Re:
En effet, je n'ai pas fait attention que tu étais en VBA autant pour moi...
S.L.B.
<hr />*********************************************************************************
Même si l'orthographe est la science des ânes, avec un petit effort, le message passe mieux...
*********************************************************************************