Soru A Hücresine elle girilen degerin 2500 den kücük olmasi durumunda ,deger otomatik eksi (-) isaretini alsin

Katılım
20 Haziran 2011
Mesajlar
20
Excel Vers. ve Dili
Microsoft 365 Deutsch
Arkadaslar, bu soruya konularda cevap bulamadigim icin yeni konu actim, eger daha önce acildiysa simdiden özür diliyorum.
Yapmak istedigim sey A:A hücresine el ile girilen sayinin 2500 den kücük olmasi durumunda otomatik - degerini girsin, büyük ise girilen degeri sabit biraksin.
simdiden tesekkür ediyorum.
 

volki_112

Altın Üye
Katılım
29 Eylül 2023
Mesajlar
486
Excel Vers. ve Dili
2019 Türkçe
Altın Üyelik Bitiş Tarihi
13-12-2029
Arkadaslar, bu soruya konularda cevap bulamadigim icin yeni konu actim, eger daha önce acildiysa simdiden özür diliyorum.
Yapmak istedigim sey A:A hücresine el ile girilen sayinin 2500 den kücük olmasi durumunda otomatik - degerini girsin, büyük ise girilen degeri sabit biraksin.
simdiden tesekkür ediyorum.
formülle veri girilen hücrede değişiklik olmz. makro ile olur.
sayfanın kod bölümüne bunu yaz.
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("A:A")) Is Nothing Then
        Dim hucre As Range
        Application.EnableEvents = False
        For Each hucre In Intersect(Target, Range("A:A"))
            If IsNumeric(hucre.Value) And hucre.Value <> "" Then
                If hucre.Value < 2500 Then
                    hucre.Value = -Abs(hucre.Value)
                Else
                    hucre.Value = Abs(hucre.Value)
                End If
            End If
        Next hucre
        Application.EnableEvents = True
    End If
End Sub
 
Katılım
20 Haziran 2011
Mesajlar
20
Excel Vers. ve Dili
Microsoft 365 Deutsch
formülle veri girilen hücrede değişiklik olmz. makro ile olur.
sayfanın kod bölümüne bunu yaz.
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("A:A")) Is Nothing Then
        Dim hucre As Range
        Application.EnableEvents = False
        For Each hucre In Intersect(Target, Range("A:A"))
            If IsNumeric(hucre.Value) And hucre.Value <> "" Then
                If hucre.Value < 2500 Then
                    hucre.Value = -Abs(hucre.Value)
                Else
                    hucre.Value = Abs(hucre.Value)
                End If
            End If
        Next hucre
        Application.EnableEvents = True
    End If
End Sub
yardiminiz icin cok tesekkür ederim, yanliz yanlis ifade kullanmisim, 2500 den kücük ise girilen rakamin eksi degerini yaziyor, demek istedigim aslinda 2500 den kücük ise - isaretini yani hücreyi bos birakmamak icin - yazsin


hocam yaptim, asagidaki gibi degisiklik yaptim oldu sanirim dogru degisiklik.
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("D:D")) Is Nothing Then
Dim hucre As Range
Application.EnableEvents = False
For Each hucre In Intersect(Target, Range("D:D"))
If IsNumeric(hucre.Value) And hucre.Value <> "" Then
If hucre.Value < 2500 Then
hucre.Value = "-"
Else
hucre.Value = "-"
End If
End If
Next hucre
Application.EnableEvents = True
End If
End Sub
 
Son düzenleme:

volki_112

Altın Üye
Katılım
29 Eylül 2023
Mesajlar
486
Excel Vers. ve Dili
2019 Türkçe
Altın Üyelik Bitiş Tarihi
13-12-2029
yardiminiz icin cok tesekkür ederim, yanliz yanlis ifade kullanmisim, 2500 den kücük ise girilen rakamin eksi degerini yaziyor, demek istedigim aslinda 2500 den kücük ise - isaretini yani hücreyi bos birakmamak icin - yazsin
Bu satır yerine
hucre.Value = -Abs(hucre.Value)
Alttakini yazınız
hucre.Value = "-"
 
Katılım
20 Haziran 2011
Mesajlar
20
Excel Vers. ve Dili
Microsoft 365 Deutsch
Bu satır yerine
hucre.Value = -Abs(hucre.Value)
Alttakini yazınız
hucre.Value = "-"

maalesef yaptigim degisiklik olmamis, 2500 den düsük ise - isaretini koyuyor fakat 2500 den büyüklerde de - isratini koydu,

sizin dedginiz gibi yaptim onda da ayni sorun,

hocam su sekilde sorun cözüldü yardiminiz icin cok tesekkür ederim

If hucre.Value > 2500Then
hucre.Value = Abs(hucre.Value)
Else
hucre.Value = "-"
 
Son düzenleme:

volki_112

Altın Üye
Katılım
29 Eylül 2023
Mesajlar
486
Excel Vers. ve Dili
2019 Türkçe
Altın Üyelik Bitiş Tarihi
13-12-2029
maalesef yaptigim degisiklik olmamis, 2500 den düsük ise - isaretini koyuyor fakat 2500 den büyüklerde de - isratini koydu,

sizin dedginiz gibi yaptim onda da ayni sorun,
Alttakini deneyiniz

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A:A")) Is Nothing Then
Dim hucre As Range
Application.EnableEvents = False
For Each hucre In Intersect(Target, Range("A:A"))
If IsNumeric(hucre.Value) And hucre.Value <> "" Then
If hucre.Value < 2500 Then
hucre.Value = "-"
Else
hucre.Value = hucre.Value
End If
End If
Next hucre
Application.EnableEvents = True
End If
End Sub
 
Katılım
20 Haziran 2011
Mesajlar
20
Excel Vers. ve Dili
Microsoft 365 Deutsch
hocam su sekilde sorun cözüldü yardiminiz icin cok tesekkür ederim

If hucre.Value > 2500Then
hucre.Value = Abs(hucre.Value)
Else
hucre.Value = "-"
 
Üst