Incrémentation de numéro de bon de commande

Nickcarter

XLDnaute Nouveau
Bonjour,
Dans mon boulot, je dois encoder des bons de commande (prix, fournisseur,...) et aussi leur donner un numéro de bon de commande.

Le nom se compose du département qui a émis le bon + 2016 + numéro à 3 chiffre (à partir de 000, puis 001, 002 ...)
ex: SALES2016001 puis quand je recevrai le prochain bon de commande émis par le département SALES, ça sera SALES2016002 et ainsi de suite. Mais entre SALES2016001 et SALES2016002, il y aura peut-être une centaine de bons de commande émis par les autres départements (sachant qu'il y a une trentaine de départements différents...).

Pour le moment, quand je reçois un bon de commande de SALES, je dois rechercher grâce au filtre le dernier bon émis par SALES et l'incrémenter de 1 pour avoir mon nouveau numéro. Ceci est assez laborieux vu que j'ai des milliers de bons à encoder. Si je pouvais automatiser cette opération, cela me ferait gagner pas mal de temps.

Ma question est donc : est-ce possible ?

Je pensais insérer une colonne où je pourrai encoder le département qui émet le bon (SALES, CULTURE, ADMIN, ...) et suivant ce département, la colonne n° de bon de commande chercherait automatiquement le dernier bon émis par ce département et l'incrémenterait de 1.

Voilà, auriez-vous des suggestions ?

J'espère avoir été assez clair dans mes explications... :)

Merci d'avance
 

Dranreb

XLDnaute Barbatruc
Bonsoir
L'idée qui me vient à l'esprit c'est ce système :
VB:
Sub test()
MsgBox NuméroCommande("SALES", 2016)
MsgBox NuméroCommande("PROPRES", 2016)
MsgBox NuméroCommande("SALES", 2016)
End Sub

Function NuméroCommande(ByVal Départ As String, ByVal Année As Long) As String
Dim Nom As String, Num As Long
Nom = Départ & Format(Année, "0000")
On Error Resume Next
Num = Evaluate(Nom)
If Err Then Num = 1
On Error GoTo 0
NuméroCommande = Nom & Format(Num, "000")
ThisWorkbook.Names.Add Nom, "=" & Num + 1
End Function
 

Staple1600

XLDnaute Barbatruc
Bonsoir à tous, bonsoir Dranreb

Voici une suggestion pour éclairer la piste (mais c'est pas la solution)
essaiFORMUL.jpg

On doit pouvoir faire plus simple et plus mieux en formule ;)

Dans cet exemple, il faut saisir dans la cellule jaune , le nom du service
Voici la formule en texte (pour la copier/coller)
Code:
=D1&ANNEE(AUJOURDHUI())&TEXTE(RECHERCHE(9^9;CHOISIR(EQUIV(D1;A1:C1;0);A:A;B:B;C:C))+1;"000")
 

Discussions similaires

Statistiques des forums

Discussions
312 206
Messages
2 086 221
Membres
103 158
dernier inscrit
laufin