Bonjour
je suis sur un mini projet de gestion de remise de bordereau, je suis bloqué au niveau de la numérotation, avec ce code tout va bien mais je veux avoir une numérotation pour chaque société choisie ( dans mon cas c'est combobox2 ) . ex si combobox2 contient le nom la société (MOMO) la numérotation dans la feuille NUMERO est dans la collonne A avec le nom de la société en B si combobox2 contient le nom la société (LOLO) la numérotation dans la feuille NUMERO est dans la collonne C avec le nom de la société en D. et ainsi de suite...
voici mon code :
Merci à vous
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74 Option Explicit Private Sub ComboBox1_DropButtonClick() Dim Rng As Range, f As Worksheet, MaxNum As Long, Numerosuivant As Long ' si la combo est vide, on sort If Me.ComboBox1.Value = "" Then Exit Sub ' Initialiser MaxNum MaxNum = 0 ' Définir une variable objet pour la feuille source Set f = Sheets("NUMERO") ' Pour chaque cellule de la colonne For Each Rng In f.Range("A2:A" & f.Range("A" & Rows.Count).End(xlUp).Row) If Rng.Value <> "" Then If CInt(Left(Rng, 4)) = CInt(Me.ComboBox1) Then If Rng.Value > MaxNum Then MaxNum = Rng.Value End If End If Next Rng ' Incrémenter de 1 pour le numéro suivant Numerosuivant = MaxNum + 1 ' Si le dernier numéro trouvé est bien un numéro de dossier If MaxNum > 19000000 Then TextBox1.Value = Numerosuivant Else ' Sinon l'inscrire avec le bon format TextBox1.Value = Me.ComboBox1 & Format(Numerosuivant, "0000") End If End Sub Private Sub CommandButton1_Click() Unload Me End Sub Private Sub Cbn_Enregistrer_Click() Dim NLig As Long, NumDossier As Long, cell As Range ' Avec la feuille With Sheets("NUMERO") ' Récupérer le numéro de la prochaine ligne vide NLig = .Range("A" & Rows.Count).End(xlUp).Row + 1 ' Poser la question If MsgBox("Voulez-vous Valider cet enregistrement? " & vbTab, vbYesNo) = vbYes Then NumDossier = Me.TextBox1.Value Set cell = .Range("A2:A65655").Find(Val(TextBox1), lookat:=xlWhole) If Not cell Is Nothing Then MsgBox ("Ce numéro a été déja utilisé;" & Chr(10) & _ " Choisissez un autre numéro !") .Range("A" & NLig).Value = "" Else .Range("A" & NLig).Value = NumDossier ' Trier les numéros End If End If End With With Worksheets("REMISE") .Range("G2") = NumDossier UserForm3.TextBox22.Value = Range("G2").Value End With Unload Me End Sub '---Alimente la liste déroulante année budgétaire----- Private Sub UserForm_Initialize() Dim Lig5 As Integer For Lig5 = 1899 To 2999 Me.ComboBox1.AddItem Lig5 Next Lig5 Me.ComboBox1 = Year(Now) Call ComboBox1_DropButtonClick 'Enlever le cadre de l'UF OteTitleBarre Me.Caption, False 'True pour le remettre End Sub
Partager