[Excel] Ajouter un préfixe d'après une cellule et incrémenter un nombre [Résolu]

Signaler
Messages postés
148
Date d'inscription
samedi 30 mai 2009
Statut
Membre
Dernière intervention
6 juin 2021
-
 tomafou -
Bonjour,

Je suis entrain d'éditer un tableau afin de suivre mes projets en cours mais je bloque sur le formatage de mes cellules pour avoir un tableau organisé comme suit :

Ma première colonne "A" correspond au "Type" de projets :
Par exemple "Maçonnerie" ou "Charpente". Je peux sélectionner ce type via un menu déroulant dans la cellule.

Ma seconde colonne "B" correspond au "N° de dossier".
Dans l'idée, à chaque nouveau dossier, je copie-colle la ligne précédente et le N° de dossier s'incrémente par le biais de la formule =somme(A2+1) .
Par exemple : si A3 = 001, A2 sera égal à "A3+1" soit 002.

Par contre, j'aimerai (et ça je n'arrive pas à le faire) que le N° de dossier s'incrémente en fonction du nombre de dossiers précédents selon si je suis en "Maçonnerie" ou en "Charpente".
Par exemple :
1er projet de l'année en "Maçonnerie" = 001
2nd projet de l'année en "Maçonnerie" = 002
3e projet de l'année en "Charpente" = 001
4e projet de l'année en "Maçonnerie" = 003
5e projet de l'année en "Charpente" = 002
etc...

Et pour compliqué le tout et afin de différencier les dossiers, j'aimerai que la cellule "N° de dossier" affiche automatiquement le préfixe "MAC-" ou "CHAR-" selon si j'ai précédemment sélectionné "Maçonnerie" ou "Charpente" en colonne "A".

Je ne sais pas si c'est bien clair ce que je souhaite.... Désolé.

A savoir aussi que je suis un peu néophyte sur Excel et que VBA ne me parle pas du tout.
En gros, j'aimerai faire cela via des formules "simples" si c'est possible...

Ma "logique" d'édition de mon tableau n'est peut-être pas bonne cela dit, donc n'hésitez pas à me dire comment faire depuis un feuille vierge s'il le faut.

Merci beaucoup pour votre aide !

Configuration: Windows / Firefox 87.0

8 réponses

Messages postés
2477
Date d'inscription
vendredi 25 juillet 2014
Statut
Membre
Dernière intervention
12 juin 2021
1 133
Bonsoir
Pour avoir la dizaine de l'année tester
=DROITE(TEXTE(ANNEE(B3);"0000");2)
Messages postés
24103
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
12 juin 2021
6 802
Tu n'y arrive pas car tu as inséré une ligne 1 vide, C2 devient C3.
Ne prend pas cette mauvaise habitude de mettre une ligne et colonne vide.
Ca ne sert à rien d'autre que compliquer les formules

De plus j'avais omis le fait que tu voulais redémarrer à 1 en début d'année. Ta formule en C2 est :
=SI(GAUCHE(B2;1)="B";"BE";"DE")&"-"&DROITE(ANNEE(A2);2)&TEXTE(SOMMEPROD((ANNEE($A$2:A2)=ANNEE(A2))*($B$2:B2=B2));"000")


Je ne pense pas que tu sois sur excel 2003. Il faut utiliser le type *.xlsx (ou *.xlsm si macro) et non *.xls
https://www.cjoint.com/c/KDksiYQZMSD

Du coup, tu veux par macro ou pas ?
eric
Messages postés
148
Date d'inscription
samedi 30 mai 2009
Statut
Membre
Dernière intervention
6 juin 2021
7
Bonjour,

désolé du retard, je n'ai pas eu le temps de me pencher sur le tableau depuis samedi.
Merci pour ta solution, c'est niquel et ça me convient très bien !

Petites questions :
- Qu'est-il mieux de faire pour créer un nouveau dossier ? Faire un copier/coller de toute la ligne sur la ligne inférieure ? ou de "glisser la cellule" vers celle d'en-dessous ?
- Est-il possible que la 1ère ligne soit le dernier dossier créer ? Actuellement c'est l'inverse, ils sont du plans anciens au plus récent. Si c'est possible comment je créer un nouveau dossier pour que la formule suive correctement ?

Je suis sur LibreOffice, mais je peux enregistrer en .xlsx ou .xlsm.
Quel est l'avantage de la macro par rapport à la formule ?
Dans l'absolu, je veux bien car je suis curieux d'apprendre.

Merci et bonne journée !
Messages postés
24103
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
12 juin 2021
6 802 >
Messages postés
148
Date d'inscription
samedi 30 mai 2009
Statut
Membre
Dernière intervention
6 juin 2021

Bonjour,

Qu'est-il mieux de faire pour créer un nouveau dossier ?
Comme tu préfères, ça ne change rien à la formule.

Est-il possible que la 1ère ligne soit le dernier dossier créer ?
c'est possible mais ça commence à devenir infâme. En C2 :
=SI(GAUCHE(B2;1)="B";"BE";"DE")&"-"&DROITE(ANNEE(A2);2)&TEXTE(SOMMEPROD((ANNEE($A$2:$A$5)=ANNEE(A2))*($B$2:$B$5=B2))-SOMMEPROD((ANNEE($A$2:A2)=ANNEE(A2))*($B$2:B2=B2))+1;"000")

