• DİKKAT

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

Çözüldü If döngü hatası

Katılım
19 Mayıs 2019
Mesajlar
61
Excel Vers. ve Dili
Excel 2010 türkçe
Merhaba. Fotoğrafta görürdüğü gibi if döngüsü kullanmaya çalıştım ama beceremedim. Benim istediğim hücre rengi değiştir butonuna bastığımda emin misin diye sorsun. Eğer msgboxa evet dersem sütunları boyasın ve renkler güncellendi bilgisini versin istiyorum. Ama bu soruyu tek bir kere değil 6 kere filan soruyor bazen sonsuz döngüye giriyor. Hayır dersemde renkler güncellenmedi bilgisini versin ve boyama yapmasın. Yardımlarınızı bekliyorum.
Yazılı olan kodun resmi
 
Deneyiniz.
Kod:
Private Sub CommandButton1_Click()
Dim hcr As Range
sor = MsgBox("Renkler güncellensin mi?", vbYesNo + vbQuestion)
For Each hcr In Range("D3:D20")
If sor = 6 Then
hcr.Interior.Color = 13995347

Else
MsgBox "Renkler güncellenmedi"
Exit Sub
End If
Next
MsgBox "Renkler günceldi"
End Sub
 
Deneyiniz.
Kod:
Private Sub CommandButton1_Click()
Dim hcr As Range
sor = MsgBox("Renkler güncellensin mi?", vbYesNo + vbQuestion)
For Each hcr In Range("D3:D20")
If sor = 6 Then
hcr.Interior.Color = 13995347

Else
MsgBox "Renkler güncellenmedi"
Exit Sub
End If
Next
MsgBox "Renkler günceldi"
End Sub
Buton çalıştı ama renk değişikliği olmadı yazılan satır aralıkları hep aynı renk yapıyor. Orada yazdığım kodlar ile örnek sarıyı kırmızı kırmızıyı mavi böyle değiştire değiştire gitmedi.
 
Buton çalıştı ama renk değişikliği olmadı yazılan satır aralıkları hep aynı renk yapıyor. Orada yazdığım kodlar ile örnek sarıyı kırmızı kırmızıyı mavi böyle değiştire değiştire gitmedi.
O zaman önceki kodla çalışmalısınız her satırdaki sorguya göre işlem devam etmeli.Sorunuzun bundan kurtulma istediğiniz şeklinde anladım.
 
Aslında bu evet hayırı eklemeden önce herşey güzel çalışıyordu. Ama ben bunuda eklemek istiyorum. Ama bir türlü beceremedim. Her renk değiştirmesinde evet hayır penceresi çıkıyor.
 
For each ile mantıksız olmuş gibi.
Mesela hücreyi seçip butona basınca soru sorup işlem yapılabilir.Böylece seçilen renklenir.
 
Buradaki mantık farklı renklerde hücreler var. Kırmızı, mavi, yeşil, turuncu vb. butona basınca benim belirlediğim sıra ile maviyi kırmızıya, kırmızıyı yeşile, yeşili turuncuya çeviriyor.Tek tek hücre seçme yok belirlediğim aralık içindeki bütün hücreler için geçerli oluyor. Bu böyle devam ediyor. Benim istediğim butona basınca tek bir defa emin misin diye sorsun ona göre işlem yapsın.
 
Buyurun.:cool:
Kod:
Private Sub CommandButton1_Click()
Dim hcr As Range
If MsgBox("Renkler güncellensin mi?", vbYesNo + vbQuestion) = vbYes Then
For Each hcr In Range("D3:D20")
hcr.Interior.Color = 13995347
Next
GoTo 10
Else
MsgBox "Renkler güncellenmedi"
Exit Sub
End If
10:
MsgBox "Renkler günceldi"
End Sub
 
Örnek dosya eklemezseniz daha çok yazışırsınız.
 
Buyurun.:cool:
Kod:
Private Sub CommandButton1_Click()
Dim hcr As Range
If MsgBox("Renkler güncellensin mi?", vbYesNo + vbQuestion) = vbYes Then
For Each hcr In Range("D3:D20")
hcr.Interior.Color = 13995347
Next
GoTo 10
Else
MsgBox "Renkler güncellenmedi"
Exit Sub
End If
10:
MsgBox "Renkler günceldi"
End Sub
Elinize sağlık sorunsuz çalıştı. İlginizden dolayı teşekkür ederim. Ben birde nöbet çetele konusu açmıştım. Size zahmet olmazsa onada bakabilir misiniz?
 
Buyurun.:cool:
Kod:
Private Sub CommandButton1_Click()
Dim hcr As Range
If MsgBox("Renkler güncellensin mi?", vbYesNo + vbQuestion) = vbYes Then
For Each hcr In Range("D3:D20")
hcr.Interior.Color = 13995347
Next
GoTo 10
Else
MsgBox "Renkler güncellenmedi"
Exit Sub
End If
10:
MsgBox "Renkler günceldi"
End Sub

Kod fotoğrafı
Ufak bir hata daha gerçekleşti. Şuan hayır dersem sütunları boyamıyor ve güncellenmedi bilgisini veriyor. Bunda sıkıntı yok ama evet dediğimde 2 kere güncellendi 1 kere güncellenmedi uyarısı veriyor.
 
Kod fotoğrafı
Ufak bir hata daha gerçekleşti. Şuan hayır dersem sütunları boyamıyor ve güncellenmedi bilgisini veriyor. Bunda sıkıntı yok ama evet dediğimde 2 kere güncellendi 1 kere güncellenmedi uyarısı veriyor.
2 Kere mesaj vermesine imkan yok.
Bakın örnek dosya için link verdim.
İndirip deneyiniz.:cool:

DOSYAYI INDIR

...
 
Örnek dosyanızı ekleyin bakayım.:cool:
 
Son düzenleme:
Yüklediğiniz fotoğrafta sadece bir hücreye bir renk ekleniyor.
Yazdığınız kodlardaki en alttaki kod rengi geçerli olur.:cool:
 
Şöyle deneyin.:cool:
Kod:
Sub DoluÇerçeve1_Tıklat()
Dim hcr As Range
If MsgBox("Renkler güncellensin mi?", vbYesNo + vbQuestion) = vbYes Then
For Each hcr In Range("D3:D20")
hcr.Interior.Color = 13995347
'kodlarınız
'kodlarınız
'kodlarınız
Next
GoTo 10
Else
MsgBox "Renkler güncellenmedi"
Exit Sub
End If
10:
MsgBox "Renkler günceldi"
End Sub
 
Şöyle deneyin.:cool:
Kod:
Sub DoluÇerçeve1_Tıklat()
Dim hcr As Range
If MsgBox("Renkler güncellensin mi?", vbYesNo + vbQuestion) = vbYes Then
For Each hcr In Range("D3:D20")
hcr.Interior.Color = 13995347
'kodlarınız
'kodlarınız
'kodlarınız
Next
GoTo 10
Else
MsgBox "Renkler güncellenmedi"
Exit Sub
End If
10:
MsgBox "Renkler günceldi"
End Sub
Sanırsam ihtiyacımız olan "Exit Sub" koduymuş.(y)Sayenizde hallettim sabrınız ve ilginizden dolayı teşekkür ederim.
 
Geri
Üst