mini et maxi d'un spinbutton

  • Initiateur de la discussion Hervé
  • Date de début
H

Hervé

Guest
Bonjour tout le monde

petit souci avec un spinbutton incrémentant un label

voila un extrait du code :

Private Sub SpinButton1_SpinDown()
UserForm1.SpinButton1.Min = 0
UserForm1.SpinButton1.Max = 31
UserForm1.Label3.Caption = UserForm1.Label3.Caption - 1

ce code devrait interdire d'aller en dessous de 0 ou au dessus de 31 mais ça ne marche pas (j'en suis triste).

ou est mon souci, qu'elle erreur de code ai-je bien pu commettre, pourquoi je suis nul en VBA................

merci pour vos réponse.

Hervé
 
H

Hervé

Guest
salut gérard,

ben si c'est plus facile mais ca ne marche toujours pas, j'avais commencé à régler les min et max dans propriété mais sans résultat ??????? d'ou mon code.

merci de ton aide.

salut
hervé
 
H

Hervé

Guest
resalut,


je me permet de relancer ce post car je n'ai pas trouvé de solution.

et au boulot des petits malins s'amusent à dépasser les critères des spin button de l'appli, foutant ainsi un joli b....l.

en vous remerciant d'avance pour votre aide.

salut
Hervé
 
T

Ti

Guest
pas vraiment étonnant que ça ne marche pas. Tu n'utilises pas le bon événement, tu réinitialises les min et max de ton spin à chaque clic et tu ne mets absolument pas la valeur reflétée par ton spin dans ton label.

Donc, déjà, tu peux définir ton min et max directement dans les propriétés comme te le dit Gérard, ou si tu y tiens vraiment, mets les simplement dans ton Userform_Initialize, mais certainement pas dans ton Spinbutton1_SpinDown

Ensuite, utilise l'événement Change simplement comme ceci :

Private Sub SpinButton1_Change()
Label3.Caption = SpinButton1.Value
End Sub

et tu n'auras plus de problème de dépassement de tes limites.

Pas besoin de qualifier tous tes controles par Userform1 (UserForm1.Label3), c'est inutile et générateur d'erreurs si tu changes le nom de ton Userform. A la limite, écris Me.SpinButton1.
Moi je ne mets rien du tout et ça va plus vite...
 
H

Hervé

Guest
salut ti

merci pour la solution à mon problème. Mais j'ai "senti" de l'énervement dans ton post.

Je me met au VBA sur le tard et pour raison professionnel, donc désolé si je n'utilise pas les bons événements et si je nomme tous mes controles pour éviter de me paumer.

bonne soirée à toi

Hervé
 
@

@+Thierry

Guest
Bonsoir ou bon ronflements !!!

Ti est comme çà et si on le connait on ne lui en veut pas du tout car il a une générosité inégalée dans le partage de connaissance sur ce Forum (d'ailleurs je me demande ce qu'il peut apprendre encore ici !! lol) (PS c'est moi qui lui est appris LOL !!!! (lol, lol, lol !!!)

Et sinon Ti , "me" y en a pas d'accord ...... "Moi je ne mets rien du tout et ça va plus vite

Me y en a taper "me." et hop :
Me.TousLesControlesPossiblesDeMonUserForm en liste déroulante sous VBE....... Sans les taper.... Juste ===> "Me."

Me y en a très content comme ça car je tape pas et je trouve mes contrôles sans erreur de syntax !!!

Me y en a peut apprendre queqchose à Ti !!!

Bonne Nuit à Ti à Me and à You !
@+Thierry
 
T

Ti

Guest
Arf, je savais Thierry, que tu allais passer par derrière en lisant ça. Oui, d'accord avec toi, c'est pourquoi je signalais à Hervé qu'on pouvait utiliser Me.Etc., mais il n'empêche que je ne l'utilise jamais.

En fait, voici comment je procède : quand je m'occupe d'un contrôle, je clique dessus (et j'obtiens par cette action son événement par défaut). Ensuite chaque fois que je veux programmer un nouvel événement, je me place sur une de ses macros et dans la fenêtre Propriétés, je sélectionne l'événement que je veux gérer.
Par contre, si je fais référence à un autre contrôle dans une macro, alors oui, je me tape tout à la main : mais c'est bon pour l'agilité des doigts ! :)
 

Discussions similaires

Statistiques des forums

Discussions
312 305
Messages
2 087 078
Membres
103 455
dernier inscrit
saramachado