Incrementer une cellule

Fermé
Yves195805 Messages postés 2 Date d'inscription samedi 19 novembre 2022 Statut Membre Dernière intervention 19 novembre 2022 - 19 nov. 2022 à 13:21
Mike-31 Messages postés 18335 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 1 septembre 2024 - 19 nov. 2022 à 17:47

Bonjour,

Je voudrais incrementer une cellule depuis une  autre cellule.

Quand je tape "Ok" dans la cellule B2, je voudrais que la cellule M2 affiche "1"

J'efface les cellules B2, M2 reste à 1.

Je retape  "Ok" dans B2 et je voudrais que M2 affiche "2"

Et ainsi de suite.

Merci de votre aide


Windows / Chrome 107.0.0.0

3 réponses

jee pee Messages postés 40166 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 7 septembre 2024 9 319
Modifié le 19 nov. 2022 à 15:33

Bonjour,

On peut utiliser une option particulière d'Excel. Supprimer le contrôle d'erreur circulaire (utiliser le champ qui contient la formule dans la formule elle même), contrôle utile pour la majorité des utilisateurs ;-)

Fichier/option/Formule, Activer le calcul itératif, nb max itération 1

Et alors mettre une formule  =SI(B2="Ok";M2+1;M2)
Soucis cela fonctionne bien sur la feuille ouverte, mais l'enregistrement et l'ouverture de la feuille active la formule, avec chaque fois +1 quand B2="Ok"

On peut alors utiliser une formule alambiquée, en utilisant une partie décimale sur l'accumulateur
=SI(B2="Ok";SI(M2=ENT(M2));M2+1,1;M2);ENT(M2))
et sur M2 mettre un affichage de cellule sans décimale.

Il y a peut être plus simple, avec une macro, en utilisant un champ intermédiaire, ...


0
Yves195805 Messages postés 2 Date d'inscription samedi 19 novembre 2022 Statut Membre Dernière intervention 19 novembre 2022
19 nov. 2022 à 17:06

Bonjour,

Merci pour votre implication.

J'ai recopier la deuxiéme formule et j'ai ce message d'erreur.

Si c'est plus simple une macro, je veux bien.

0
Mike-31 Messages postés 18335 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 1 septembre 2024 5 095
Modifié le 19 nov. 2022 à 18:03

Bonjour,

suivant ce que j'ai compris, en VBA

clic droit sur l'onglet de la feuille concerné, colle ce code

Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Not Intersect(Target, [B2]) Is Nothing Then
If [B2] = "Ok" Then [M2] = [M2] + 1
End If
End Sub

0