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

Problème d'incrémentation automatique

  • Initiateur de la discussion Initiateur de la discussion nic79
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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 ?
 
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.
 
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.
 
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+
 
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.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
287
Réponses
3
Affichages
300
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…