• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

koddaki döngü hatası nerede acaba?

uzmanamele

Uzman
Uzman
Katılım
26 Eylül 2007
Mesajlar
9,420
Excel Vers. ve Dili
excel 2010
merhaba
syn leventm'nin kodlarından esinlenerek acemice hazırlamaya çalıştığım 3 koşullu msgboxda birtürlü döngü kuramadım.
1. veya 2. koşul sağlandığında msgbox çıkıyor ama durduramıyorum.
3. koşul sağlandığında 2. koşulun msjı çıkıyor.
biryeri silmişim (kafa karıştı, neresi hatırlamıyorum ) işlem yapmaya kalkınca yine msj çıkıyor.


Private Sub Worksheet_Change(ByVal Target As Range)
ActiveSheet.Shapes("AutoShape 3").Visible = True
ActiveSheet.Shapes("AutoShape 3").Select
If [b11] > 1 Then GoTo mesaj1
If [b15] > [b16] Then GoTo mesaj2
If [b17] > 20000 Then GoTo mesaj3
mesaj1:
Selection.Characters.Text = Chr(10) & Chr(10) & "bre melun, % ler toplamı %100 den fazla olamaz! "
GoTo göster
mesaj2:
Selection.Characters.Text = Chr(10) & Chr(10) & "bre melun, tarih hatası! "
GoTo göster
mesaj3:
Selection.Characters.Text = Chr(10) & Chr(10) & "bre melun, zaman! "
göster:
With Selection.Font
.Name = "Blackadder ITC"
.FontStyle = "Normal"
.Size = 20
.ColorIndex = 3
End With
For a = 0 To 245 Step 5
DoEvents
ActiveSheet.Shapes("AutoShape 3").Height = a
Next
Target.Activate
Target = ""
End Sub


not:ilk konu başlığı seçimi kötü oldu, herkesten özür.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,060
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Üzerinde düşünülürse kodlar kısaltılabilir, ancak şimdilik aşağıdaki gibi denerseniz işinizi görecektir.

Kod:
Private Sub Worksheet_Calculate()
If [b17] > 20000 And [b15] <> "" And [b16] <> "" Then
ActiveSheet.Shapes("AutoShape 3").Visible = True
ActiveSheet.Shapes("AutoShape 3").Select
 Selection.Characters.Text = Chr(10) & Chr(10) & "bre melun, zaman! "
    With Selection.Font
        .Name = "Blackadder ITC"
        .FontStyle = "Normal"
        .Size = 20
        .ColorIndex = 3
    End With
For a = 0 To 245 Step 5
DoEvents
ActiveSheet.Shapes("AutoShape 3").Height = a
Next
[b17].Activate
End If
End Sub
 
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [b5:b10]) Is Nothing Then GoTo 10
If Not Intersect(Target, [b15:b16]) Is Nothing Then GoTo 20
Exit Sub
10 If [b11] > 1 Then
ActiveSheet.Shapes("AutoShape 3").Visible = True
ActiveSheet.Shapes("AutoShape 3").Select
Selection.Characters.Text = Chr(10) & Chr(10) & "bre melun, % ler toplamı %100 den fazla olamaz! "
    With Selection.Font
        .Name = "Blackadder ITC"
        .FontStyle = "Normal"
        .Size = 20
        .ColorIndex = 3
    End With
For a = 0 To 245 Step 5
DoEvents
ActiveSheet.Shapes("AutoShape 3").Height = a
Next
Target.Activate
Target = ""
End If
Exit Sub
20 If [b15] > [b16] And [b15] <> "" And [b16] <> "" Then
ActiveSheet.Shapes("AutoShape 3").Visible = True
ActiveSheet.Shapes("AutoShape 3").Select
Selection.Characters.Text = Chr(10) & Chr(10) & "bre melun, tarih hatası! "
With Selection.Font
        .Name = "Blackadder ITC"
        .FontStyle = "Normal"
        .Size = 20
        .ColorIndex = 3
    End With
For a = 0 To 245 Step 5
DoEvents
ActiveSheet.Shapes("AutoShape 3").Height = a
Next
Target.Activate
Target = ""
End If
End Sub
 

uzmanamele

Uzman
Uzman
Katılım
26 Eylül 2007
Mesajlar
9,420
Excel Vers. ve Dili
excel 2010
B17>20000 olunca 3.ko&#351;ul ger&#231;ekle&#351;iyor. Bu durumda B16 y&#305; silmeli ve ba&#351;a d&#246;nmeli. B16 silinmiyor ve ayn&#305; &#351;ekilde B16 ya yanl&#305;&#351; giri&#351; yap&#305;nca (B17>20000 olunca) de&#287;erlendirmiyor.
 
Üst