A

Çözüldü Örnek dosyadaki şartlı derlemeleri kod ile yapılabilirmiyiz

  • Konuyu başlatan Konuyu başlatan Akif59
  • Başlangıç tarihi Başlangıç tarihi
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
Merhaba
B12 hüçresi dolu ise

12 nolu satırdaki 4 113 arasındaki değerlerin ilk iki karakteri aynı olanlar ilk iki karakterine göre 121 satıra 4 113 arasına küçükten büyüğe sıralanabilir mi
bu sağlanabilirse aynı olanların adet toplamları da kesim adeti 122 nolu satıra Bdn kesilen adeti de 123 satıra getirilebilir mi

B12 Hüçresi boş ise
12 nolu satırdaki 4 113 arasındaki değerlerin tamamı 121 satıra 4 113 arasına küçükten büyüğe sıralanabilir mi

adet toplamları da kesim adeti 122 nolu satıra Bdn kesilen adeti de 123 satıra getirilebilir mi
 

Ekli dosyalar

İnanın belgenizden hiçbir şey anlayamıyorum.
Güncelleme meselesi değil öncelikle;
-- 121'inci satıra veriler değer olarak doğru ve sırasında geliyor mu gelmiyor mu?
-- 122 ve 123'üncü satırlarda istenilen sonuç lar alınıyor mu alınmıyor mu?
Bunu netleştirseydiniz keşke.
Kod 12'nici satırda elle yazarak değişiklik olduğunda tetiklenecek diye varsayıyordum baştan beri.

Verdiğim kod ve yöntemi dosyanıza uygulayın ve 12'ncci satırdaki herhangi bir hücrede F2+ENTER yapın,
ardından 121, 122 ve 123'üncü satırlarda oluşan listelerin doğruluğunu kontrol edin.
Değerler ve sıralaması tamam ise, işlemin tetiklenmesinin neye bağlalanacağını net (adres/satır-sütun/sayfa adı gibi) ifade edin derim ben.

Belgenizin tümüne hakim olmadığımdan, yazdıklarım size anlamlı gelmiyor olabilir, bilemiyorum.
Ben olsam İŞLEM TÜRÜ (çarp/topla/satır göster-gizle/sütun göster-gizle vs işlem neyse artık) bazlı ayrı ayrı kodlar oluşturur,
bu işlemlerin tetiklenmesini de Change kodunda basit bir If..Elseif...Else...End If yapıyla uygun adrese göre (adres sorgulaması)
uygun İŞLEM TÜRÜ makrosunu çağırırdım.
Böylece Change kodunun neyi ne zaman kontrol edeceği yada daha da önemlisi nerelerdeki değişikliği kontrol ETMEYECEĞİ daha kolay kurgulanırdı.
Sayın BARAN öncelikle sabrınız ve anlayışınız için teşekkür ederim
son eklediğim formüllerin düzenlediği dosyayı inceleme fırsatınız oldumu bilmiyorum

evet sorunumuz bence tetikleme sanki aynı kod içinde üç ayrı kod yazmamız gerekiyor
yazdığınız üç kodta 12 satıra önce bedenleri giriyorum tam olarak aşağıdaki gibi olmamada 121 sıralıyor

sonra 14 satıra adetleri giriyorum adetlerin 122 satıra kendi bedeninin altına yazılabilmesi için 12 satıra gidip kodu tetiklemek için dönüyorum
sonra 15 satıra adetleri giriyorum adetlerin 123 satıra kendi bedeninin altına yazılabilmesi için 12 satıra gidip kodu tetiklemek için dönüyorum


B12 doluysa 12 satıra girilen bedenler tek haneli iki haneli dört haneli olabiliyor hatta harf olarak bile olabiliyor ve bunlar aynı anda giriliyor maalesef
görselde göründüğü gibi
1588260648543.webp

dört haneli olanlarda ilk iki hanesi aynı olanlar var dört haneli olanları 121 satıra ilk iki hanesine göre sıraya koydu tek haneli iki haneli ve harf olarak girilenleri olduğu gibi 121 de sıraya koydu förmül
bunların 121 satırdaki sıralaması bu şekilde
1588260871604.webp

