Trouvez le prochaine numéro
Résolu
ozone_
Messages postés
1518
Date d'inscription
Statut
Membre
Dernière intervention
-
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
J'ai besoin d'un coup de pouce pour mon problème.
J'ai un tableau dans lequel j'ajoute des lignes chaque jours.
Lors de la création de la nouvelle ligne, j'ai un numéro que j'incrémente qui est fonction du précédent et de l'année du jour.
Par exemple :
PDR_IT_220066
PDR_IT_220067
PDR_IT_220068
Etc...
Pour l'année en cours (2022), le prochaine numéro de ma suite est donc PDR_IT_220069.
Pour l'instant, j'ai réussi à faire cette instruction mais je bloque pour le changement d'année.
En 2023, premier jour de saisie dans mon tableau, comment lui dire de ne pas se référer à l'ancien numéro et que :
Le prochaine numéro sera PDR_IT_230001 ?
De plus, histoire de compliquer l'approche, j'ai de temps en temps un numéro qui ne dois pas être pris en compte dont la forme ne ressemble pas à PDR_IT_ mais par GRD_PI_.
Et dans ce cas, prendre comme référence l'ancien numéro qu'il trouve et qui commence par PDR_IT_.
Merci à vous !
J'ai besoin d'un coup de pouce pour mon problème.
J'ai un tableau dans lequel j'ajoute des lignes chaque jours.
Lors de la création de la nouvelle ligne, j'ai un numéro que j'incrémente qui est fonction du précédent et de l'année du jour.
Par exemple :
PDR_IT_220066
PDR_IT_220067
PDR_IT_220068
Etc...
Pour l'année en cours (2022), le prochaine numéro de ma suite est donc PDR_IT_220069.
Pour l'instant, j'ai réussi à faire cette instruction mais je bloque pour le changement d'année.
En 2023, premier jour de saisie dans mon tableau, comment lui dire de ne pas se référer à l'ancien numéro et que :
Le prochaine numéro sera PDR_IT_230001 ?
De plus, histoire de compliquer l'approche, j'ai de temps en temps un numéro qui ne dois pas être pris en compte dont la forme ne ressemble pas à PDR_IT_ mais par GRD_PI_.
Et dans ce cas, prendre comme référence l'ancien numéro qu'il trouve et qui commence par PDR_IT_.
Merci à vous !
Configuration: Windows / Chrome 99.0.4844.74
A voir également:
- Trouvez le prochaine numéro
- Numero prive - Guide
- Numéro père noël whatsapp - Accueil - Messagerie instantanée
- Numero imei - Guide
- Numero de serie idm ✓ - Forum Logiciels
- Retrouver compte le bon coin avec numero de telephone - Forum Réseaux sociaux
3 réponses
Bonjour
Concernant, l’année, en première approche je dirais qu’il suffit que tu extrais l’année de la date en cours pour constituer ton code.
Concernant le code de début.
Je te conseille la lecture de ce tuto sur les variables tableau
https://silkyroad.developpez.com/vba/tableaux/
Ce tableau tu le parcours en partant de la fin, en faisant un if avec l’opérateur Like https://loufab.developpez.com/tutoriels/access/operateurlike/ (ou une regex au choix)
Concernant, l’année, en première approche je dirais qu’il suffit que tu extrais l’année de la date en cours pour constituer ton code.
Concernant le code de début.
Je te conseille la lecture de ce tuto sur les variables tableau
https://silkyroad.developpez.com/vba/tableaux/
Ce tableau tu le parcours en partant de la fin, en faisant un if avec l’opérateur Like https://loufab.developpez.com/tutoriels/access/operateurlike/ (ou une regex au choix)
Bonjour,
Merci pour la réponse,
Voici ce que j'ai déjà fait mais je bloque sur l'intégration de la nouvelle année.
Merci pour la réponse,
Voici ce que j'ai déjà fait mais je bloque sur l'intégration de la nouvelle année.
' Fonction pour trouver le prochaine numéro de DA Function incremente_numeroDA() As String Dim lastUsedRow As Long Dim lastDA As String Dim last_numDA As Variant Dim i As Long: i = 0 lastUsedRow = Cells(Rows.Count, 2).End(xlUp).Row lastDA = Cells(lastUsedRow, "B").Value ' extrait le nom complet de la derniere DA Do lastDA = Cells(lastUsedRow - i, "B").Value i = i + 1 Loop While Left(lastDA, 6) <> "PDR_IT" last_numDA = Mid(lastDA, 10, 4) ' extraction des 4 derniers chiffres last_numDA = last_numDA + 1 ' ajoute + 1 à la DA Select Case Len(last_numDA) ' mesure la chaine après le +1 et renvoi le nouveau numéro Case Is = 1 incremente_numeroDA = " PDR_IT_" & Right(Year(Date), 2) & "000" & last_numDA Case Is = 2 incremente_numeroDA = " PDR_IT_" & Right(Year(Date), 2) & "00" & last_numDA Case Is = 3 incremente_numeroDA = " PDR_I _" & Right(Year(Date), 2) & "0" & last_numDA Case Is = 4 incremente_numeroDA = " PDR_IT_" & Right(Year(Date), 2) & last_numDA End Select End Function
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour,
si j'étais toi, j'utiliserais deux cellules pour mémoriser l'année et le numéro de séquence.
si j'étais toi, j'utiliserais deux cellules pour mémoriser l'année et le numéro de séquence.