Incrémentation de numéro de bon de commande

  • Initiateur de la discussion Initiateur de la discussion Nickcarter
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
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
 
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")
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour