Problème d'incrémentation automatique

nic79

XLDnaute Nouveau
J'ai créé il y a quelques années une base de données avec des formulaires de saisie. Dans la création d'un nouvel enregistrement une zone de texte est automatiquement remplie à l'ouverture du formulaire avec une incrémentation automatique sur le numéro de dossier que j'inscrivais antérieurement sous la forme année-000. Malheureusement, cette base est utilisée à titre profesionnelle et doit être modifiée suite à une réorganisation interne. La numérotation des dossiers a été revue et se présente maintenant sous le forme C-000-2009 ou G-000-2009 ou N-000-2009. Les lettres qui précèdent les numéros correspondent à un préfixe d'identification du bureau de provenance des dossiers. Malheureusement comme vous pouvez le constater ce préfixe est variable.

Dans mon code VBA lorsque le formulaire est activé, voici ce que je faisais pour incrémenter mon numéro de dossier, soit :

derligne = Range("A65536").End(xlUp).Row
Range("A3:AB" & derligne).Select
'pas d'enregistrement
If derligne = 1 Then NDossier.Value = Year(Date) & "-" & "001": Exit Sub
'tri selon numéro de dossier
Selection.Sort Key1:=Range("A3"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
If Year(Date) > Val(Left(Cells(derligne, 1), 4)) Then
NDossier.Value = Year(Date) & "-" & "001"
Else
NDossier.Value = Year(Date) & "-" & Format(Right(Cells(derligne, 1), Len(Cells(derligne, 1)) - 5) + 1, "000")
End If


Comment m'y prendre avec ces changements ?
 

Hulk

XLDnaute Barbatruc
Re : Problème d'incrémentation automatique

Hello Forum, Nic,

Veux pas te faire des leçons, mais avec un petit "Bonjour, merci, au revoir" tu auras plus d'aide... Aussi, si tu déposes un fichier sans données confidentielles.

Cdt, Hulk.
 

nic79

XLDnaute Nouveau
Re : Problème d'incrémentation automatique

Oui désolé j'ais fait vite un message depuis mon bureau... le fichier est de taille importante - je préfères le déposer sur mon site personnel :



Le formulaire en question est intitulé UserFormFaillite.

J'ai pré-rempli la feuille de données avec le numéro de dossier qu'il devra apparaître désormais.

Merci d'avance pour votre aide.
 
G

Guest

Guest
Re : Problème d'incrémentation automatique

Bonjour le fil,
Salut Hulk,

Je n'ai pas ouvert ton fichier, j'avais commencé une solution que voici.


La macro crée 3 colonnes temporaires à droite du tableau contenant pour la première les lettres (N, G, C) la deuixième les nombres du milieu et la troisième les années. Le tableau est trier une première fois suivant ces colonnes en ordre inverses (année, chiffres, lettres). Les trois dernières lignes sont récupérées et tu les incrémentes comme tu veux.
Dans l'exemple elles sont incrementées sur les chiffres du milieu.

Ensuite les 3 colonnes sont détruite et le tableau retrié suivant la colonne A.

Cela parait compliqué mais c'est assez simple, rapide, et adaptable à d'autre incrémentation.

A+
 

nic79

XLDnaute Nouveau
Re : Problème d'incrémentation automatique

Ce n'est pas tout à fait ce que j'attendais, je souhaiterai utiliser mon formulaire avec la valeur du nouveau dossier qui est créé qui s'insère automatiquement dans le champ NDossier- j'ais essayé de reprendre mon code - mais je n'y arrive pas :

derligne = Range("A65536").End(xlUp).Row
Range("A3:AB" & derligne).Select
'pas d'enregistrement
If derligne = 1 Then NDossier.Value = "N001" & "-" & Year(Date): Exit Sub
'tri selon numéro de dossier
Selection.Sort Key1:=Range("A3"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
If Year(Date) > Val(Right(Cells(derligne, 1), 5)) Then
NDossier.Value = "N001" & "-" & Year(Date)
Else
NDossier.Value = Format(Left(Cells(derligne, 1), Len(Cells(derligne, 1)) + 3) + 1, "N000") & "-" & Year(Date)
End If


Le problème c'est désormais la numérotation sera N000-2009 mais dans le fichier des données j'ai des dossiers avec C000-2009 - G000-2009 suite à une fusion de dossier. Comment gérer ceci - j'ai de la peine à trouver la solution.

Merci pour votre aide.
 

Discussions similaires

Réponses
18
Affichages
3 K

Statistiques des forums

Discussions
312 565
Messages
2 089 729
Membres
104 266
dernier inscrit
christian Auletta