Çözüldü Hücre değerini - ?% +?% oranında düşürme arttırma

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

Akif59

Yıllık Forum Üyesi
Excel Versiyonu
Excel 2016
Excel Sürümü
64 Bit
Excel Dili
Türkçe
Sayın @Ömer BARAN merhaba

d15 dı15 aralığındaki hücre değerleri ni B16 hücresine girilen örneğin -%3 oranında düşürmek veya yine B16 Hücresine girilen +%5 oranında arttırmak mümkün müdür -3 ve +5 temsilidir değer her zaman farklı olabilir

d15 ve dı 15 aralığındaki hücre değerleri bazen çok düşük olabiliyor 2 6 4 3 gibi böyle değerleri %-3 düşürmek veya yükseltmek bazen mantıken imkansız olduğunda düşürebildiği kadar veya yüksekte bildiği kadar yükseltsin müsait olduğunuzda çözüm üretip yardımcı olur iseniz çok memnun olurum
 

Ekli dosyalar

Merhaba Akif Bey.

Önce bir not:
Sorularınızı ben de olsam, belli bir ismi muhatap alarak sorduğunuzda;
konuyla başka arkadaşlarımızın ilgilenme olasılığını düşürdüğünüzü hatırlatarak söze başlayayım.
Müsait oldukça, hiçbir konunun cevapsız/çözümsüz kalmaması için forumla ilgileniyorum zaten.
Ayrıca, cevaplarımın altındaki İMZA bölümünde de yazıldığı gibi, sayfa koruması uygulayan kodları,
nihai sonuca ulaşıncaya kadar devre dışı bırakmanızda yarar var.


Netleştirilmesi gereken bazı hususlar var bence;
-- 15'inci satırdaki veriler belgeye nasıl yazılıyor (elle/başka kaynaktan kopyala-yapıştır yöntemiyle/makro kodlarıyla gibi) ?
-- İsteğiniz işlem, B16 hücresinde elle değişiklik yapıldığında mı yapılacak yoksa bir düğme mi kullanılacak?
-- B16'ya mutlaka pozitif sayı yazılıp, artırma için ayrı bir düğme, eksiltme için ayrı bir düğme mi kullanılacak?
-- B16 hücresine bir değer yazdınız diyelim (yukarıda belirttiğim işlemin tetiklenme yöntemine göre), artırma veya eksiltme 1 kez mi yapılacak?
-- Bu artırma eksiltme işlemi yapıldıktan sonra, B16 hücresi boşaltılacak mı?
-- Artırma/eksiltme işlemi sonucunda 15'inci satırdaki değerler yine TAMSAYI mı olacak, ONDALIKlı sayı olabilecek mi?
-- Eksiltme yapılacaksa, bir alt sınır değeri ( 0, 1, 3 vs) olacak mı?
-- Sonuçlar TAMSAYI olacaksa, küçük olduğu için değişmeyecek sayılar atlanıp, sadece uygun olanlar mı değiştirilecek?
-- 17'nci satırda formüller mevcut, yeni değerlere göre 17''nci satır zaten hesaplamayı (16-15) kendisi yapacak doğru mudur?
-- 15'inci satırdaki değer değişikliğinden doğrudan veya dolaylı olarak etkilenecek/etkilenmesi gereken 17'nci satır dışında bir alan var mıdır?

.
 
Merhaba Akif Bey.

Önce bir not:
Sorularınızı ben de olsam, belli bir ismi muhatap alarak sorduğunuzda;
konuyla başka arkadaşlarımızın ilgilenme olasılığını düşürdüğünüzü hatırlatarak söze başlayayım.
Müsait oldukça, hiçbir konunun cevapsız/çözümsüz kalmaması için forumla ilgileniyorum zaten.
Ayrıca, cevaplarımın altındaki İMZA bölümünde de yazıldığı gibi, sayfa koruması uygulayan kodları,
nihai sonuca ulaşıncaya kadar devre dışı bırakmanızda yarar var.


