Incrémentation automatique des modifications d'un document

Bonjour le forum,

Je bloque et je n’arrive pas à voir comment je peux incrémenter automatiquement dans la colonne « G » le nombre de modification d’un document identifié par son code situé dans la colonne « D ».

Je m’explique. Dans le fichier en PJ quand j’ajoute en double cliquant dans la colonne « A » un numéro j’ajoute automatiquement et une boite de dialogue me demande de saisir le code unique de la formation qui est mis dans la colonne « D » puis je dois dire si c’est un document initial ou modifié en cliquant sur « OUI » ou « NON » et le chiffre « 1 » est mis dans la colonne « E » ou dans la colonne « F ». Je voudrais dans le cas où il est mis 1 dans la colonne « F » (document modifié) qu’un cumul du nombre de modification qui a été fait pour une formation identifié par son code unique de la colonne « D » soit mis dans la colonne « G ».

Par exemple lorsque j’ai double cliqué en « A14 » le numéro 204308 est apparu, j’ai saisi le code de la formation DH42 qui s'est mis en "D14". Comme c’est une modification le chiffre 1 c'est mis dans la colonne "F14" et AUTOMATIQUEMENT il faudrait qu’on me cumul le nombre total de modification pour le code DH42 déjà fait ce qui me donnerait dans la colonne "G14" le chiffre 3 car c’est la troisième modification.

J'espère que j'ai été clair et que quelqu'un pourra m'apporter une solution. Cela évitera que je fasse un filtre sur le code saisie et que je compte le nombre de modification de la colonne "F" pour mettre manuellement le résultat dans la colonne "G".

Cordialement.

Bonjour

Un essai à tester. Te convient-il ?

Bye !

Super gmb. Impec je mets en résolu.

Juste si tu peux m'expliquer les lignes que tu as mises qui sont celles ci-dessous :

nbDaf = WorksheetFunction.CountIf(Range("D6:D" & Target.Row - 1), code)
       colDaf = IIf(nbDaf > 0, 6, 5)
       Cells(Target.Row, colDaf).Value = 1
       Cells(Target.Row, 7) = nbDaf

notamment IIF(nbDaf > 0,6,5) et comment s'incrément la colonne "G" qui ne figure pas dans tes lignes.

Merci encore pour ta réponse éclair.

nbDaf = WorksheetFunction.CountIf(Range("D6:D" & Target.Row - 1), code)  'On compte le nombre de "code" (valeur saisie dans le                                                                          'intputbox) qu'on a dans la colonne D

colDaf = IIf(nbDaf > 0, 6, 5) 'Si ce nombre est supérieur à 0 on donne à colDaf (colonne où on va écrire 1) la valeur 6 (F).                               'S'il vaut 0, alors colDaf vaudra 5 et on écrira 1 dans la colonne E

Cells(Target.Row, colDaf).Value = 1      'on écrit 1 dans la colonne colDaf : E ou F

Cells(Target.Row, 7) = nbDaf             'la valeur de nbDaf est écrite en colonne G

Merci c'est plus clair. je ne connaissais pas cette fonction IIF. Grace à ce forum et à tout ces passionnés d'Excel on en apprend toujours plus. C'est super.

Cordialement.

Bonjour le forum,

En 1er lieu une bonne année 2021 au forum.

Je réactive ce sujet car j'ai constaté un problème auquel je n'avais pas pensé. Comment prendre en compte les modifications qui ont été faite dans l'onglet 2020 (si elles existent) dans l'onglet 2021.

Par exemple le code DH42 est modifié en 2021. Il faudrait que dans la colonne « G » apparaisse le chiffre 4 car c’est la quatrième modification qui est effectuée sur ce code. La macro qui fonctionne très bien (merci gmb) me donne zéro car pour elle c’est la 1ère fois que cette formation apparait en 2021 (ce qui est vrai) mais ce n’est pas la 1ère fois qu’elle est modifiée.

Je ne sais pas si mon explication a été claire et si gmb

ou un autre peut m’apporter une aide.

Bonjour et meilleurs voeux également

Nouvelle version.

Bye !

Merci pour ta réactivité.

Quand je saisie un code en 2021 déjà utlisé en 2020 la macro fait son boulot par contre si je tape un nouveau code en 2021 la macro me remplit la colonne "F" et non pas le "E" de l'onglet 2021.

Je pense pour que la macro fonctionne avec tous les codes de 2020 saisies, il faut que je remplis l'onglet caché "Modif" avec tous les codes de 2020 ? Si oui je les copie comment car j'ai 1000 lignes pour 400 codes en 2020 ?

Cordialement.

si je tape un nouveau code en 2021 la macro me remplit la colonne "F" et non pas le "E" de l'onglet 2021.

La nouvelle version corrige ce bug

Si oui je les copie comment car j'ai 1000 lignes pour 400 codes en 2020 ?si je tape un nouveau code en 2021 la macro me remplit la colonne "F" et non pas le "E" de l'onglet 2021.

il faut en effet initialiser une fois la feuille Modif. Les années suivantes ce sera inutile.

Pour cela, je te propose de joindre le fichier avec les données de l'année 2020 et je ferai le nécessaire...

Bye !

Salut gmb,

Ta nouvelle version est OK. Merci. J’ai intégré tous les codes de 2020 dans l’onglet « Modif ». Je ne sais pas si j’ai fait au plus simple mais dans les grandes lignes j’ai créé un TDC sur 2020 pour extraire le nombre de codes qu’il y avait auquel j’ai retranché la valeur 1 et ça m’a donné le résultat attendu.

Encore merci mais est-il possible d’améliorer l’onglet « Modif » de façon à ce que dans la colonne « B » la date de la dernière MODIF ou la date de création apparaisse ?

Je mets le sujet en résolu.

Cordialement.

J'ai pu adapter le code pour l'ajout de la date en colonne "B"; Cela donne :

        If Not cell Is Nothing Then
            cell.Offset(0, 1) = Date
            cell.Offset(0, 2) = cell.Offset(0, 2) + 1
            Range("F" & Target.Row) = 1
        Else
            Set cell = fM.Range("A" & Rows.Count).End(xlUp)(2)
            cell = UCase(code)
            cell.Offset(0, 1) = Date
            cell.Offset(0, 2) = 0
            Range("E" & Target.Row) = 1
        End If

Je pense que c'était comme ça qu'il faut faire.

Rechercher des sujets similaires à "incrementation automatique modifications document"