Compteur

Résolu
Tozinho64 Messages postés 43 Date d'inscription   Statut Membre Dernière intervention   -  
gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Je voudrais avoir deux compteurs sous Excel. Le premier en G11 est juste une somme d'un ensemble de cellule D6:D24(ça c'est facile pour moi). Le second compteur en I11 additionne sa valeur initiale au delta de valeur de la cellule G11 seulement quand G11 augmente.
Exemple:
Au début I11=G11=0
Si G11=2 alors I11=2. Ensuite si G11=1, I11 reste à 2 par contre si G11 passe à 3 (delta de 2 par rapport à sa dernière valeur) I11 s'incréments de ce delta soit I11=2+2=4. Si G11 diminue à 0 par exemple I11 reste à 4 par contre si G11 augment de +3 I11 augmente aussi de +3....

Un bouton permet de reseter I11.

Merci pour votre aide

1 réponse

  1. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    Bonjour,

    Une petite macro événementielle à mettre dans le code de ta feuille concernée pour obtenir ton résultat :
    Dim g11_pre As Double
    Private Sub Worksheet_Calculate()
        If [G11].Value = g11_pre Then
            Exit Sub
        ElseIf [G11].Value < g11_pre Then
            g11_pre = [G11].Value
        Else
            [I11].Value = [I11].Value + [G11].Value - g11_pre
            g11_pre = [G11].Value
        End If
    End Sub
    

    et la procédure de remise à zéro
    Public Sub raz()
        [I11].Value = 0
    End Sub
    
    0
    1. Tozinho64 Messages postés 43 Date d'inscription   Statut Membre Dernière intervention  
       
      Oh merci ca fonctionne trop bien
      Enorme...demain je me l'adapte à mon application...

      Encore merci
      0
    2. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
       
      Bonjour et merci du retour

      Tu peux simplifier le code ainsi
      Dim g11_pre As Double
      Private Sub Worksheet_Calculate()
          If [G11].Value > g11_pre Then
              [I11].Value = [I11].Value + [G11].Value - g11_pre
          End If
          g11_pre = [G11].Value
      End Sub
      
      Bonne utilisation
      0