Netleştirilmesi gereken bazı hususlar var bence;
-- 15'inci satırdaki veriler belgeye nasıl yazılıyor (elle/başka kaynaktan kopyala-yapıştır yöntemiyle/makro kodlarıyla gibi) ?
-- İsteğiniz işlem, B16 hücresinde elle değişiklik yapıldığında mı yapılacak yoksa bir düğme mi kullanılacak?
-- B16'ya mutlaka pozitif sayı yazılıp, artırma için ayrı bir düğme, eksiltme için ayrı bir düğme mi kullanılacak?
-- B16 hücresine bir değer yazdınız diyelim (yukarıda belirttiğim işlemin tetiklenme yöntemine göre), artırma veya eksiltme 1 kez mi yapılacak?
-- Bu artırma eksiltme işlemi yapıldıktan sonra, B16 hücresi boşaltılacak mı?
-- Artırma/eksiltme işlemi sonucunda 15'inci satırdaki değerler yine TAMSAYI mı olacak, ONDALIKlı sayı olabilecek mi?
-- Eksiltme yapılacaksa, bir alt sınır değeri ( 0, 1, 3 vs) olacak mı?
-- Sonuçlar TAMSAYI olacaksa, küçük olduğu için değişmeyecek sayılar atlanıp, sadece uygun olanlar mı değiştirilecek?
-- 17'nci satırda formüller mevcut, yeni değerlere göre 17''nci satır zaten hesaplamayı (16-15) kendisi yapacak doğru mudur?
-- 15'inci satırdaki değer değişikliğinden doğrudan veya dolaylı olarak etkilenecek/etkilenmesi gereken 17'nci satır dışında bir alan var mıdır?

.
sayın BARAN Merhaba dosyaya hakim olduğunuzu düşünerek size hitaben yazdım haklısınız yeni bir konu genel yazmam gerekiyordu

_15 satır değerlerini bazen kopyalayarak bazende el ile giriyorum
_ B16 hüçresini biçimlendirmesini % olarak düşündüm el ile - 3 yada +3 yönde değişilik olduğunda işlem gerçekleşsin buton kullanmak istemiyorum
_B16 ya her zaman tam girilecek buton kullanmak istemiyorum hücre değeri değiştiğinde tetik lesin
_ arttırma ve eksiltme işlemi istediğim sonuca ulaşana kadar B16 değerini her değiştirdiğimde bir kez olsun
_ B16 boşaltılmayacak % kaç arttırdığını yada eksilttiğini bilmem lazım
_Tüm işlem sonuçları tam sayı olacak 6,678,00 değil 7 gibi tavana yada tabana tam sayı
_ eksiltme ve arttırmalarda alt sınır ve üst sınır söyle olması lazım 15 satırdaki 3 %-5 eksiltemez siniz ya olduğu gibi bırakacak yada 2 düşürecek gibi
_17 satır kendisi güncellenecek tir haklısınız
_ 15 satır değerleri değişince 17 satır hariç etkilenen alan yoktur
 
Akif Bey.

Mevcut Worksheet_Change kodundaki If...Elseif....End If bölümüne
yeni bir Elseif bloku olarak aşağıdakini ekleyerek deneyin.

CPP:
İçeriği görüntülemek için giriş yapmalısınız
(13 satır)

.
 
Akif Bey.

Mevcut Worksheet_Change kodundaki If...Elseif....End If bölümüne
yeni bir Elseif bloku olarak aşağıdakini ekleyerek deneyin.

CPP:
İçeriği görüntülemek için giriş yapmalısınız
(13 satır)

