Nota: Recordar que los datos nuevos que se ingresan, se hacen en la ultima fila
Private Function ExisteDatoEnGrid() As Boolean Dim UltimaFila As Integer Dim cVal as String 'Obtengo la ultima fila para que no se procese hasta el final UltimaFila = DataGridView1.Rows.Count - 1 'Obtengo el valor de la primera columna ingresado por el usuario cVal = DataGridView1.Rows(UltimaFila).Cells(0) 'Para cada fila del grid For Each row As DataGridViewRow In DataGridView1.Rows 'Si es la última fila, se termina la función If row.Index = UltimaFila Then Exit Function End If 'Pregunto si el dato de la primera columna es igual a lo ingresado en 'la ultima fila If System.Convert.ToString(row.Cells(0).Value) = cVal Then MsgBox("Este dato ya existe", MsgBoxStyle.Critical) ExisteDatoEnGrid = True Exit Function Else ExisteDatoEnGrid = False End If Next End Function
El uso de esta función es, por ejemplo, cuando se da clic en el botón grabar.
Private Sub button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles button1.Click if ExisteDatoEnGrid = True Then Exit Sub Else 'Aquí puedo continuar End If End Sub