Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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
 

Nickcarter

XLDnaute Nouveau
Bonsoir,
Tout d'abord merci pour votre réponse... mais je suis plutôt débutant sur Excel donc je ne sais pas si c'est une formule que vous proposez ou une macro ou autre chose ? Dois-je rentrer cela comme une formule dans la cellule ?
 

Staple1600

XLDnaute Barbatruc
Bonsoir à tous, bonsoir Dranreb

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

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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…