Suivi des nuemros selon condition
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 :
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 SubMerci à vous
27 vues et 0 réponses.