Microsoft 365 Incrémentation numérique automatique conditionnelle à partir d'un texte

Lubé

XLDnaute Nouveau
Bonjour à vous,

Je souhaite utiliser de meilleures compétences que les miennes pour créer des valeurs numérique permettant de générer des références de documents pour de la gestion documentaire. Je pense que le VBA est la solution, mais je ne maitrise absolument pas. Voilà ou j'en suis dans l'écriture (le brouillon d'avant le brouillon !) du code. Voilà où j'en suis dans le fichier "GED" joint.

Les colonne f, h, k et l sont les éléments que je veux comparer entre eux de façon à générer un nouveau numéro à partir de 1 si non existant. Si existant, incrémentation de 1 de l'élément suivant.

Dans le cas ou le domaine est la production (colonne E)
f = valeur? intitulé projet ; >1 ; dans colonne F à partir de F5 jusqu'à inconnu en format texte
h = valeur? code projet ; >1 ; dans colonne H à partir de H5 jusqu'à inconnu en format \b "000"
k = valeur? code doc ; >1 ; dans colonne K à partir de K5 jusqu'à inconnu en format \b "000"
l = valeur? Version ; >1 ; dans colonne L à partir de jusqu'à inconnu L5 en format \b "00"

Si f = vide alors h, k, l = vide
Si f <> f+1 alors h = 1
Si f = f+1 alors h = h + 1
Si h <> h + 1 alors k = 1
Si h = h + 1 alors k = k + 1
Si k <> k + 1 alors l = 1
Si k = k+ 1 alors l = l + 1

Dans le cas ou le domaine est autre que production
k = valeur? code doc ; >1 ; dans colonne K à partir de K5 jusqu'à inconnu en format \b "000"
l = valeur? Version ; >1 ; dans colonne L à partir de jusqu'à inconnu L5 en format \b "00"

Si k = vide alors l = vide
Si k <> k + 1 alors l = 1
Si k = k+ 1 alors l = l + 1

En espérant avoir été compréhensible, à défaut d'être très clair !

Merci pour votre temps.
 

Pièces jointes

  • GED v2.xlsx
    722.9 KB · Affichages: 35

Lubé

XLDnaute Nouveau
3. Oui, elle ne s'incrémente pas alors qu'elle le devrait. Content d'avoir enfin réussi à m'exprimer :)

Je ne "provoque" pas un double clique. Lorsque je double-clique dans une case du tableau de la col F, la col G s'incrémente, or il ne faut pas nécessairement. En G, l'incrémentation doit se faire si la col F est différente.

Je te propose de faire le test sans changer les valeurs en F, tu verras de changement en G, ce qui inopportun. Le risque c'est qu'un utilisateur face la manipulation double-clique par hasard et que cela entraine un changement de code projet (col G) pour un seul document de ce projet. Or tous les documents, col C, d'un projet, col G et par extension col F, doivent être régis sous le même code projet, col F.
 

danielco

XLDnaute Accro
En fait, ce n'est pas le double clic qui provoque l'incrémentation. C'est le fait de mettre la cellule en mode édition (ce que fait le double clic), comme si tu voulais la modifier et d'appuyer sur la touche entrée. C'est facile à régler.

Pour le reste, est-ce que tu pourrais essayer d'exxpliquer ce qu'il faut faire d'une manière que je puisse comprendre

Par exemple :
Nouveau intitulé de projet => incrément du code projet
etc.
parce que j'y perds mon latin.

Daniel
 

Lubé

XLDnaute Nouveau
Un projet n = un code projet unique

Dans ce projet n
Un document = code doc unique
*création du document n dans ce projet n
Une version = N° version unique =0 car création

*modification du document n dans ce projet n
Une version = N° version unique =+1 car modification

*création document x dans ce projet = code doc + 1
Une version = N° version unique = 0 car création

Création projet = code projet n + 1 unique
Dans ce projet n+1
*création du document n dans ce projet n +1
Une version = N° version unique =0 car création
 
Dernière édition:

Lubé

XLDnaute Nouveau
Heu, bah, oui c'est tout, enfin c'est déjà pas mal

La colonne L est utilisée dans cette partie :
*création du document n dans ce projet n
Une version = N° version unique =0 car création (col L)
*modification du document n dans ce projet n
Une version = N° version unique =+1 car modification (col L)

*création document x dans ce projet = code doc + 1
Une version = N° version unique = 0 car création (col L)
 

Lubé

XLDnaute Nouveau
Une "modification du document" c'est la raison pour laquelle une nouvelle ligne va être créée dans un projet n pour un document n déjà présent dans la liste document. Comme ce document est déjà existant, une "nouvelle version est créée" ce qui se traduit par n+1 dans la colonne L

Effectivement, c'est beaucoup plus simple lorsque l'on sait à quoi sert le tableau !
 

Lubé

XLDnaute Nouveau
Je persiste à me faire comprendre :

Même projet + même type doc ET DIFFÉRENT intitulé (col F) alors code doc = n+1 (col K)
Même projet + même type doc ET MÊME intitulé (col F) alors code doc = n (col K) ET version = n+1 (col L)

Voilà les différences entre col K et L.

Une incrémentation en colonne K signifie que la valeur de la ligne en colonne L = 00. Quand aucune autre information (exception de la colonne A) de la ligne est modifiée, alors la version =n+1

:)
 

Discussions similaires

Réponses
7
Affichages
292