.
Sayın BARAN
Maalesef Halen devam etse de Salgın süreci sonrası müşterilerin sipariş adetlerini tek bir mail iletisi ile siparişimiz adetini %3 eksiltin yada yükseltin talepleri nedeniyle böyle bir ihtiyaç hasıl oldu elinize sağlık bir parantez açık kalmış kapatıp kodu çalıştırdım detaylı bir şekilde yarın tüm adetleri hesap maki nası ile hesaplayıp izniniz ile kontroller yapmak istiyorum

bu süreçte sizden şöyle bir düzenleme rica edebilir miyim B16 sildiğim de tüm adetleri eski haline geri çevirebilir mi öyle bir süreçten geçiyoruz ki dakikalar içinde kararları değişebiliyor
 
Hangi eski hali?
Belgeyi açtığınızdaki hali mi, son eksiltme/artırma işlemi öncesindeki hali mi, ya da belirleyeceğiniz bir andaki hali mi?

Sorularınızı/isteklerinizi, tüm durum seçeneklerini gözönüne alarak. ayrıntılı belirtirseniz bir şeyler yapılabilir elbette.

Tahminim o ki isteğiniz aşağıdaki şey (önceki verdiğim kodun ilgili kısmını değiştireceksiniz) .
Kodun önceki halinde, hücrede 100 varken önce +10% sonra -10% yazdığınızda nihai sonuç, başlangıçtaki 100 değil 99 oluyordu.
Kodun yeni halinde, tekrar 100 sonucu elde edilir.

Kod:
İçeriği görüntülemek için giriş yapmalısınız
(7 satır)

.
 
Hangi eski hali?
Belgeyi açtığınızdaki hali mi, son eksiltme/artırma işlemi öncesindeki hali mi, ya da belirleyeceğiniz bir andaki hali mi?

Sorularınızı/isteklerinizi, tüm durum seçeneklerini gözönüne alarak. ayrıntılı belirtirseniz bir şeyler yapılabilir elbette.

Tahminim o ki isteğiniz aşağıdaki şey (önceki verdiğim kodun ilgili kısmını değiştireceksiniz) .
Kodun önceki halinde, hücrede 100 varken önce +10% sonra -10% yazdığınızda nihai sonuç, başlangıçtaki 100 değil 99 oluyordu.
Kodun yeni halinde, tekrar 100 sonucu elde edilir.

Kod:
İçeriği görüntülemek için giriş yapmalısınız
(7 satır)

.
Sayın BARAN
Ben tam anlata masamda siz tam anlıyorsunuz
son re vizeniz tam istediğim şey aslın da küçük bir detay farkıyla hücredeki 100 den % -3 düştüğümde 97 oluyor tekrar 100 tamamlamak için +3 giriyorum olmasını istediğim B16 Hücresindeki -3 sildiğim de 100 geri dönmesiydi
 
O zaman, her seferinde bir önceki aşamada hücrede ne olduğunu bellekte tutturmak lazım demektir.
Aynı oranın NEGATİFİ nin girilmesi daha pratik değil mi?

Uygun olduğumda bakarım.
 
Son olarak + 3 yazdınız ve değerler artırıldı, sonra da bu POZİTİF değeri sildiğinizde ne olacak?
NEGATİFİ silince öngördüğünüz GERİAL işlemi, POZİTİFİ silince de olacak mı?
 
Akif Bey.

Bir önceki mesajımı görmediniz ama sorumun cevabının EVET olduğu varsayımıyla;

Mevcut Worksheet_Change kodunun bulurduğu ilgili sayfaya ait kod ekranında;
-- Tüm kodların üstüne (yani vba ekranında bu satır, ilk kod satırı olacak) aşağıdaki yeşil satırı ekleyip,
-- Mavi satırları da ilgili yere ekleyip
deneyin bakalım.

VBA:
İçeriği görüntülemek için giriş yapmalısınız
(16 satır)

.
 
Akif Bey.

Bir önceki mesajımı görmediniz ama sorumun cevabının EVET olduğu varsayımıyla;

