serkan guvenc
Altın Üye
- Katılım
- 21 Kasım 2013
- Mesajlar
- 47
- Excel Vers. ve Dili
- 2007
DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
Altın Üyelik Hakkında Bilgi
Public kontrol As Byte
Private Sub Worksheet_Change(ByVal Target As Range)
If kontrol = 1 Then Exit Sub
If Selection.Count > 1 Then Exit Sub
kontrol = 0
If IsNumeric(Target) Then
If Target.Column = 5 Then
kontrol = 1
With Target
.Value = .Value * 0.6
End With
GoTo son
End If
Else
MsgBox "Sayısal bir değer yazmadınız.", , ""
End If
son:
kontrol = 0
End Sub
If kontrol = 1 Then Exit Sub
If Selection.Count > 1 Then Exit Sub
kontrol = 0
If IsNumeric(Target) Then
If Target.Column = 4 Then
kontrol = 1
With Target
.Value = .Value * 0.4
End With
GoTo son
End If
Else
MsgBox "Sayısal bir değer yazmadınız.", , ""
End If
Adem hocam "kontrol" değişkenini sayfa olaylarını devre dışı bırakmak için kullanmışsınız galiba. Çok iyi bir çözüm, tebrik ederim. ApplicationEnableEvents=False yapıp hata anında sıkıntı yaşanması önlenmiş oluyor.Makro örneği.
Sayfa1 in kod sayfasına ekleyip E sütununa değer yazınız.
Kod:Public kontrol As Byte Private Sub Worksheet_Change(ByVal Target As Range) If kontrol = 1 Then Exit Sub If Selection.Count > 1 Then Exit Sub kontrol = 0 If IsNumeric(Target) Then If Target.Column = 5 Then kontrol = 1 With Target .Value = .Value * 0.6 End With GoTo son End If Else MsgBox "Sayısal bir değer yazmadınız.", , "" End If son: kontrol = 0 End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Selection.Count > 1 Then Exit Sub
If IsNumeric(Target) Then
If Target.Column = 5 Then
With Target
.Value = .Value * 0.6
End With
End If
Else
MsgBox "Sayısal bir değer yazmadınız.", , ""
GoTo son:
End If
If IsNumeric(Target) Then
If Target.Column = 4 Then
With Target
.Value = .Value * 0.4
End With
End If
Else
MsgBox "Sayısal bir değer yazmadınız.", , ""
End If
son:
Application.EnableEvents = True
End Sub