• DİKKAT

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

Hücredeki veri girildiğinde otomatik değişsin...

  • Konbuyu başlatan Konbuyu başlatan Jeeday
  • Başlangıç tarihi Başlangıç tarihi
Katılım
7 Mayıs 2006
Mesajlar
367
Excel Vers. ve Dili
2019 İngilizce
Örneğin bir hücreye "10" değerini girip enter tuşuna bastığım anda görünen değer "-10" olsun...

Bunu sağlayabilir miyiz?

Sadece sayılar için geçerli olacak... ne giriyosam "-" değerini göstersin...
 
Merhaba,
Aşağıdaki kodu sayfanın kod bölümüne yapıştırıp dener misiniz?
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If IsNumeric(Target.Value) Then Target.Value = "-" & Target.Value
End Sub
 
3 hata var

1.Sİ: sayfada şöyle bir kod var, sanırım çakışma yapıyor...

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [J1]) Is Nothing Then Exit Sub
If ActiveSheet.Name <> [J1] Then
ActiveSheet.Name = [J1]
End If
End Sub

2.Sİ: sonucu "--10" olarak veriyor.

3.SÜ: hata değilde bu işlemi C:H sütunları arasında yaptırabilir miyiz?
 
Merhaba,
Sayfadaki mevcut kodu silip, aşağıdaki kodu yapıştırarak dener misiniz?
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [C:H,J1]) Is Nothing Then Exit Sub
If Target = [J1] Then
    If ActiveSheet.Name <> [J1] Then ActiveSheet.Name = [J1]: Exit Sub
End If
Application.EnableEvents = False
    If Not IsEmpty(Target.Value) And IsNumeric(Target.Value) Then Target.Value = "-" & (Target.Value)
Application.EnableEvents = True
End Sub
 
Sub Temizle()
'
' Temizle Macro
'

'
Range("A3:H500").Select
Selection.ClearContents
Range("A1:E1").Select
Selection.ClearContents
End Sub

KULLANDIĞIM sayfada böyle bir makro var. Bununla çakışıyor şimdide...
 
Merhaba,
Mevcut kodun siyah satırları arasına kırmızı satırı ekleyip dener misiniz?
Kod:
If Intersect(Target, [C:H,J1]) Is Nothing Then Exit Sub
[COLOR="Red"]If Cells.Count > 1 Then Exit Sub[/COLOR]
If Target = [J1] Then
 
J1 hücresine veri girdiğim zaman run-time error '6': overflow hatası veriyor...
temizle makrosunu çalıştırdığım zamanda aynı hata
debug yaptığımda eklediğiniz satır sarı renkli gösteriyor...
 
Merhaba,
Daha başlangıçta örnek dosyanızı kodları ile beraber ekleseydiniz bu kadar yazışmaya gerek kalmayacaktı. Neyse, önceki kodları unutun. Aşağıdakileri dener misiniz?
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [C:H,J1]) Is Nothing Then Exit Sub
If Target = [J1] Then
    If ActiveSheet.Name <> [J1] Then ActiveSheet.Name = [J1]: Exit Sub
End If

Application.EnableEvents = False
    If Not IsEmpty(Target.Value) And IsNumeric(Target.Value) Then Target.Value = "-" & (Target.Value)
Application.EnableEvents = True
End Sub
[COLOR="Red"]Sub Temizle()
    Application.EnableEvents = False
    Range("A3:H500,A1:E1").ClearContents
    Application.EnableEvents = True
End Sub[/COLOR]
 
Son düzenleme:
çok haklısın.... aceleye getirdim biraz... dosyayı ekliyorum... yine hata verdi çünkü...
 

Ekli dosyalar

fiş numaraları eklendikçe fazlalaşıyor haliyle... j1 e fiş numarasını yazdığımda sheetname otomatik değişsin... ve adet girdiğimde "-" olsun başı... diğer makrolarda hata vermesin :)
 
Merhaba,
8. mesajdaki Private Sub Worksheet_Change(ByVal Target As Range) ile başlayan kodları sayfanın kod bölümüne yapıştırınız.
Sub Temizle() ile başlayan kodları da(kırmızı olanların tümünü) Modül1 içindeki aynı isimli kodu silip onun yerine yapıştırınız.

5. mesajınızda " ...KULLANDIĞIM sayfada böyle bir makro var. Bununla çakışıyor şimdide..." diyorsunuz ama dosyanızı inceleyince kodun sayfada değil modülde olduğunu görüyorum.
 
UPSSS BİR HATA OLDU...

TEMİZLE ÇALIŞIYOR...
J1 HÜCRESİ ÇALIŞIYOR...
VERİ GİRİNCE BAŞI "-" OLUYOR...

TEK HÜCREYE GİRİLEN VERİ SİLİNİNCE SORUN YOK AMA BİRDEN FAZLA HÜCRE SEÇİP "DEL" YAPINCA HATA VERİYOR...
run-time error "13"
type mismatch

debug yapınca If Target = [J1] Then sarı renkte...
 
ayrıca şöyle bir şey mümkün mü?

veri olarak "10" yazınca "-10" oluyor...
"-10" yazsam "10" yapabilir mi? "--10" olmasın...
 
ayrıca şöyle bir şey mümkün mü?
veri olarak "10" yazınca "-10" oluyor... "-10" yazsam "10" yapabilir mi? "--10" olmasın...

Merhaba,
İstediğiniz olur tabi.
Yalnız şunu anlamadım.
10 yazınca -10 olacak.
-10 yazınca 10 olacak.

Bu durumda herkesi kendi yerine yazsak olmaz mı?
10 yazınca 10 olsun. -10 yazınca da -10 olsun. Niye kulağımızı tersten gösteriyoruz? :)

Aşağıdaki kod hem sözünü ettiğiniz hatayı giderir hem de kulağımızı tersten göstermemizi :) sağlar.
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [C:H,J1]) Is Nothing Then Exit Sub
If Selection.Count > 1 Then Exit Sub
If Target = [J1] Then
    If ActiveSheet.Name <> [J1] Then ActiveSheet.Name = [J1]: Exit Sub
End If
Application.EnableEvents = False
If Target.Value < 0 Then
    If Not IsEmpty(Target.Value) And IsNumeric(Target.Value) Then Target.Value = Replace(Target.Value, "-", "")
    Application.EnableEvents = True
    Exit Sub
End If
    If Not IsEmpty(Target.Value) And IsNumeric(Target.Value) Then Target.Value = "-" & Target.Value
Application.EnableEvents = True
End Sub
 
çok fazla veri girdiğim için hep "-" vermesi lazım... Her seferinde "-" tuşuna basmak hata yaptırıyor...
 
Eline, aklına sağlık. Hatasız tam istediğim gibi çalışıyor...
 
Geri
Üst