Code vba pour cellules incrémentées

Résolu
Bonjour,
voilà le problème que je vous pose !
j'ai une cellule J5 qui est incrémentée de 1 en 1 par un bouton.
je voudrais que l'incrémentation aille jusqu'à 5 avec un message disant " changement " puis lorsque l'incrémentation atteint 10 " fin".
je ne sais pas comment introduire ses données dans la macro

si quelqu'un peut m'aider je l'en remercie par avance

PS : j'ai déjà écrit pour le bouton
[J5] = [J5]+1
et après ?????????

8 réponses

  • Votes
  • Date
  • Date décroissante
  1. peut etre quelque chose comme ça

     If [J5] < 10 Then
        [J5] = [J5] + 1
      End If
      If [J5] = 5 Then
        ms = MsgBox("changement", vbOKOnly)
      Else
         If [J5] = 10 Then
           ms = MsgBox("fin", vbOKOnly)
         End If
      End If


    bonne suite ...
    1. Salut,

      Je ne sais pas si j'ai bien compris tes attentes, mais essayes ce code

      Private Sub CommandButton1_Click()
      [J5] = [J5] + 1
      If [J5] <= 5 Then MsgBox "Changement"
      If [J5] = 10 Then MsgBox "Fin"
      End Sub

      Si tu souhaites arrêtrer le compteur à 10

      Private Sub CommandButton1_Click()
      If [J5] = 10 Then Exit Sub
      [J5] = [J5] + 1
      If [J5] <= 5 Then MsgBox "Changement"
      If [J5] = 10 Then MsgBox "Fin"
      End Sub

      A+
      Mike-31

      Une période d'échec est un moment rêvé pour semer les graines du savoir.
      1. Merci pour les réponses
        je vous donne des nouvelles dès que j'ai fait les essais
        A+
        cordialement
        1. Bonjour,

          je ne veux vexé personne, mais j'ai plutôt utilisé le code de Mike 31.
          tout fonctionne bien; j'ai tout de même modifié la valeur de la 1ère série en mettant =5, parce que naturellement si <=, le message "changement" intervenait à chaque nouvelle incrémentation !

          merci du coup de main.
          A+ sur le forum
          bonne journée et bonne continuation
          aux experts
          1. petite question subsidiaire toutefois !
            j'ai insérer une forme un triangle isocèle de couleur rouge
            il y a les formes n° 3 et 4 relier au bouton en J5
            est-il possible quand le compteur atteint 5 de faire passer automatiquement dans la macro la couleur de le forme en blanc par exemple ?
            en d'autres termes à 5 la forme N°3 passe en blanc et à 10 la forme N° 4 passe en blanc
            et quand tout est fini tout redevient rouge?
            pardon pour se surcroit de travail, mais c'est une idée qui m'interresse.
            merci d'avance
            A+
        2. Re,

          Oui bien sur, tout ou presque tout est possible.
          explique moi cette phrase

          en d'autres termes à 5 la forme N°3 passe en blanc et à 10 la forme N° 4 passe en blanc
          et quand tout est fini tout redevient rouge?


          Si je comprends bien, tes formes sont en rouge, à 5 une forme passe en blanc et à 10 l'autre mais qu'entends tu par quand tout est fini
          A+
          Mike-31

          Une période d'échec est un moment rêvé pour semer les graines du savoir.
          1. Bonjour,

            merci de la réponse
            vous avez parfaitement bien compris : et le code doit s'appliquer aux 2 boutons qui sont séparés et qui sont
            1er bouton relié à la forme N)3 et à la forme 4.
            en y réfléchissant, il serait mieux d'avoir un changement de couleur à 5 pour la forme 3 et à 10 pour la forme 4 ET un bouton qui me permette de remettre tous les triangles en rouge (pour repartir de 0 en quelque sorte).

            si me explications ne suffisent pas , n'hésitez pas
            cordialement
            A+
            1. Private Sub CommandButton1_Click()
              If [J5] = 10 Then Exit Sub
              [J5] = [J5] + 1
              If [J5] = 5 Then MsgBox "Changement "
              If [J5] = 10 Then MsgBox "Fin de la série "
              End Sub

              PS : il faudrait , si possible, intégrer le changement de couleur des formes dans le code pour le bouton CommandButton1
              merci d'avance
              Norma
          2. Re,

            Commence par nommer tes formes, dans mon exemple la première forme est nommée Tri_1 et la seconde Tri_2.
            Pour nommer chaque forme clic sur une forme pour l'activer, clic dans la barre d'adresse ou figure la référence de la forme et saisir Tri_1 et Entrée idem pour le seconde

            Pour la recolorisation des formes, il est possible d'éviter le bouton en effaçant simplement le contenu de la cellule J5

            Pour le code clic droit sur l'onglet de feuille/Visualiser le code et coller ces deux codes

            Private Sub CommandButton1_Click()
            If [J5] = 10 Then Exit Sub
            [J5] = [J5] + 1
            If [J5] = 5 Then
            MsgBox "Changement "
            ActiveSheet.Shapes("Tri_1").Fill.ForeColor.SchemeColor = 9
            End If
            If [J5] = 10 Then
            MsgBox "Fin de la série "
            ActiveSheet.Shapes("Tri_2").Fill.ForeColor.SchemeColor = 9
            End If
            End Sub

            Private Sub Worksheet_Change(ByVal Target As Range)
            If Target.Address = "$J$5" Then
            If Target = "" Then
            ActiveSheet.Shapes("Tri_1").Fill.ForeColor.SchemeColor = 10
            ActiveSheet.Shapes("Tri_2").Fill.ForeColor.SchemeColor = 10
            End If
            End If
            End Sub

            Si tu as besoin d'un petit montage fait signe
            1. Mike_31 tu es un génie !
              ça marche et c'est vraiment super
              j'ai un peu adapté pour mon travail et pas de problème
              BRAVO ET MERCI

              je continue mon boulot et si je coince, je poste à nouveau

              encore merci pour tout
              Norma