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 ?
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 ?