Incrémenter une référence devis en fonction de plusieurs éléments

1

Bonjour,

J'ai des références devis de ce type :

  • DT-2015-11-1 pour devis travaux, année, mois et numéro de devis.
  • DM-2015-11-1 pour devis maintenance.
  • DD-2015-11-1 pour devis Dépannage.

J'utilise une fonction SI et une fonction CONCATENER pour choisir DT, DM et DD et pour la date.

=SI(F6="Travaux";CONCATENER("DT-";ANNEE(MAINTENANT());"-";MOIS(MAINTENANT());"-";1);SI(F6="Maintenance";CONCATENER("DM-";ANNEE(MAINTENANT());"-";MOIS(MAINTENANT());"-";1);SI(F6="Dépannage";CONCATENER("DD-";ANNEE(MAINTENANT());"-";MOIS(MAINTENANT());"-";1))))

J'aimerais incrémenter automatiquement le dernier chiffre de ma référence devis en fonction des autres DT, DM ou DD déjà présent dans le tableau et en fonction de la date.

Par exemple pour le mois de novembre 2015 :
DT-2015-11-9
DD-2015-11-7
DT-2015-11-10

Et début décembre :
DT-2015-12-1
dd-2015-12-1

Si vous voyez comment faire, je suis preneur.
Merci.

Posté le 2 novembre 2015, 15:04
par pierre62
Répondre
0

Je ne pense pas qu'il y ait moyen de générer automatiquement un identifiant de devis simplement avec des formules. Il y a sans doute moyen d'improviser quelque chose avec la fonction RECHERCHEV (recherche verticale) dans une macro, mais je pense qu'il y a plus simple : utiliser simplement le numéro de ligne de la cellule contenant la formule, en ajoutant & LIGNE() à la fin, comme ça :

=SI(F6="Travaux";CONCATENER("DT-";ANNEE(MAINTENANT());"-";MOIS(MAINTENANT());"-";1);SI(F6="Maintenance";CONCATENER("DM-";ANNEE(MAINTENANT());"-";MOIS(MAINTENANT());"-";1);SI(F6="Dépannage";CONCATENER("DD-";ANNEE(MAINTENANT());"-";MOIS(MAINTENANT());"-";1)))) & LIGNE()

Le seul inconvénient c'est que tu n'aura pas de numéros contigus, tu aura par exemple DT-2015-11-1, DD-2015-11-2, DT-2015-11-3 au lieu de DT-2015-11-1, DD-2015-11-1, DT-2015-11-2.

Si c'est gênant pour toi, tu peux utiliser une petite astuce : utiliser une feuille de calcul par mois et par type (DT/DM/DD), comme ça tu auras des numéros contigus par type et par mois.

Vince Posté le 2 novembre 2015, 18:00
par Vince
0

Sinon, il faudrait peut-être passer par du code en vba. Mais là, c'est plus la même histoire... En tout cas, merci de ton aide.

Posté le 2 novembre 2015, 18:33
par pierre62
1

Bonjour,

Voici une solution sans macro permettant d'agrémenter les références.

Charge le fichier ici : http://www.cjoint.com/c/EKelVXKuFyI

Comment cela marche :

1 Créer une colonne complémentaire nécessaire pour isoler le mois de la date de l'opération.  A noter que cette colonne peut être déplacée si gênante (je l'ai mise en J - en faisant couper coller, les formules s'adapteront automatiquement.  Elle peut aussi être masquée pour éviter et de la voir et de l'imprimer.

2 Créer une petite table dans l'onglet Tables qui permet de trouver l'abréviation de chaque type de travail

2 la formule de calcul de la référence commence par tester si il y a un libellé dans la colonne F si non on met un "" (vide).  Ensuite on concatène, comme tu l'avais fait, mais plutôt de faire de multiple tests, j'ai préféré chercher dans une petite table l'abréviation du travail, ensuite on installe l'année et puis le mois (que j'ai cadré toujours avec 2 chiffres).  Enfin, le plus important la numérotation incrémentée de 1 par mois/type de travail : l'astuce consiste à tester à la fois le type de travail et le mois en faisant évoluer la longueur de la table : la ligne de la référence de fin de table est RELATIVE ET VA JUSQU'A la ligne -1 de la ligne de calcul.  Ainsi on compte le nombre de ligne répondant au même type de travail et au même mois jusqu'à la ligne précédente et on ajoute 1.

Contrainte : ne rien mettre dans la cellule F5

J'espère que cela correspond à tes attentes

N'hésite pas me contacter si questions

Merci en tous cas de confirtmer si cela à aider.

A+

Chris

Posté le 4 novembre 2015, 13:06
par CHRIS
0

Bonsoir Chris. Je ne suis pas venu sur le forum depuis quelque jours, donc désolé pour ma réponse tardive.

Je suis impressionné par ton résultat. Je m'étais dis que c'était pas possible.

Ca marche parfaitement. Un grand merci.

a+

Posté le 12 novembre 2015, 17:47
par pierre62
0

Content que cela convienne

A la prochaine

Chris

Posté le 15 novembre 2015, 18:01

Si vous n'êtes pas inscrit sur le site, vous pouvez poster librement (en tant qu'invité).
Pour cela, indiquez un pseudonyme (nom d'utilisateur) et une adresse email :