• DİKKAT

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

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?
 
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:
 
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]
 
Ben denediğimde böyle bir sorun yaşamadım. bir yerlerde hata yapıyorsunuz sanıyorum.
 
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
 
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.
 
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.
 
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.
 
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 :)
 
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...
 
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.
 
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:
 
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.
 
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:
 
Geri
Üst