XL 2016 Résolu... Compter le nombre de fois que la valeur d'une cellule donnée change

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Franck Mutshanga The firs

XLDnaute Nouveau
Bonjour
J'ai un problème... Je suis débutant en vba excel et là je suis bloqué avec mon petit projet ! J'ai besoin d'aide sur comment compter le nombre de fois qu'une cellule est modifiée...
J'ai eu à lire des trucs dessus mais ça ne fonctionne pas ! Quelqu'un peut me faire un exemple de fichier qui fonctionne svp... Merci de votre aide !
 
Bonjour le fil, Franck, job75

En comprenant la question telle que je l'ai fait, avec cette formule =SOMMEPROD(1/NB.SI($A$1:$D$1;$A$1:$D$1))
(saisie en E1 par exemple)
Si dans la plage, j'ai les valeurs suivantes : 1,2,3,4
la formule renvoie 4
Si j'ai ces valeurs: 1,1,1,2
la formule renvoie 2

EDITION: Bonjour dg62
 
Dernière édition:
Bonjour Franck, Staple1600

et avec une procédure événementielle
Dans le fichier joint le nombre de changements s'incrémente sur une plage définie cellule par cellule.

VB:
Private Sub Worksheet_Change(ByVal Target As Range)

    If Target.Address = "$A$1" Then
   
    Range("D5").Value = Range("D5").Value + 1
   
   End If
   
   
End Sub
 

Pièces jointes

Dernière édition:
Re, bonjour JM, dg62

Voyez le fichier joint et cette macro dans le code de la feuille (clic droit sur l'onglet et Visualiser le code) :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim P As Range, a, i%
Set P = [A1:D2]
'---initialisation---
If Not IsArray([Memo]) Then
    ReDim a(1 To 2, 1 To P.Columns.Count)
    For i = 1 To P.Columns.Count
        a(1, i) = ""
        a(2, i) = 0
    Next
    ThisWorkbook.Names.Add "Memo", a 'nom défini
End If
'---comptage---
a = [Memo]
For i = 1 To P.Columns.Count
    If CStr(P(1, i)) <> a(1, i) Then
        a(1, i) = CStr(P(1, i))
        a(2, i) = a(2, i) + 1
    End If
Next
'---MAJ---
ThisWorkbook.Names.Add "Memo", a 'nom défini
Application.EnableEvents = False 'désactive les évènements
P.Rows(2) = Application.Index(a, 2, 0)
Application.EnableEvents = True 'réactive les évènements
End Sub
A+
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
143
Retour