son olarak sayın BARAN gerçekten çok emek harcadınız olmuyorsa da sıkmayın canınızı az değil kodlar sayesinde 50 bine yakın formülden kurtuldum bu dosyada o formüller bozulduğunda çözene kadar boğuluyordum sizi küstürmek istemem belkide ben ifade edemi yorumdur
zamanınız varsa son eklediğim dosyada 12 satır beden ifadelerini 14 15 satırlardaki adetleri değiştirerek deneyin derim
 
Moderatörün son düzenlenenleri:
Sayın @Akif59 .

Dediğim gibi. mesele kodun tetiklenmesi değil öncelikle değerlerin doğruluğu idi.
Şu anda emin olmadığım tek husus B12 boşsa /doluysa farkı, o kısmı mutlaka kontrol edip geri bildiriminde bulunun.

.
-Sayın BARAN örnek dosyayı tekrar paylaşıyorum artık her iki koşulda sıralama sorunu kalmadı

yeşil renk iki bedenim var 23 30 ve 23 32 23 bedeni B12 Dolu olduğu için ilk iki hanesine göre 121 satırda tek olarak sıralamış fakat 122 ve 123 satır adetlerini doğru toplamamış

-15 nolu satırdaki adetler formül ile toplanıyor bunların 123 satıra gelmesi için yine 12 satırda işlem yapmak gerekiyor
 

Ekli dosyalar

Eklediğiniz son örnek belgedeki kodun üst kısmını aşağıdakiyle değiştirerek dener misiniz?
Denemeler yaparken kodun işlemini yarıda keserseniz en üstteki normale_don makrosunu bir kez çalıştırmayı unutmayın.

Ayrıca cümlelerinizde, "doğru değil" ya da "yanlış" yerine; şu hücrede şu olması gerekirken şu sonuç alınmış gibi,
adres de belirterek olması gereken sonucu belirtirseniz iyi olur.

CSS:
Görüntülemek için giriş yapmanız gerekmektedir.
(44 satır)
 
Eklediğiniz son örnek belgedeki kodun üst kısmını aşağıdakiyle değiştirerek dener misiniz?
Denemeler yaparken kodun işlemini yarıda keserseniz en üstteki normale_don makrosunu bir kez çalıştırmayı unutmayın.

Ayrıca cümlelerinizde, "doğru değil" ya da "yanlış" yerine; şu hücrede şu olması gerekirken şu sonuç alınmış gibi,
adres de belirterek olması gereken sonucu belirtirseniz iyi olur.

CSS:
Görüntülemek için giriş yapmanız gerekmektedir.
(44 satır)

Sayın BARAN formüller ile ulaştığım sonuca aynen ulaşıyorum elinize sağlık günlerdir sizi çok yordum

Dosyamda çok az formülü alan kaldı bunlar için ayrı konumu açayım uygun olduğunuzda bakabilir misiniz
DK sütunu 18 118 arasındaki toplama formülleri
DL sütunu 18 118 arasındaki çarpma formülleri
DP sütunu 18 118 arasındaki doluysa önce topla sonra çarp formülleri
 
Sayın @Akif59 .

İşlemin tetiklenme kriterini netleştirmek gerekir.
DP sütunu, DO sütunu ve DP13 hücresine bağlı olarak değer alıyor.
Dolayısıyla DO ve DP sütunu ile DP13 hücresini etkileyen alanın neresi olduğu önemli
Ayrıca 18:118 satır aralığındaki 68'inci satırda da METİNsel ifade olduğunu unutmamak gerek.

.
 
Sayın @Akif59 .

İşlemin tetiklenme kriterini netleştirmek gerekir.
DP sütunu, DO sütunu ve DP13 hücresine bağlı olarak değer alıyor.
Dolayısıyla DO ve DP sütunu ile DP13 hücresini etkileyen alanın neresi olduğu önemli
Ayrıca 18:118 satır aralığındaki 68'inci satırda da METİNsel ifade olduğunu unutmamak gerek.

.
Sayın BARAN üzerinde çok emek harcayarak yazdığınız kod sayesinde dosyamı tek parça halinde kullana biliyorum 68. satır 18 118 arasındaki diğer satır ile aynı

