HÜCRE DEĞERİ DEĞİŞTİĞİNDE (BİR DEĞER HARİÇ) KOD ÇALIŞTIRMA

Katılım
20 Şubat 2025
Mesajlar
3
Excel Vers. ve Dili
Office 365 Türkçe
Merhaba,

Aşağıdaki kodu F3:F10 arasındaki hücrelerdeki sayılarda değişiklik olursa, açık olan UserFormu kapatmak için kullanıyorum. Kod gayet güzel çalışıyor.
Ama hücrelerdeki değer bazen sayı değil de "-" olarak değişiyor. Bu aşamada kod çalışmasın istiyorum ve "-" iken bir sayı ile değişirse tekrar çalışsın istiyorum.
Bunu nasıl yapabilirim? Yardımlarınızı bekliyorum.

KOD:

Private Sub Worksheet_Calculate()

Dim Xrg As Range
Set Xrg = Range("F3:F10")
If Not Intersect(Xrg, Range("F3:F10")) Is Nothing Then

Unload UserForm1

End If

End Sub
 

hasankardas

Altın Üye
Katılım
14 Ağustos 2006
Mesajlar
450
Excel Vers. ve Dili
Ofis 2021ProPlus TR 64 Bit
Altın Üyelik Bitiş Tarihi
18-01-2027
Merhaba,
sizin kod üzerinden değilde yeni bir kod olarak öneri sunayım. hücre içi değişiklik olduğu için "change " olarak oluşturdum. Bu vesileyle formumuza hoşgeldiniz.


Kod:
Private Sub Worksheet_Change(ByVal Target As Range)

    If Not Intersect(Target, Range("F3:F10")) Is Nothing Then

        For Each Cell In Intersect(Target, Range("F3:F10"))
            If IsEmpty(Cell.Value) Then a
                Exit Sub
            ElseIf Not IsNumeric(Cell.Value) Then
                Exit Sub
            End If
        Next Cell

        UserForm1.Show

    End If

End Sub
 
Katılım
6 Mart 2024
Mesajlar
291
Excel Vers. ve Dili
2010 TR & 2016 TR
Merhaba,
F3:F10 hücrelerin de formül varsa
Formülleri etkileyen hücrelerde değişiklik olunca
Worksheet_Change çalışmayacaktır ( değişiklik F3:F10 da olmadığından )
ama formül sonuçları değişecektir⚠
C++:
Private Sub Worksheet_Calculate()
    Dim Xrg As Range, Cell As Range
    Set Xrg = Range("F3:F10")
   
    For Each Cell In Xrg
        If IsNumeric(Cell.Value) = False Then
            If UserForm1.Visible = False Then UserForm1.Show
            Exit Sub
        End If
    Next Cell
   
    If UserForm1.Visible Then Unload UserForm1
End Sub
 
Son düzenleme:
Katılım
20 Şubat 2025
Mesajlar
3
Excel Vers. ve Dili
Office 365 Türkçe
Merhaba,
sizin kod üzerinden değilde yeni bir kod olarak öneri sunayım. hücre içi değişiklik olduğu için "change " olarak oluşturdum. Bu vesileyle formumuza hoşgeldiniz.


Kod:
Private Sub Worksheet_Change(ByVal Target As Range)

    If Not Intersect(Target, Range("F3:F10")) Is Nothing Then

        For Each Cell In Intersect(Target, Range("F3:F10"))
            If IsEmpty(Cell.Value) Then a
                Exit Sub
            ElseIf Not IsNumeric(Cell.Value) Then
                Exit Sub
            End If
        Next Cell

        UserForm1.Show

    End If

End Sub
Merhabalar,

Hoşbuldum. Öneriniz için teşekkürler ama malesef istediğim gibi çalışmadı.
 
Katılım
20 Şubat 2025
Mesajlar
3
Excel Vers. ve Dili
Office 365 Türkçe
Merhaba,
F3:F10 hücrelerin de formül varsa
Formülleri etkileyen hücrelerde değişiklik olunca
Worksheet_Change çalışmayacaktır ( değişiklik F3:F10 da olmadığından )
ama formül sonuçları değişecektir⚠
C++:
Private Sub Worksheet_Calculate()
    Dim Xrg As Range, Cell As Range
    Set Xrg = Range("F3:F10")
  
    For Each Cell In Xrg
        If IsNumeric(Cell.Value) = False Then
            If UserForm1.Visible = False Then UserForm1.Show
            Exit Sub
        End If
    Next Cell
  
    If UserForm1.Visible Then Unload UserForm1
End Sub
Teşekkür ederim Biolightant bey. Elinize sağlık kod tam istediğim şekilde çalışıyor. :)
 
Üst