Soru Formülleri koda çevirip Change Koduna yerleştirme

Akif59

Yıllık Forum Üyesi
Excel Versiyonu
Excel 2016
Excel Sürümü
64 Bit
Excel Dili
Türkçe
Merhaba Dosyamdaki
DK22 DK120 Hücre alığındaki toplama formüllerinden kurtulmak istiyorum formüller DJ22 DJ120 Aralığına Kopyalayarak veya tek tek veri girince ve veri silince aktive oluyor.

DL22 DL120 Hücre alığındaki Çarpma formüllerinden kurtulmak istiyorum formüller DJ22 DJ120 Aralığına Kopyalayarak veya tek tek veri girince ve veri silince aktive oluyor.

DP22 DP120 Hücre alığındaki formüllerinden kurtulmak istiyorum formüller DO22 DO120 Aralığına Kopyalayarak veya tek tek veri girince ve veri silince aktive oluyor.

Bu üç formül bloğundan kurtulmak için desteğinizi rica ediyorum
Change kodunun içine ben kendim bir şeyler yazdım fakat istediğim sonucu alamadım.
 

Ekli dosyalar

@Akif59
Bir kısmı (DK ve DL sütunlarındaki formüller) için fikrimi yazayım.

-- Aşağıdaki kod satırında, kırmızı renklendirdiğim kısımlar anlamsız gibi geldi bana (bence silinmeli) (formüllü alanlar)
VBA:
İçeriği görüntülemek için giriş yapmalısınız
(1 satır)
-- Aşağıdaki kod satırının hemen üstüne yeşil satırları ekleyin.
VBA:
İçeriği görüntülemek için giriş yapmalısınız
(5 satır)
 
@Akif59
Bir kısmı (DK ve DL sütunlarındaki formüller) için fikrimi yazayım.

-- Aşağıdaki kod satırında, kırmızı renklendirdiğim kısımlar anlamsız gibi geldi bana (bence silinmeli) (formüllü alanlar)
VBA:
İçeriği görüntülemek için giriş yapmalısınız
(1 satır)
-- Aşağıdaki kod satırının hemen üstüne yeşil satırları ekleyin.
VBA:
İçeriği görüntülemek için giriş yapmalısınız
(5 satır)
Sayın BARAN Merhaba
KIRMIZI alanlar için evet halısınız ilgili alana ben bir şeyle yazmıştım istediğim sonucu alamayınca sildim

_ DK ve DL Sütunlarındaki formüllerden kurtuldum teşekkür ederim

mesajımda DP 22 ve DP120 sütunun daki formülleri de belirtmiştim bunlardan nasıl kurtulabilirim
 
O kısmı tetikleyen nedir/hangi işlemdir onu anlayamadım.
Formül =(EĞER(EBOŞSA($DO$22);"";($DO$22+$DP$15)*$DJ$22)) şeklinde.
Formülün atıf yaptığı hücreler DO22, DP15 ve DJ22 ancak kodlarda bu hücrelere etki eden/veri yazan hangi koddur onu fark edemedim.
Yoksa onun da çözümünü verirdim.

.
 
Sayın BARAN
DP Sütunundaki formülleri tetikleyen DO22 DO120 Aralığına kopyalayarak yada tek tek el ile girilen veriler tetikliyor

formül içeriği basit zaten DO22 DO120 Sütunundaki hücrelere girilen değerlere DP15 değerini de ekleyerek DJ sütundaki değerle çarpıp sonucu DP ye yazıyor.
 
Sayın BARAN mevcut kodların içinde vardı aslında
Ben DP Sütunundaki formülleri sizin bana farlı bir dosyada gösterdiğiniz gibi makro kaydet işlemiyle koda çevirecek bir şeyler yaptım hesaplamaları yaptı fakat DO sütunundan veri silince DP dekleri temizlemeyince sildim
silinmemiş halini paylaşıyorum.

benim yaptığım bölüm mevcut kodun içinde sonlarda ' Ana Kumaş İstatatişlikler başlığının altında
 

Ekli dosyalar

@Akif59
Mevcut Worksheet_Change kod blokunda yer alan
'ŞİFON BEDEN VE ADET DÜZENLEME KODLARI
başlığının hemen üstüne aşağıdaki kod satırlarını ekleyerek denemeler yapın.

VBA:
İçeriği görüntülemek için giriş yapmalısınız
(8 satır)
 
@Akif59
Mevcut Worksheet_Change kod blokunda yer alan
'ŞİFON BEDEN VE ADET DÜZENLEME KODLARI
başlığının hemen üstüne aşağıdaki kod satırlarını ekleyerek denemeler yapın.

