Microsoft 365 Texte + valeur cellule + "addition"

ExcLnoob

XLDnaute Occasionnel
Bonjour le Forum,

Je voudrais essayer via un bouton de générer un code qui me permettra d'augmenter un code à chaque clic et je bug un peu...

Je m'explique:
J'ai des numéros de commandes qui doivent changer à chaque création de commande. Ces numéros sont du type "PO année-mois-xxxx", xxx étant un numéro répresentant le nombre de commande déja passée (pour 100 commandes générée ce chiffre sera 100, 101 commandes le chiffre sera 101, etc...).
Ce que je voudrai me parait simple sur le papier mais je n'arrive pas à le mettre en place.
J'ai déja implémenté le code suivant dans mon bouton pour le début de mon numéro :
VB:
Range("C3").Value = "PO " + Format(Date, "yyyy-") + Format(Date, "mm-")
Mais je voudrai qu'en cliquant sur ce même bouton cela augmente mon numéro final (100 pour l'exemple vers 101, 102, etc...)
Que dois-je ajouter svp ?

Merci par avance pour votre aide précieuse.
 

jmfmarques

XLDnaute Accro
Bonjour
1)
Format(Date, "yyyy-") + Format(Date, "mm-")
n'est rien d'autre que :
Format(Date, "yyyy-mm-")
2) quid de xxxx dans :
xxxx", xxx étant un numéro répresentant le nombre de commande déja passée (pour 100 commandes générée ce chiffre sera 100, 101 commandes le chiffre sera 101, etc...)
est-il toujours en augmentation ou revient-il à 0 (en fonction de l'année, du mois, ...)
Car ce n'est pas la même chose ... (et tu n'en dis pas un mot).
 

jmfmarques

XLDnaute Accro
Re
Et quelle est alors la nature de la difficulté rencontrée ?
Elle ne peut à mon sens qu'être au niveau de la stratégie à mettre en oeuvre, le code l'accompagnant étant, lui d'une extrême facilité, y compris pour un débutant de chez débutant.

Voici alors une stratégie simple et efficace :
- une feuille "toto" dont la cellule A1 contient le millésime en cours et la cellule B1 le N° de facture
- lors de la validation d'une facture :
---- comparer le contenu de cette cellule A1 avec celui (year(date)) de l'année en cours et :
------si le même : ajouter 1 à la valeur de B1
------ si différent : mettre en A1 le millésime en cours ( year(date) ) et mettre 1 en B1
---- en déduire ta concaténation ( "PO " & Format(Date, "yyyy-mm-") & worksheets("toto").range("B1").value )

Je te laisse écrire seul ce petit (trop simple) bout de code
 

ExcLnoob

XLDnaute Occasionnel
Bonjour @jmfmarques, le Forum,

Merci pour ta réponse.
Au vu de votre message ça parait plus que simple mais je me fais des noeuds au cerveau....:(

J'ai bien réussi à pondre le code ci-dessous qui incrémente mon numéro final correctement mais ça me semble être une usine à gaz par rapport à ce que vous semblez indiquer et cela ne prend pas en compte la remise à zéro (à 100 pour être exact) lors du changement de mois car la date sera toujours la bonne...
VB:
Private Sub CommandButton1_Click()

Worksheets("Feuil1").Range("A1").Value = "PO" & Format(Date, "yyyy-mm-")

    If Worksheets("Feuil1").Range("A1").Value = "PO" & Format(Date, "yyyy-mm-") Then
        [C1] = [C1] + 1
        Worksheets("Feuil1").Range("D1").Value = 100 + Range("C1").Value
        Worksheets("Feuil1").Range("B1").Value = Range("A1").Value & Range("D1").Value
    End If
  
End Sub
 

ExcLnoob

XLDnaute Occasionnel
Bon... Je persiste et signe, je n'y arrive pas.:confused:
Je n'arrive pas à écrire "si le mois change alors remise à 0 de la cellule C1 et on recommence l'incrémentation et ce, à chaque nouveau mois".

Je joins un fichier. Si quelqu'un peut m'aider.....
 

Pièces jointes

  • Classeur1.xlsm
    20.1 KB · Affichages: 8

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 084
Messages
2 085 194
Membres
102 813
dernier inscrit
kaiyi