• DİKKAT

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

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

Katılım
20 Şubat 2025
Mesajlar
7
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
 
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
 
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:
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ı.
 
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. :)
 
Geri
Üst