A1 hücresine yazdığım değer ben yazar yazmaz 100 e böl

Katılım
5 Mayıs 2005
Mesajlar
72
slm
A1 hücresine yazdığım değer ben yazar yazmaz 100 e bölünsün.
Mesela 100 yazdım bu hemen 1 oldu 1000 yazdım 10 oldu.
Nasıl yapılır?
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Mrb;

Hücre seçili durumdayken yani henüz veri girişi yapılırken bu olmaz ama, yazdıktan sonra hücreden çıktığınız anda yapılır.

Bilemiyorum, belki subclassing falan yaparak bir şeyler olur mu...... ama durup, dururken Excel'i çökertme riski de var o zaman.... :mrgreen:
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Birde aşağıdaki kodu deneyin. Bu kodu sayfanın kod sayfasına yazmalısınız. A1 hücresi terkedildiği anda işlemi yapacaktır.

[vb:1:a5b16b0c85]Dim a As Integer
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Selection.Cells.Address = "$A$1" Then a = 0
If Selection.Cells.Address = "$A$1" Or a = 1 Then Exit Sub
[a1] = [a1] / 100
a = 1
End Sub
[/vb:1:a5b16b0c85]
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Ben denediğimde böyle bir sorun yaşamadım. bir yerlerde hata yapıyorsunuz sanıyorum.
 
Katılım
8 Haziran 2005
Mesajlar
114
Kod:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
  Application.EnableEvents = False
    If Target.Address = "$A$1" Then Target = Target / 100
  Application.EnableEvents = True
End Sub

A1 hücresine yazdığım değer ben yazar yazmaz 100 e bölünsün.
Mesela 100 yazdım bu hemen 1 oldu 1000 yazdım 10 oldu.
Nasıl yapılır?
Yanlış hatırlamıyor isem, "ben yazar yazmaz 100'e bölsün" demiştiniz, seçer seçmez değil.
Aslında sorunuz Change olayı ile ilgili idi. Birde bu yöntemi deneyiniz, umarım birebir sorunuzun cevabıdır
 
Katılım
5 Mayıs 2005
Mesajlar
72
VisualBasic,cevabın için teşekkürler.
leventm arkadaşımızın kodu da aşağı yukarı neticeyi verdiği için fazla uğraştırmayayım sizleri diye düşündüm.
Malumunuz kafasında soruları olan tek kişi ben değilim.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
VisualBasic' Alıntı:
Birde bu yöntemi deneyiniz, umarım birebir sorunuzun cevabıdır
Bana göre, sorunun bire bir cevabı bu da değil....

"Yazar yazmaz" dan, benim anladığım.... farenin imleçi henüz A1 hücresinde iken yani, henüz daha hücrede "edit - düzenleme" modunda iken yazılan sayının o anda 100' bölünmesi.

Sizin yazdığınız kodla, istenen sonuçun hücrede belirmesi için, yazıldıktan sonra hücreyi terk etmek gerekiyor..... Yani bir şekilde yine Worksheet_SelectionChange olayının gerçekleşmesi gerekiyor.

Bu da, bu tip klasik VBA kodlamasıyla yapılması mümkün olmayan işlerden biri bana göre... O nedenle yukarıdaki ilk mesajımda belki de "subclassing" kullanmak bir çözüm olabilir demiştim.
 
Katılım
5 Mayıs 2005
Mesajlar
72
Raider, subclassing nedir? Açıklarsanız birşeyler daha öğrenmiş oluruz.
leventm kardeşimizin kodunda a1 e 1000 yazıp enter yaptığımda netice alıyorum,
VisualBasic kardeşimizin kodunda enter veya Control+Enter yaptığımda da netice alıyorum. Yani hicreden ayrılmadan. 2 cevap da işimi görüyor aslında ama bu subclassing olayını da merak ettim.
 
Katılım
8 Haziran 2005
Mesajlar
114
Bu da, bu tip klasik VBA kodlamasıyla yapılması mümkün olmayan işlerden biri bana göre... O nedenle yukarıdaki ilk mesajımda belki de "subclassing" kullanmak bir çözüm olabilir demiştim.
Sizde subclassing ile çözümleyin buda diğer bir çözüm olsun, öyle değil mi?

Sayın Leventm'nin sunduğu çözümde sorunun çözümünde yardımcı olmuştur, ancak VBA ile en yakın çözüm change olayıdır.

Birazda ben felsefi fikirler üreteyim:
Daha yazarken 100'e bölünmesi diye birşey olamaz derim. O zaman yazılan her rakam 100'e bölünür yazan kişi bir türlü rakamını yazamaz. Zaten amacımız Change olayındaki sonsuz döngüyü bertaraf etmektir.

