Exécution d'un code à partir d'un SpinButton

Bonsoir à tous,

En K1, j'ai la formule suivante :

=DATEVAL("01/" & O1 & "/" & P1)+(M1*3)

O1 = 5 (mois en cours)

P1 = 2013 (Année en cours)

Quand j'incrémente d'un pas un SpinButton sur la feuille, la date en K1 change et un code VBA s'exécute à l'évènement SpinButton1_Change :

Private Sub SpinButton1_Change()
    With Me.SpinButton1
        .LinkedCell = Range("M1").Address
        .SmallChange = 1
        .Max = 10
        .Min = 0
        .PrintObject = False
        If .Value > 0 And .Value <= 10 Then
            'Call Procédure
        End If
    End With
End Sub

Mais voila, j'ai un souci :

A l'ouverture du classeur, la cellule liée $M$1 affiche un zéro 0 et la date en K1 affiche le 01/05/2013, mais le code n'est pas exécuté.

Si j'actionne le SpinButton, le code sera exécuté avec en K1 la date du 04/05/2013.

Mais j'ai besoin de le faire fonctionner avec la date du 01/05/2013.

Comment faire pour que le code se lancera à cette date ?

Merci d'avance.

139spinbutton-v001.zip (10.76 Ko)

Bonjour,

Tu peux provoquer un premier lancement de la procédure à l'ouverture du classeur avec l'évènement Workbook.Open.

A+

Bonjour frangy,

Comme il y a plusieurs feuilles dans mon classeur, et que le résultat ou est incorporer le SpinButton repose avant tout sur les données des autres feuilles, alors je ne peux provoquer le code à l'ouverture du classeur.

Bonjour apt,

Désolé, mais il doit manquer quelques éléments pour parvenir à comprendre le problème.

Le seul résultat que je vois dans la feuille où est incorporé le SpinButton, c'est la date qui est incrémentée par ce même SpinButton et le résultat ne repose pas sur les données d'autres feuilles (heureusement car il n'y a aucune données dans les 2 autres feuilles).

Donc, à l'ouverture du classeur, la date étant le 01/05/2013, ta procédure sera lancée à cette date.

Est-ce que quelque chose m'aurait échappé ?

A+

Bonjour apt,

On va peut-être attendre que tu finalises la réponse dans l'autre forum.

Inutile d'user les énergies pour rien.

A+

Bonjour,

En renseignant les propriétés du SpinButton en mode création, j'ai pu lancer le code de ma procédure à l'activation de la feuille :

Private Sub Worksheet_Activate()
    If [M1] = 0 Then MaProcédure
End Sub

Ou faire un aller/retour pour avoir un zéro depuis la toupie (Incrémenter pour avoir un 1 puis décrémenter pour avoir un zéro) et comme ça la procédure est déclenchée :

Private Sub SpinButton1_change()
    With Me.SpinButton1
        MaProcédure
    End With
End Sub

EDIT :

Pas vu ta réponse.

Merci pour toi frangy

Rechercher des sujets similaires à "execution code partir spinbutton"