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
| Private Sub DataGridView1_CellEndEdit(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.CellEndEdit
'Je récupère la colonne Quantité qui a pour propriété NAME "ColonneQuantité"
Dim colMultiplicande As DataGridViewColumn = DataGridView1.Columns("ColonneQuantite")
'Je récupère la colonne Prix Unitaire qui a pour propriété NAME "ColonnePrixUnit"
Dim colMultiplicateur As DataGridViewColumn = DataGridView1.Columns("ColonnePrixUnit")
'Je récupère la colonne Total qui a pour propriété NAME "ColonneTotal"
Dim colTotal As DataGridViewColumn = DataGridView1.Columns("ColonneTotal")
'Sur quelle ligne et colonne se trouve la cellule éditée
Dim row As Integer = e.RowIndex
Dim col As Integer = e.ColumnIndex
'La cellule éditée figure t-elle dans la colonne Quantité ou Prix Unitaire
If col = colMultiplicande.Index Or col = colMultiplicateur.Index Then
If DataGridView1.Item(colMultiplicande.Index, row).Value <> "" And DataGridView1.Item(colMultiplicateur.Index, row).Value <> "" Then
Try
'Obtenir le séparateur décimal
Dim separateur As String = System.Globalization.NumberFormatInfo.CurrentInfo.NumberDecimalSeparator
'Récupérer les valeurs à multiplier
Dim multiplicande As String = DataGridView1.Item(colMultiplicande.Index, row).Value.ToString
Dim multiplicateur As String = DataGridView1.Item(colMultiplicateur.Index, row).Value.ToString
'Mettre le bon séparateur décimal
multiplicande = multiplicande.Replace(".", separateur)
multiplicande = multiplicande.Replace(",", separateur)
multiplicateur = multiplicateur.Replace(".", separateur)
multiplicateur = multiplicateur.Replace(",", separateur)
'Calculer et Afficher le résultat
DataGridView1.Item(colTotal.Index, row).Value = CDec(multiplicande) * CDec(multiplicateur)
Catch ex As Exception
'Gestion des erreurs en cas de saisie incorrecte
MessageBox.Show(ex.Message)
DataGridView1.Item(colTotal.Index, row).Value = ""
End Try
Else
'La quantité ou le prix unitaire est vide
DataGridView1.Item(colTotal.Index, row).Value = ""
End If
End If
End Sub |
Partager