VBA:
İçeriği görüntülemek için giriş yapmalısınız
(8 satır)
Merhaba Sayın BARAN
İş yoğunluğundan hemen dönemedim
Elinize Sağlık bu son yazdığınız kodun içine DM 15 ,DM16, DM17 ve DP16, DP17 sadece tek hücre de işlen yapan formülleri de ekleye bilimiyiz
bu beş hücredeki formülleri de yine DO22 DO120 arasındaki hücreler tetikliyor.
Dosyanın son yazdığınız kodlar ile güncellenmiş hali ektedir.
tamamen benim acele ettiğim için ilk mesajımda atladığım bir durum.
 

Ekli dosyalar

@Akif59
8 numaralı cevapta verdiğim son kodu iki yere yapıştırmışsınız.
-- Alt tarafta, 'ANA KUMAŞ HESAP KODLARI başlığının hemen üstünde olanı silin.
-- Üst tarafta, 'ŞİFON BEDEN VE ADET DÜZENLEME KODLARI başlığının hemen üstüne yapıştırdığınız kodu aşağıdaki gibi güncelleyin.

VBA:
İçeriği görüntülemek için giriş yapmalısınız
(13 satır)
 
Sayın BARAN her zaman olduğu gibi yazdığınız kodlar muhteşem çalışıyor konuyu çözüldü olarak işaretlemeden önce dosyada oluşan küçük bir problem için ne yapabiliriz

ilk yatığınız DJ22 DJ120 hücre aralığına veri girdikçe DK DL 22 120 arasındaki verilerin oluşmasını sağlayan kod dosyanın çok ağır işlem yapmasına neden oldu bunu nasıl çözebiliriz

kodu 'ANA KUMAŞ HESAP KODLARI nın içine eklememi söylemiştiniz ben mi yanlış bir şey yaptım bilemiyorum.
Kod:
İçeriği görüntülemek için giriş yapmalısınız
(6 satır)
 

Ekli dosyalar

Onu fark etmiştim, uyarıda bulunacaktım, mesajı yazarken atladım.
Unprotect ve Protect kod satırlarını For...Next döngüsünün öncesine ve sonrasına taşıyın.
100 kez koruma kaldır/koruma uygula işlemi olması anlamlı değil yani.
For döngüsü başlamadan Unprotect, Next satırından sonra da Protect olmalı.
 
Onu fark etmiştim, uyarıda bulunacaktım, mesajı yazarken atladım.
Unprotect ve Protect kod satırlarını For...Next döngüsünün öncesine ve sonrasına taşıyın.
100 kez koruma kaldır/koruma uygula işlemi olması anlamlı değil yani.
For döngüsü başlamadan Unprotect, Next satırından sonra da Protect olmalı.
Sayın BARAN
Son yazdığınız kodları tüm plan bölümlerine uyarladım kodlar tam anlamıyla istediğimi yapıyor. Elinize sağlık
lakin hak verirsiniz ki change çok uzun ve karmaşık hiç ön göremediğim şeyler oldu

_ dj sütununa veri girdiğimde yön tuşları ile bir sonraki hücreye geçtiğimde toplama işlemi yapıyor.
_ B sütundaki planla butonları ile modül 2 deki kodları tetiklediğimde hata veriyor.

 

Ekli dosyalar

Bu belgeyle ilgili olarak daha evvel de yazdığımı hatırlıyorum.
Belgedeki işlemler tamamlandığında tüm kodların elden geçirilmesi gerekir.
Belgedeki en küçük işlemde defalarca, sayfa koruması kaldır, hesaplamayı elle olarak değiştir, ekran hareketlerini durdur, sonra tersini yap.
Bu işlemler defalarca ve defalarca tekrarlanıyor.

Ezbere bir şey söyleyemem doğal olarak.
Kodları F8 ile adımlayıp tek tek kontrol yapılması gerekir. Tabi bu kontrolü de, belgeyi, akışı, olması gerekeni bilenin (özetle sizin) yapması lazım.

Şöyle;
İşlem tetikleyen hücre adreslerinin bir listesini yapıp, her birinin karşısına da hangi alanları/işlemleri etkilemesi gerektiği sütinlar halinde yazılmalı.
İşlemlerin kesişmesi durumunda ne yapılacağı/yapılmayacağı da net ortaya koyulmalı.

Son olarak da planlanan/olması gereken ile gerçekleşen karşılaştırılıp kodda işlem durdurucu eklemeler vs yapılmalı.
Her işlem için de 1 kez koruma kaldırma/koyma ... vs olacak şekilde yeniden düzenlenmeli.

