Manipulation de chaine pour trouver un incrément
Bonjour à tous,
je me casse la tête sur un truc qui doit être tout con...
Je cherche à toruver le numéro d'incrément suivant à l'ouverture d'une userform.
L'incrément est de ce format suivant:
a = année
n = numéro incrément
aaaa-nnn si le numéro est <1000
aaaa-nnnn si le numéro est >= 1000
le problème c'est que dans mon code, je split pour trouver le nombre et j'ajoute un mais comme je traite ceci en nombre, excel me convertie par exemple 002 en 2 et du coup mon incrément prend ce format:
aaaa-n si n<10
aaaa-nn si n>=10
j'ai donc essayer de toruver ce code mais il ne fonctionne pas si le numéro d'avant se termine par 9, je m'explique,
si l'ancien numéro est 2016-009, je veux avoir dans ma textbox 2016-010 et mon code me donne 2016-0010
pour ilustrer tout ceci voici quelques exemples de ce que je voudrais avoir:
avant: 2016-001 après: 2016-002
avant: 2016-009 après: 2016-010
avant: 2016-011 après: 2016-012
avant: 2016-019 après: 2016-020
avant: 2016-999 après: 2016-1000
avant: 2016-1012 après: 2016-1013
J'espère avoir été clair
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| Private Sub UserForm_Initialize()
Dim montableau() As String
JD = Date
DL = ThisWorkbook.Worksheets("Liste FIC").Cells(Rows.Count, 1).End(xlUp).Row + 1
montableau = Split(ThisWorkbook.Worksheets("Liste FIC").Cells(DL - 1, 1), "-")
Me.TextBox8.Value = JD
If DL = 3 Then
INCREMENT = Year(JD) & "-" & "001"
Me.TextBox1.Value = INCREMENT
Else
Select Case Len(montableau(1))
Case 3
If Mid(Right(montableau(1), 2), 1, 1) = 0 And Mid(Right(montableau(1), 3), 1, 1) = 0 Then
INCREMENT = Year(JD) & "-00" & montableau(1) + 1
Me.TextBox1.Value = INCREMENT
End If
Case 4
INCREMENT = Year(JD) & "-" & montableau(1) + 1
Me.TextBox1.Value = INCREMENT
End Select
End If
End Sub |
merci d'avance de votre aide