Mevcut Worksheet_Change kodunun bulurduğu ilgili sayfaya ait kod ekranında;
-- Tüm kodların üstüne (yani vba ekranında bu satır, ilk kod satırı olacak) aşağıdaki yeşil satırı ekleyip,
-- Mavi satırları da ilgili yere ekleyip
deneyin bakalım.

VBA:
İçeriği görüntülemek için giriş yapmalısınız
(16 satır)

.
Merhaba Sayın BARAN
dosya ektedir
9 Nolu mesajınıza cevap veremedim özür dilerim eve anca girebildim
siz benim cevabımın evet olacağını var sayarak doğru düşünmüşsünüz teşekkür ederim
belirttiğiniz revizeleri yaptım ama olmadı - 5 girerek 95 çektiğim hücre değerini tekrar 100 tamamlamak için +5 girmek zorunda kalıyorum yada +3 girip 103 yaptığım değeri tekrar 100 yapmak için -3 girmem gerekiyor
_15 beşinci satırdaki hücre değerleri tam sayı gibi görünse de 100 olarak hücre üzerine tıklayınca formül çubuğunda görünen değerler tam sayı değil nedeni bu olabilir mi ?
 

Ekli dosyalar

Verdiğim kodda, ilgili satırı silerek göndermişim zaten ama o satırın silinmesi gerektiğini net belirtmemişim.
Önceki kod cevabıma dikkat ederseniz aşağıdaki kırmızı renklendirdiğim satır orada yok.
Kırmızı satırı silerek deneyin.

15'inci satırdaki hücrelerde küsuratlı sayıların olması önemli değil.
Koddaki koşul, hücredeki sayı ile oran'ın çarpımının 1'den büyük olmasıdır.
Yani hücrede 9 sayısı varsa ve siz +1% yazmışsanız, çarpım 0,9 yapar ve artış gerçekleşmez.
( Abs(hcr.Value * oran) > 1 )

İlave olarak;
sayı yazdıktan sonra aynı hücrenin tekrar aktif hücre olarak kalmasını isterseniz (silmek üzere hücreyi seçili bırakmak)
Next satırından hemen sonra Target.Activate şeklinde bir satır eklersiniz.
.
VBA:
İçeriği görüntülemek için giriş yapmalısınız
(3 satır)
 
Verdiğim kodda, ilgili satırı silerek göndermişim zaten ama o satırın silinmesi gerektiğini net belirtmemişim.
Önceki kod cevabıma dikkat ederseniz aşağıdaki kırmızı renklendirdiğim satır orada yok.
Kırmızı satırı silerek deneyin.

15'inci satırdaki hücrelerde küsuratlı sayıların olması önemli değil.
Koddaki koşul, hücredeki sayı ile oran'ın çarpımının 1'den büyük olmasıdır.
Yani hücrede 9 sayısı varsa ve siz +1% yazmışsanız, çarpım 0,9 yapar ve artış gerçekleşmez.
( Abs(hcr.Value * oran) > 1 )

İlave olarak;
sayı yazdıktan sonra aynı hücrenin tekrar aktif hücre olarak kalmasını isterseniz (silmek üzere hücreyi seçili bırakmak)
Next satırından hemen sonra Target.Activate şeklinde bir satır eklersiniz.
.
VBA:
İçeriği görüntülemek için giriş yapmalısınız
(3 satır)
Günaydın Sayın BARAN
Belirttiğiniz satırı silince oldu çok teşekkür ederim ayrıca hücrenin halen seçili kalması için önerdiğiniz Target.Activate satırı bir sonraki aşamada ihtiyaç duyabileceğim bir şeydi öneriniz içinde ayrıca teşekkür ederim
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Konuyu başlatan
Yıllık Forum Üyesi
Katılım
Konu Bilgi
Durum
Çözüldü 
Forum
Excel Makro Soruları
Başlangıç tarihi
Son yanıt tarihi
Cevaplar
12
Üst