Döngüyü bir türlü kuramadım

Katılım
24 Haziran 2019
Mesajlar
16
Excel Vers. ve Dili
excel
Merhabalar
Bir yerde takıldım. Yardımcı olabilir misiniz lütfen ? Teşekkürler

Birçok hücereden oluşan hesaplama tablom var.

G44 hücresinde bir değer var. Buradaki değer makro çalışmadan önce orada mutlaka oluyor.
Bu değer makro çalıştıktan sonra üst hücrelerdeki işlemler sonucu her zaman değişiyor. Aşağı ya da yukarı yönde.

Makroyu çalıştırıyorum.
Eğer G44 değeri 1 den küçükse G6 hücresindeki değeri 1 arttır.
değilse 1 azalt.
Bunu G44 değeri 0 ya da sıfıra yakın bir değer olana kadar devam et.

Formül aşağıda ve güzel çalışıyor ancak döngüyü kuramadım.
Do while ile yapmıştım istediğim sonucu alamadım.


Sub deneme_max()

If (Range("G44") < 1) Then
Range("G6").Value = Range("G6").Value + 1
Else
Range("G6").Value = Range("G6").Value - 1
End If

End Sub
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,245
Excel Vers. ve Dili
2019 Türkçe
Merhaba.
G44 hücresindeki değer hangi durumlarda değişiyor?
Burayı elle mi değiştiriyorsunuz yoksa formül mü var?
 
Katılım
24 Haziran 2019
Mesajlar
16
Excel Vers. ve Dili
excel

KoNFiCuS

Altın Üye
Katılım
18 Mayıs 2011
Mesajlar
69
Excel Vers. ve Dili
Office 365 TR - 64 Bit
Altın Üyelik Bitiş Tarihi
08-03-2028
Bu şekilde bir dener misiniz?

Kod:
While Not Range("G44") = 0

If (Range("G44") < 1) Then
Range("G6").Value = Range("G6").Value + 1
Else
Range("G6").Value = Range("G6").Value - 1
End If

Wend
yada

Kod:
Do Until Range("G44") = 0

If (Range("G44") < 1) Then
Range("G6").Value = Range("G6").Value + 1
Else
Range("G6").Value = Range("G6").Value - 1
End If

    Loop
 
Son düzenleme:

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,245
Excel Vers. ve Dili
2019 Türkçe
Sayfanın kod kısmına yapıştırın.
G44 hücresinde bir değişiklik olduğunda kod otomatik çalışır.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Range("G44"), Target) Is Nothing Then
        If (Range("G44") < 1) Then
            Range("G6").Value = Range("G6").Value + 1
        Else
            Range("G6").Value = Range("G6").Value - 1
        End If
    End If
End Sub
 
Üst