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
| Private Sub Cmd_Valider_Click()
Dim tab_LigneDebut(3) As Integer, tab_LigneFin(3) As Integer, tab_CbBx(2) As ComboBox
Dim i As Integer, j As Integer, n_NbLigne As Integer, n_LigneInsert As Integer
Dim ctr_x As Control
n_NbLigne = Feuil1.Cells(Rows.Count, 1).End(xlUp).Row
tab_LigneDebut(0) = 1
tab_LigneFin(0) = n_NbLigne
'ici je creer une boucle pour definir la ligne ou se trouvent les criteres des combobox dans la Feuil1
For i = 0 To 2
For Each ctr_x In Me.Controls
If ctr_x.Name = "ComboBox" & i + 1 Then
Set tab_CbBx(i) = ctr_x
Else
End If
Next ctr_x
tab_LigneDebut(i + 1) = WorksheetFunction.Match(tab_CbBx(i).Value, Feuil1.Range(Feuil1.Cells(tab_LigneDebut(i), i + 2), Feuil1.Cells(tab_LigneFin(i), i + 2)), 0)
tab_LigneDebut(i + 1) = tab_LigneDebut(i + 1) + tab_LigneDebut(i) - 1
For j = tab_LigneDebut(i + 1) To n_NbLigne
If Feuil1.Cells(j + 1, i + 2).Value <> Feuil1.Cells(j, i + 2).Value Then
tab_LigneFin(i + 1) = j
Exit For '<=== MODIFICATION FAITE ICI
Else
End If
Next j
Next i
Debug.Print tab_LigneFin(3)
'ici je cherche, dans ma zone definie par les criteres des combobox, la valeur qui est superieur a celle de la textbox
For i = tab_LigneDebut(3) To tab_LigneFin(3)
If CSng(Me.TextBox1.Value) < Feuil1.Cells(i, 5) Then
n_LigneInsert = i
Exit For
ElseIf CSng(Me.TextBox1.Value) > Feuil1.Cells(i, 5) And i = tab_LigneFin(3) Then '<=== MODIFICATION FAITE ICI
MsgBox "Veuillez entrer une valeur inferieure a la cote Max" '<=== MODIFICATION FAITE ICI POUR LE DEPASSEMENT DE COTE
Exit Sub
Else
End If
Next i
Feuil1.Rows(n_LigneInsert).Insert (xlShiftDown)
'ici je remplis la nouvelle ligne inseree avec les elements du UserForm
For i = 0 To 2
Feuil1.Cells(n_LigneInsert, i + 2) = tab_CbBx(i).Value
Next i
Feuil1.Cells(n_LigneInsert, 5) = Me.TextBox1.Value
For i = n_LigneInsert To Feuil1.Cells(Rows.Count, 1).End(xlUp).Row
Feuil1.Cells(i, 1) = Feuil1.Cells(i, 1).Row - 1
Next i
Feuil1.Cells(n_LigneInsert, 1).Select
Unload Me
End Sub |
Partager