Bu da, bu tip klasik VBA kodlamasıyla yapılması mümkün olmayan işlerden biri bana göre... O nedenle yukarıdaki ilk mesajımda belki de "subclassing" kullanmak bir çözüm olabilir demiştim.
Eğer klavyenin tuşlarına basarken 100'e bölünme olayı ise, onunda VBA ile çözümü var, ama söylemem :)
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
VisualBasic' Alıntı:
Sizde subclassing ile çözümleyin buda diğer bir çözüm olsun, öyle değil mi?
ehehee.... o kadar kolay bir şey olsa, hemen yapar buraya da yollardım.

VisualBasic' Alıntı:
Birazda ben felsefi fikirler üreteyim:
Benim amacım felsefe yapmak değildi. Ama sizin belirttiğiniz fikirlere ben katılmıyorum.

VisualBasic' Alıntı:
onunda VBA ile çözümü var, ama söylemem

Bu sizin tasarrufunuzdur, bize bir şey söylemek düşmez.

Herkese kolay gelsin...
 
Katılım
8 Haziran 2005
Mesajlar
114
Burada amaç çöüme ulaşmak değilmidir?
Sayın leventm ve suzunköprü bir çözüm sunmuşlar.

Benim amacım felsefe yapmak değildi. Ama sizin belirttiğiniz fikirlere ben katılmıyorum.
Sonuca ulaşmayan fikirler benim için felsefeden öteye geçmez. Üstelik fikirlerimin katılınmayacak bir yönü yok, çünkü çözümler ortada.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Soru başlığı' Alıntı:
....... ben yazar yazmaz 100 e bölünsün
Ã?nerilen çözümler ise;

yazıp, hücreden çıktıktan sonra 100'e bölünmesi ile ilgili.

Benim tespitim de işte bu.

Eğer, önerilen çözümler soruyu soran kişin problemine çözüm olduysa o zaman bir tespit daha yaparsak;

1) Problem çözüldü, güzel.

2) Sorun, doğru bir şekilde mesajda anlatılmamış. "Yazar yazmaz" değil, "hücreden çıkar çıkmaz" şeklinde ifade edilmeliydi.


Not:

******* Konu benim açımdan kapanmış ve kilitlenmiştir **** :mrgreen:
 
Katılım
29 Eylül 2004
Mesajlar
1,810
Excel Vers. ve Dili
Excel 2002 TR
Eğer klavyenin tuşlarına basarken 100'e bölünme olayı ise, onunda VBA ile çözümü var, ama söylemem

Böyle düşünüyorsanız yanlış bir forumdasınız. Zaten bu başlık çoktan yardım olayından çıkmış ve kilitlenmeyi haketmiş. Sadece soruyu soran arkadaş konu ile ilgili devam sorusu varsa diye açık duruyor. Demogoji cevaplar gelirse o mesaj silinip kilitlenecek tarafımdan.
 
Katılım
8 Haziran 2005
Mesajlar
114
danersin' Alıntı:
Eğer klavyenin tuşlarına basarken 100'e bölünme olayı ise, onunda VBA ile çözümü var, ama söylemem

Böyle düşünüyorsanız yanlış bir forumdasınız. Zaten bu başlık çoktan yardım olayından çıkmış ve kilitlenmeyi haketmiş. Sadece soruyu soran arkadaş konu ile ilgili devam sorusu varsa diye açık duruyor. Demogoji cevaplar gelirse o mesaj silinip kilitlenecek tarafımdan.
Sayın Danersin sanırım, alıntıda bir gülümseme eksik. Birde ben alınıt yapayım;

VisualBasic' Alıntı:
Eğer klavyenin tuşlarına basarken 100'e bölünme olayı ise, onunda VBA ile çözümü var, ama söylemem :)
Gülümseme bir espiri mahiyetini taşır öyle değil mi? Yani :hey: bunun gibi. Bir gülümseme eksik görülürse, espiri değildir, belirttiğiniz sonuca ulaşılabilir. Bir şeyleri birilerinden gizleyen Ketum bir insan değilmdir. Eğer biliyorsam, kesinlikle söylerim, ve şimdiye kadar, bundan da bir zarar görmedim.

Dilediğiniz konuyu kiliteyebilirsiniz. Demogoji yapmak gibi bir olay da yok ortada. Hangi konunun kilitleneceği size kalmış ve beni ilgilendirmeyen bir olaydır. Bundan beni haberdar etmeye gerek görmeyiniz. Kimse ile alıp veremediğim olmadığı için benim içim bir problem olmayacaktır.

Ama Alıntılarınızda, gülümseme (Espiri) Smileyi varsa alınız ki, espiri olduğu anlaşılsın. :arkadas:


İnsanlara önyargı ile yaklaşmayalım, önyargılı olanları uyaralım. :bravo:
 
Üst