Augmenter valeurs de cellules

bonjour, ou même bonsoir !

je vous écris pour avoir un petit peu d'aide à propos d'une fonctionnalité que je voudrais mettre dans une feuille. Je vais tenter d'être le plus explicite possible ! Dans une cellule, j'ai un nombre. Il ne peut pas être plus petit que 150. J'ai inséré un bouton "toupie" depuis l'onglet développeur (version 2007) pour augmenter ce nombre de 50 en 50 (format du bouton, puis changement de pas). Là où ça se corse, c'est que j'aimerais que le pas change automatiquement une fois certaines valeurs atteintes. Concrètement, je voudrais qu'une fois la valeur de 1..000 est atteinte, le changement de pas soit de 100, et qu'à partir de 10.000, il soit de 250. C'est là que j'ai besoin de vos lumières ! Déjà pour me dire si ce que je souhaite est faisable, et si oui, me dire comment faire. J'avoue n'avoir aucune notion de VBA donc si vous me parlez de formules, je risque de ne rien comprendre !

Voilà, j'attends vos réponses. Merci d'avance !

Bonjour,

Ton bouton toupie doit être un contrôle ActiveX ("Inserer" -> "Controles ActiveX"), en mode création, tu double clique sur le bouton, ceci t'amène dans le VBE là, tu colle le code :

With SpinButton1
    'adapter l'adresse de la cellule
    If Range("A1") >= 1000 Then .SmallChange = 100

    If Range("A1") >= 10000 Then .SmallChange = 250

    If Range("A1") < 1000 Then .SmallChange = 50

End With

entre les deux lignes :

Private Sub SpinButton1_Change()

End Sub

Dans la boite des propriétés (en bas à gauche) à la propriété "LinkedCell" tu défini la cellule que tu souhaite lier à ton bouton, dans mon exemple c'est A1, à la propriété "Min" tu mets 150 (valeur mini que tu souhaite), à la propriété "SmallChange" tu mets 50 (pas mini que tu souhaite) et dans la propriété "Max" c'est toi qui vois. Une fois ceci fait, tu clique sur le bouton "Mode création" (équerre, crayon et règle) puis tu teste.

Hervé.

salut

whaou c'est exactement ce que je recherche, merci ! Un dernier petit truc : cette fonction, j'aimerais l'appliquer à plusieurs cellules de la même feuille, mais sans avoir à créer autant de boutons et formules qu'il y a de cellules concernées. Ce que j'aimerais, c'est que quand je sélectionne une cellule, cliquer sur le bouton modifie cette cellule. Et sélectionner une autre cellule, permet de modifier cette cellule, toujours avec le même bouton. C'est pour éviter la multiplication de boutons, et la surcharge d'objets sur la feuille. J'ai recherché sur google, j'ai trouvé un truc avec activecell, mais je sais pas trop quoi en faire. Merci d'avance !

quelqu'un, siou plait ?

Re,

Remplace tout le code précédent par celui-ci. Je pense qu'il va falloir faire quelques améliorations mais je n'ai plus le temps maintenant :

Private Sub SpinButton1_Change()

    With SpinButton1

        'défini le pas en fonction de la valeur de la cellule
        If ActiveCell >= 1000 Then .SmallChange = 100

        If ActiveCell >= 10000 Then .SmallChange = 250

        If ActiveCell < 1000 Then .SmallChange = 50

    End With

End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    With SpinButton1

        'si pas de valeur dans la cellule, pas de cellule liée et fin
        If Target.Value = "" Then

            .LinkedCell = ""
            Exit Sub

        End If
        If Not IsNumeric(Target.Value) Then

            .LinkedCell = ""
            Exit Sub

        End If

        'défini la cellule devant recevoir la valeur
        .LinkedCell = Target.Address(0, 0)

        If Target.Value < .Min Then .Value = .Min Else .Value = Target.Value

    End With

End Sub

Hervé.

Theze a écrit :

Re,

Remplace tout le code précédent par celui-ci. Je pense qu'il va falloir faire quelques améliorations mais je n'ai plus le temps maintenant :

Private Sub SpinButton1_Change()

    With SpinButton1

        'défini le pas en fonction de la valeur de la cellule
        If ActiveCell >= 1000 Then .SmallChange = 100

        If ActiveCell >= 10000 Then .SmallChange = 250

        If ActiveCell < 1000 Then .SmallChange = 50

    End With

End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    With SpinButton1

        'si pas de valeur dans la cellule, pas de cellule liée et fin
        If Target.Value = "" Then

            .LinkedCell = ""
            Exit Sub

        End If
        If Not IsNumeric(Target.Value) Then

            .LinkedCell = ""
            Exit Sub

        End If

        'défini la cellule devant recevoir la valeur
        .LinkedCell = Target.Address(0, 0)

        If Target.Value < .Min Then .Value = .Min Else .Value = Target.Value

    End With

End Sub

Hervé.

merci de ton aide, mais ça ne marche pas. Quand je clique sur le nouveau bouton avec ce nouveau code, rien ne se passe, même la cellule sélectionnée se désélectionne...

Rechercher des sujets similaires à "augmenter valeurs"