Tetikleme konusu söyle olabilir DO 18 118 arasına 0,98 1,28 5,10 6,58 gibi değerler giriliyor bu değerlerin üzerine DP 13 hücresindeki genelde 0,04 olan değeri ekleyip DJ sütunundaki değere çarp sonucu DP18 118 yaz
istenilen sonuca ulaşılmaz ise DP 13 değer yükseltilip düşürülebiliyor bu durumda hem DO sütunu hemde DP 13 tetikleyici olması gerekiyor
 
Mevcut kodların tümünü silip yerine aşağıdakini yapıştırıp tüm kontrollerinizi/denemelerinizi yapıp sonucunu iletirsiniz.
Denemeler sırasında işlemi yarıda kesecek olursanız; bir kez en üstteki normale_don makrosunu çalıştırmayı unutmayın.
Dosyanızda zaten var olan kodlardaki ....SELECT kısımları bana anlamlı gelmiyor, bir işlevi de yok. Bence onları silebilirsiniz.

CSS:
Görüntülemek için giriş yapmanız gerekmektedir.
(235 satır)

.
 
Mevcut kodların tümünü silip yerine aşağıdakini yapıştırıp tüm kontrollerinizi/denemelerinizi yapıp sonucunu iletirsiniz.
Denemeler sırasında işlemi yarıda kesecek olursanız; bir kez en üstteki normale_don makrosunu çalıştırmayı unutmayın.
Dosyanızda zaten var olan kodlardaki ....SELECT kısımları bana anlamlı gelmiyor, bir işlevi de yok. Bence onları silebilirsiniz.

CSS:
Görüntülemek için giriş yapmanız gerekmektedir.
(235 satır)

.
Sayın BARAN Eski kodlarda düzenlemiş elinize sağlık çalışmayan yada hatalı çalışan bir bölüm yok

fakat kodun aşağıdaki bölümünde eksik bir şeyler var
Bu bölüm D18 DI 118 aralığındaki değerleri DJ18 DJ118 aralığındaki değerlere çarpıp sonucu 15 satıra yazıyor çalışmasında hesaplamasında bir problem yok fakat DJ18 DJ118 değerlerde değişiklik yaptığımda 15 satırdaki değerleri tekrar hesaplamıyor tekrar hesaplaması için D18 DI 118 arasındaki değeri tekrar yazmam gerekiyor ve her iki aralık tanda hücrelerde toplu halde seçip silme işlemi yaptığımda 15 satırın tekrar hesaplanması gerekir



Kod:
Görüntülemek için giriş yapmanız gerekmektedir.
(4 satır)
 
Tekrar merhaba Sayın @Akif59 .

Toplu yazma (kopyala-yapıştır) veya toplu silme işlemi, olayı başka bir boyuta taşır.

