Tehtävänä on siis tarkastaa (estää) negatiivisten lukujen työttäminen Excelin tietylle välilehdelle sekä ilmoittaa käyttäjälle, jos näin käy. Ohessa koodi, jota käytän asiaan:
Private Sub Worksheet_Change(ByVal Target As Range)
For i = 1 To Rows.Count
If Worksheets("Vh").Cells(i, Target.Column).Value < 0 Then
MsgBox ("Negatiivinen arvo rivillä" & Target.Row)
Worksheets("Vh").Cells(Target.Row, Target.Column) = "..."
Exit For
End If
Next i
End SubHomma toimii hyvin niin kauan, kun käyttäjä ei syötä yhtään negatiivista lukua. Jos syöttää, koodi toimii kyllä senkin jälkeen oikein, mutta samalla koko Excel muuttuu lähes käyttökelvottoman hitaaksi käyttää. Miten tuon saisi tehtyä niin, ettei ko. työkirjan käyttö hidastuisi liikaa?
Lisäys:
Keskin jo itse ratkaisun. Ratkaisu on seuraava koodi:
Private Sub Worksheet_Change(ByVal Target As Range)
'For i = 1 To Rows.Count
If Worksheets("Vh").Cells(Target.Row, Target.Column).Value < 0 Then
MsgBox ("Negatiivinen arvo rivillä" & Target.Row)
Worksheets("Vh").Cells(Target.Row, Target.Column) = "..."
'Exit Sub
End If
'Next i
End SubAihe on jo aika vanha, joten et voi enää vastata siihen.