et à mon avis risqué.
Qu'un utilisateur oublie ou ait la flemme d'insérer une ligne 1 vide et se mette ailleurs et tout est faussé.

Si tu es sur libre office, les macros ne sont pas compatibles.
Une macro sera beaucoup plus fiable sur ce type de besoin, et de loin.
Déposer ta demande sur un forum dédié.
eric
Messages postés
24103
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
12 juin 2021
6 802
Bonjour,

=SI(GAUCHE(A2;1)="M";"MAC";"CHAR")&"-"&TEXTE(NB.SI($A$1:A2;A2);"0000") 

le problème avec ce type de solution par formule, c'est que tu dois t'interdire tout tri.
Le n° étant dépendant de la position, un tri les changerait.
Seule une macro vba permettrait de s'en affranchir
eric
Messages postés
148
Date d'inscription
samedi 30 mai 2009
Statut
Membre
Dernière intervention
6 juin 2021
7
Bonjour Eric,

Merci beaucoup pour votre aide si rapide.

Je viens d'essayer avec cette formule et c'est parfait !
Mais, je me dis que ce serait plus lisible si mon numéro de dossier était lié à l'année en cours.
Par exemple, 1er dossier de l'année numéroté en 21001. 2eme dossier en 21002 et ainsi de suite. Et en 2022, le numéro sera 22001, 22002, etc...
Tout en étant indexé au Type "MAC" ou "CHAR".
Croyez-vous que cela est possible ?

Je ne sais pas si par "tri" vous entendez la fonction TRI de A à Z par exemple ou, si la "fonction" affiché que les cellules "MAC" ou "CHAR" est considéré comme un tri.
Je suis désolé, je ne sais pas comment bien expliquer...

Je veux bien essayer une macro VBA mais il faut que vous soyez prêt à y consacrer un peu de temps, je n'y connais rien du tout... ! ;)
Messages postés
148
Date d'inscription
samedi 30 mai 2009
Statut
Membre
Dernière intervention
6 juin 2021
7
Edit :
Je viens de trouver comment lié le N° de dossier à l'année.
Voici la formule modifiée :
=SI(GAUCHE(A3;1)="M";"MAC";"CHAR")&"-"&"21"&TEXTE(NB.SI(A$3:$A3;A3);"0000")

Pensez-vous qu'elle soit "juste" ?
Messages postés
24103
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
12 juin 2021
6 802
Bonjour,

Je ne sais pas si par "tri" vous entendez la fonction TRI de A à Z par exemple
oui, c'est ça
ou, si la "fonction" affiché que les cellules "MAC" ou "CHAR" est considéré comme un tri.
là tu parles d'un filtre, ça tu y as droit

Ta formule est incorrecte car tu mets l'année en dur, il faut la récupérer depuis une date si tu ne veux pas devoir la modifier chaque année.
Avec une date en C l'année sera :
DROITE(ANNEE(C2);2)


Quant au vba, il faut que ton fichier soit finalisé et que tu aies pensé à tout.
Une fois une macro mise, plus le droit de déplacer les colonnes utilisées (et donc d'en insérer devant) sans devoir adapter la macro.
Une fois décidé, il faut que tu déposes un fichier anonymisé de qq lignes sur cjoint.com et que tu colles le lien fourni ici.
eric
Messages postés
148
Date d'inscription
samedi 30 mai 2009
Statut
Membre
Dernière intervention
6 juin 2021
7
Concernant l'année, cela veut dire qu'une colonne "Année" doit être créée et qu'à chaque répétition de ligne apparaitra une cellule "2021", "2022", etc... ?
L'idée c'était d'avoir l'indice de l'année directement dans le N° de dossier : "20007" ou "21015" ou "22003" m'indique directement que le dossier a été fait en 2020, 2021 ou 2022.

Si je dois modifier ma formule une fois par an, je m'en accommoderai, il y a plus fastidieux, même si j'entends bien que ce n'est pas parfait comme solution.

Sinon, pour l'instant mon fichier est susceptible d'évoluer car je suis aux prémices. Typiquement mon souhait d'intégrer l'année dans le numéro de dossier n'était pas prévu à la rédaction de mon 1er message.
Cela dit, je vais essayer de réfléchir aux infos utiles dont j'ai besoin dans l'immédiat.
Comment fait-on pour éditer un fichier anonyme ?

Merci !
Messages postés
24103
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
12 juin 2021
6 802
Soit rigoureux...
Tu dois ajouter une colonne date de création que tu rempliras avec le raccourci Ctrl+;

Anonyme : Noms et valeurs bidons
Messages postés
148
Date d'inscription
samedi 30 mai 2009
Statut
Membre
Dernière intervention
6 juin 2021
7
Je viens d'éditer un tableau, voici le lien : https://www.cjoint.com/c/KDkrFGghFEe
J'ai laissé la formule faussée car je n'arrive pas à intégrer
DROITE(ANNEE(C2);2)
dans ladite formule.
Effectivement, si ça complique autant la formule autant que je continue dans cet ordre de classement.

N'étant pas calé en Excel, je pensais bêtement l'ordre serait "compris" par le logiciel.
Idem, je ne savais pas que les macros n'étaient pas compatibles avec LibreOffice.
C'est pas grave, je vais continuer à avancer avec mon tableau tel que tu l'as paramétré et si le besoin s'en fait sentir dans quelques temps, je reviendrai trouver des conseils ici.

Quoiqu'il en soit, un grand merci pour toute vos aides !

Au plaisir !