Özetle kodlamanın mimarisi / çerçevesi / akış planı deniyor buna.

Aslında bu çerçevenin en baştan oluşturulup sonra kodlamalar yapılmalıydı.
Forum ortamlarında doğal olarak, çerçeve/ mimari/ akış planı hususları kullanıcıya düşüyor.
Parça parça oluşan kodların uyumlu olması, birlikte çalışmasının sağlanması zor iş açıkçası.
Çünkü belgeyi/işlemleri bilen yeterince kodlama bilmiyor, sorulara benim gibi cevap yazanlar da belgenin bütününü, cevaplanan kısmın bütün içerisindeki yerini bilmiyor.

Cep telefonundan yazarak ancak bu kadar.
 
@Akif59
Bir umut:

Deneme1 : 10 numaralı cevapta verdiğim kodun ilk satırındaki DJ22 : DJ122, (sağındaki virgül dahil) kısmını silerek denemeler yapın.
Formüller DJ sütununa atıf yaptığı için o kısım var idi.

Deneme 2: Bir de aynı koddaki aşağıdaki kısmın,
-- üstüne (For satırının üstü) Application.EnableEvents=False
-- altına da (Next satırının altına) Application.EnableEvents=True
şeklinde ekleme yaparak deneyin.
VBA:
İçeriği görüntülemek için giriş yapmalısınız
(3 satır)
 
@Akif59
Bir umut:

Deneme1 : 10 numaralı cevapta verdiğim kodun ilk satırındaki DJ22 : DJ122, (sağındaki virgül dahil) kısmını silerek denemeler yapın.
Formüller DJ sütununa atıf yaptığı için o kısım var idi.

Deneme 2: Bir de aynı koddaki aşağıdaki kısmın,
-- üstüne (For satırının üstü) Application.EnableEvents=False
-- altına da (Next satırının altına) Application.EnableEvents=True
şeklinde ekleme yaparak deneyin.
VBA:
İçeriği görüntülemek için giriş yapmalısınız
(3 satır)
Sayın BARAN Merhaba
Evet haklısınız Cepten yazdığınız önerileri ve sitemi bana geçmişte de yapmıştınız önerilerinizi adım adım uygulayarak sorunları çözmüştüm
1 yıldır da problemsiz bir şekilde dosyayı yoğun bir şekilde kullanabildim

çok az formül kalmıştı dosyada onlardan da kurtulayım istemiştim sadece aslında kurtuldum da sayenizde DJ Sütununa Manuel veri girildiği sürece sorun yok

sorun 2. mesajınızda verdiğiniz kodda biz kodu DJ sütununa manuel veri girdikçe dk ve dl sutun verileri oluşuyor

Biz kodu dj sütununa otomatik veri girdirdiğimiz modül 2 deki kodun içine de koymamız gerekiyor sanırım buda çözüm olmaz ise formüllere dönüş yapacağın sanırım yine de destek olduğunuz için minnettarım.
 
Module 2'deki hangi koddan söz ediyoruz acaba?

Module 2'deki hangi koddan söz ediyoruz acaba?

İlk kod Sayın BARAN
Sub PLAN_FINAL_ANA_KUMAŞ() 'ANA KUMAŞ ASORTİ OTAMATİK PLAN KODU

Bu kod dj sütununa otomatik olarak veri giriyor işlemini yapıyor aslıda DJ sütununa veriler girilince Change kodunun içindeki sizin 2 nolu mesajınızdaki kod da hesaplamaları yapıp dk ve dl sütununa sonuçları yazıyor dk ve dl korumalı hüçre olduğu için yazamıyor sanırım

Change kodunun içine eklettiniz 2 nolu mesajınızdaki kod dj sütununa el ile veri girişlerinde çok güzel çalışıyor.
 
Şu anda deneme şansım yok.
Şayet sayfa koruması sorunu yaşanıyorsa;
For ... satırının üstüne koruma kaldırma, Next satırının altına da koruma uygulama kod satırları ekleyerek deneyin.
 
Sayın BARAN merhaba
tüm kodların üzerinde yeniden geçtim sadece herhangi bir hücreye veri girildiğinde yön tuşları ile sağa sola yada aşağı yukarı gidilmek istendiğinde formül tarzı bir şeyler yazması kaldı.
 
Konuyu başlatan
Yıllık Forum Üyesi
Katılım
Konu Bilgi
Durum
Soru 
Forum
Excel Makro Soruları
Başlangıç tarihi
Son yanıt tarihi
Cevaplar
32
Üst