Trouver le prochain numéro dans une liste, par catégorie
Résolu
mailmxd
Messages postés
5
Date d'inscription
Statut
Membre
Dernière intervention
-
mailmxd Messages postés 5 Date d'inscription Statut Membre Dernière intervention -
mailmxd Messages postés 5 Date d'inscription Statut Membre Dernière intervention -
Bonjour, j'ai un tableau qui liste les documents de mon service.
Les documents sont divisés en groupe. Chaque groupe a sa numérotation chronologique propre. Comment faire pour identifier le prochain numéro disponible pour un groupe considéré (par exemple indiqué en cellule LiCi).
Merci pour votre aide
Grpe chrono
A 01
A 02
B 01
C 01
A 03
C 02
B 02
A ?
Je suis novice en macro et VB,
Merci encore de prêter attention à ma requête
MXD
Les documents sont divisés en groupe. Chaque groupe a sa numérotation chronologique propre. Comment faire pour identifier le prochain numéro disponible pour un groupe considéré (par exemple indiqué en cellule LiCi).
Merci pour votre aide
Grpe chrono
A 01
A 02
B 01
C 01
A 03
C 02
B 02
A ?
Je suis novice en macro et VB,
Merci encore de prêter attention à ma requête
MXD
A voir également:
- Trouver le prochain numéro dans une liste, par catégorie
- Liste déroulante excel - Guide
- Numero prive - Guide
- Numéro père noël whatsapp - Accueil - Messagerie instantanée
- Trouver adresse mac - Guide
- Liste numéro indésirable - Guide
3 réponses
Bonjour
il y a peut être et sauf erreur un moyen simple de constituer le N° suivant selon votre modéle:
pour l'exemple, la liste de votre message en A et B à partir de A2
groupe en A, chrono en B
en B2 la formule:
=SI(A2="";"";TEXTE(NB.SI($A$2:A2;A2);"00"))
vous affichera le N° d'ordre suivant pour le groupe inscrit en A
Attention aux signes $ sur le premier A1 et pas sur le second
Le code texte formate la valeur trouvée de façon à obtenir la présentation à deux chiffres de votre demande (définie par "00")
crdlmnt
il y a peut être et sauf erreur un moyen simple de constituer le N° suivant selon votre modéle:
pour l'exemple, la liste de votre message en A et B à partir de A2
groupe en A, chrono en B
en B2 la formule:
=SI(A2="";"";TEXTE(NB.SI($A$2:A2;A2);"00"))
vous affichera le N° d'ordre suivant pour le groupe inscrit en A
Attention aux signes $ sur le premier A1 et pas sur le second
Le code texte formate la valeur trouvée de façon à obtenir la présentation à deux chiffres de votre demande (définie par "00")
crdlmnt
Un grand Merci "Vaucluse".
Cela répond à la question telle que je l'ai formulée.
Est ce que je peux "abuser" néanmoins, car je voulais traiter la liste comme une base de données. Je cherche à faire une macro, qui scrute la liste et renvoie le numéro chrono à utiliser compte tenu de ceux dejà pris.
Voila c'est plus dans ce sens que je posais ma question. Si trop problèmatique, j'édite et mets RESOLU.
A bientôt
MXD
Cela répond à la question telle que je l'ai formulée.
Est ce que je peux "abuser" néanmoins, car je voulais traiter la liste comme une base de données. Je cherche à faire une macro, qui scrute la liste et renvoie le numéro chrono à utiliser compte tenu de ceux dejà pris.
Voila c'est plus dans ce sens que je posais ma question. Si trop problèmatique, j'édite et mets RESOLU.
A bientôt
MXD
Bonjour à tous,
J'ai supposé les n° déjà inscrits obligatoirement croissants.
La colonne B doit être au format Texte.
https://www.cjoint.com/c/DBBt3XLPPBU
eric
Private Sub Worksheet_Change(ByVal Target As Range) Dim derlig As Long, lig As Long, data As Variant If Target.Count > 1 Then Exit Sub If Target.Row = 1 Or Target.Column <> 1 Or Target = "" Then Exit Sub On Error GoTo fin derlig = Cells(Rows.Count, "A").End(xlUp).Row data = [A2].Resize(derlig - 1, 2) Application.EnableEvents = False For lig = UBound(data) - 1 To 1 Step -1 ' recherche dernier index du groupe If LCase(data(lig, 1)) = LCase(Target) Then Target.Offset(, 1) = Format(CLng(data(lig, 2)) + 1, "00") Target.Offset(1).Select Exit For End If Next lig ' si groupe non trouvé If lig = 0 Then Target.Offset(, 1) = "01" fin: Application.EnableEvents = True End Sub
J'ai supposé les n° déjà inscrits obligatoirement croissants.
La colonne B doit être au format Texte.
https://www.cjoint.com/c/DBBt3XLPPBU
eric