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 :




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
Merci à vous