Incrementer une cellule

Yves195805 Messages postés 2 Statut Membre -  
Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   -

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

  1. jee pee Messages postés 31875 Date d'inscription   Statut Modérateur Dernière intervention   9 977
     

    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
  2. Yves195805 Messages postés 2 Statut Membre
     

    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
  3. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     

    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