İsterseniz belgenizin makrosuz yani satır/sütun gizle/göster kısmı hariç formüllerle çalıştığınız haline ekleyeceğiniz yeni bir sayfada:
-- bir sütuna verinin elle yazıldığı veya seçilip silnidği hücre aralığının adresini,
-- karşısına bir sütuna bu alandan kaynaklı olarak, doğrudan ya da dolaylı olarak veri yazılacak alan adresini,
-- karşısına uygun bir sütuna da bu işlemler için varsa koşulun ne/hangi hücre vs olduğunu,
-- işlem yapılması veya koşul kontrolü bakımından istisna olacak satır/sütun varsa bunu (68'inci satır gibi)
yazın ve foruma yükleyin.

Ayrıca, belgenizde mevcut sütun göster/gizle ve satır göster/gizle işleminin neye bağlı olarak tetiklenmesi gerektiğini net ifade edin.
Örneğin satır göster/gizle işleminin kriteri olan C sütununa veya sütun gizleme/gösterme işleminin kriteri olan 12'nci satıra veri girişi veya silme işleminin nasıl yapıldığını, yani toplu yazma/silme/veri dorğluma listesinden seçme vs neyse artık onu net belirtin.)

Artık belgenize bir miktar aşinalığım oluştuğuna göre daha kolay anlayacağımı düşünüyorum.
Amaç, gereksiz döngüye girmemek, gereksiz satır/sütun gizle/göster kontrolü yapılmaması vs.

.
 
Sayın BARAN geri dönüşünüz için gerçekten çok teşekkür ederim hiçbir forumda bu kadar karmaşık bir dosya için kimse bir çaba harcamıyor

dosyada küçük bir sıkıntı kaldı sadece dosyaya yeni bir sayfa ekleyerek anlatmaya çalıştım geçmişte sizin yazdığınız bir kodla sorunun çözümü var var olan kodların içindeki kodla değiştirmeyi ben beceremedim

bu sorun çözülür ise bir talebim daha olacak ama kafa karıştırmamak için şimdilik bahsetmedim
 

Ekli dosyalar

Belgeniz ekte.

Gerek tek tek ve gerekse de toplu olarak veri yazıp/silerek denemeler yapın.
Denemeler sırasında kod hata verirse, bir kez en üstteki normale_don makrosunu çalıştırıp,
DATA sayfasında AA sütunundan itibaren duruma göre, kod tarafından eklenen 4 veya 6 sütunluk alanda veri olup olmadığını
kontrol edip varsa silmeyi unutmayın.

Mevcut makrolarınızdaki bazı kısımları deneme şansım olmadı ve düzenlediğim kod kısımlarına etkilerini bilemiyorum.
Denemeler yapıp sonuçları yazarsınız.

.
 

Ekli dosyalar

Sayın BARAN merhaba
kodun içinde aynı işlemi yapan iki ayrı bölüm var ikisininde aynı anda kodun içinde kalmasına gerek varımdır

ilk bölüm zaten var olan benim sorun yaşayıp akşamki dosyada kırmızı ile renklerdir diğim bölüm biraz üzerinde değişiklik yapmışsınız

ikinci bölüm ise önceden bunu kullanıyorum dediğim sizin kodun içine son eklediğiniz bölüm

Kod:
Görüntülemek için giriş yapmanız gerekmektedir.
(7 satır)


Kod:
Görüntülemek için giriş yapmanız gerekmektedir.
(5 satır)
 
Denemeleri siz yapacaksınız, zira işleyişi, hücrelerin/işlemlerin birbirleriyle olan ilişkilerini de siz biliyorsunuz.
Son mesajda alıntıladığınız bölümlerin tetiklenme kriterleri farklı.
Biri D18 : DI117, diğeri ise DJ18 : DJ117 alanında değişiklik olduğunda devreye girecektir.
Bu alanların tabloya etkileri de gördüğüm kadarıyla birebir aynı değil.

.
 
Merhaba sayın BARAN Haklısınız işim gereği inanılmaz güçlü bir pc de çalışıyorum pc kilitlenip kalınca kodu inceledim bir ifade hatası olmuş düzelttim sorun çözüldü size dönüşüm bu yüzdendi şu an B12 doluysa D12 DI12 arasına ne kadar karmaşık değer gir semde 121 sıralayıp 122 ve 123 adetlerini topluyor sayenizde formüllerden kurtuldum çok teşekkür ederim

Benim sizden bir ricam daha var çöze bilir miyiz dosyada var olan bir kodu aynısını yada aynı işlemi yapacak bir kodu farklı bir aralık için yazabilir miyiz
ben var olan kodu istediğim aralık için değiştirerek denedim çok fazla satır olunca işin içinden çıkamadım
 
Son cevaptaki meramınızı anlayamadım.
İsteğiniz tam olarak nedir, biraz daha detay verir misiniz?

Aralık neresi? İşlem nedir?
İstediğiniz işlem; tetiklenme, yapılacak işlem bakımından, mevcut kodlardaki işlemlerden bazılarıyla benzerlik göstermekte midir?

.
 
Sayın BARAN bu kod en baştan beri dosyada vardı siz bunu bu şekilde güncellemiş siniz
kod DJ127 DJ131 arsına Değerleri girdiğim anda D127 DI 131 arasındaki değerleri buluyor 125 satırdaki kırmızı - değerleri sıfırlayan kadar DJ 127 den DJ131 uygun değeri giriyorum

bunun aynısını DJ18 DJ118 için yazılabilirmi


Kod:
Görüntülemek için giriş yapmanız gerekmektedir.
(30 satır)
 
Eklediğim son belgedeki kodlardaki aşağıdaki bölüm zaten bu işlemi yapıyor değil mi?
DJ118'de METİNsel ifade bulunduğu için İlgili alanı 117'nci satırda bırakmıştım.
Belirttiğiniz işlemin, kodda mavi renklendirdiğim kısımda yapılıyor olması gerekiyor.

VBA:
Görüntülemek için giriş yapmanız gerekmektedir.
(8 satır)

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