Çözüldü Sipariş ve Stok takip formu

bgrgvr

Normal Üye
Excel Versiyonu
Excel 2016
Excel Sürümü
64 Bit
Excel Dili
Türkçe
Sipariş listesine girilen siparişleri ilgili departmanlara gönderecek ve bu departmanlarda günlük üretim adedi girerek stok takibi yapabilecek bir form oluşturdum. Sipariş listesinden düşeyara komutu ile verileri farklı sayfalara ilgili bölümlere aktardım. Fakat sipariş tamamlandığı zaman sipariş listesinden satır olarak sildiğimde girdiğim üretim adetleri silinmiyor ve satırlar kayıyor, girdiğim adet başka bir ürüne kayıyor. Bunun önüne nasıl geçebilirim ?

1588037353223.webp

1588059641733.webp
 

Ekli dosyalar

  • 2.webp
    2.webp
    25.1 KB · Görüntüleme: 70
  • SİP.xlsx
    SİP.xlsx
    286.6 KB · Görüntüleme: 29
Merhaba. foruma hoşgeldiniz Sayın @bgrgvr .

Örnek belgenizdeki veri adetini azaltıp, açıklamanızı SAYFA ADI/HÜCRE ADRESİ gibi biraz netleştirir misiniz?
Anladığım kadarıya;
SİPARİŞ sayfasından 3'üncü satırı (bütün olarak satır) sildiğinizde, diğer sayfaların taranarak sildiğiniz satırdaki veriye ait
sağdaki elle girilmiş verilerin de silinmesini istiyorsunuz, doğru mudur?
Peki herbir sayfa için silinmesi gereken (elle girilmiş) alanlar nasıl bulunacak?
Hangi veri hangi sayfanın hangi sütununda aranacak?
Yani belgenizdeki işleyişi bilemeyiz ki fikrimizi söyleyelim değil mi?

Fikrim işlem için makro kullunalacağı yönünde. Silme işleminin, bildiğimiz satır silme şeklinde değil örneğin
belli sütundaki hücreye çift tıklama şeklinde olması üzerinden yürünebilir.

.
 
Formumda ana sayfam SİPARİŞ LİSTESİ. Sipariş Listesine girdiğim her veri, PRES, CNC, CİLALIK ZIMPARA, DÖŞEMELİK ZIMPARA sayfalarına aktarılıyor. Eğer ürünü Cilalık girmişsem cilalık sayfasına gidiyor. Düşeyara formülünü çokça kullandım. Ben bu sayfalar için ayrıca CNC ve PRES için stok tutmak istedim. Bunun için de CNC ve PRES'ten çıkan günlük adetleri sayfalara siparişlerin olduğu satırlara giriyorum. Sipariş sevk edildiğinde ise SİPARİŞ LİSTESİ sayfasından satırımı komple siliyorum fakat CNC, PRES, CİLALIK, DÖŞEMELİK sayfalarımda girilen adetler kalıyor. Satır silindiğinden dolayı elle girilen veriler bir diğer satıra kayıyor.

Yapmak istediğim şey şu, Sipariş Listesinden bir sipariş satırı sildiğim zaman her sayfadan girilen adetler de o satırla beraber silinsin ve veriler kaymasın.
 
Belge sizin olduğu için sizin için mesele yoktur mutlaka.
DEĞERLER sayfası A ve B sütunundaki listelerle (ki burası, SİPARİŞ sayfasında K ve L sütunlarının veri doğrulama liste kaynağı)
sayfa isimleri arasında bir bağlantı olmalı. ANladığım kadarıyla siz bu bağantıyı SİPARİŞ sayfası E sütnundan önceki gizli sütunlarda oluşturuyorsunuz.
Peki satır silmeyip sadece K ve/veya L sütunlarındaki veri doğrulama seçimlerinde değişiklik yapılması durumunda nasıl bir işlem öngörüyorsunuz?

Bence belgenize ilişkin ilk yapılması gereken, veri doğrulama liste formüllerindeki AD TANIMLAMALARInın düzenlenmesi,
ardından bu verilerle SAYFA İSİMLERİ arasında ya birebir eşleşme şeklinde ya da SAYISAL bir ilişki olmalı.
Bu sayede; satır sildiğinizde veya SİPARİŞ sayfası K/L sütunlarındaki açılır liste seçiminin akabinde işlem yapılacak ilgili sayfa adı tespit edilebilmiş olur.

.
 
DEĞERLER adlı sayfamda veri doğrulama için oluşturduğum listelerim var. Müşteri seçmek, kalıp seçmek, ürün durumu seçmek, ürün özelliği seçmek için. SİPARİŞ sayfasında E sütunundan önceki sütunlarda, siparişi Cilalık olarak işaretlemişsem 1CİLALIK 2CİLALIK olarak, döşemelikse 1DÖŞEMELİK 2 DÖŞEMELİK şeklinde "düşeyara" ile buldurabileceğim benzersiz hücreler oluşturuyorum. Yine bu sütunlarda formül kalabalığı olmaması açısından koşul sorgusu yaptırıyorum yani o sütunları sadece diğer sayfalara veri aktarabilmek için kullanıyorum.

Örnek olarak, 8. Sütunda bulunan bir siparişe bakıyorum. Döşemelik ürün ve 3DÖŞEMELİK olarak adlandırılıp döşemelik sayfasına gitmiş. Ben bu ürünü üretime aldığımda DÖŞEMELİK ZIMPARA sayfasında CNC ve PRES sayfalarında aynı satır üzerinde üretim adetleri giriyorum. Bu sayede ayrıca stok sayfası oluşturup preslenen ürün CNC de kesildiği zaman pres adedinden düşürüyorum. Siparişim sevk edildiğinde ise SİPARİŞ sayfasından 8. satırı komple sildiğimde DÖŞEMELİK ZIMPARA, CNC ve PRES sayfalarında manuel girmiş olduğum üretim adetlerim silinmiyor.

SİPARİŞ sayfasında 3DÖŞEMELİK olan ürünün satırını sildiğim zaman 4DÖŞEMELİK olan ürün kayarak 3DÖŞEMELİK oluyor ve daha önce 3DÖŞEMELİK olarak girdiğim bütün adetler o satıra yerleşen ürünlerin karşısında oluyor.
 
Belgenizden görebildiğim kadarıyla;
K/L sütunlarındaki seçimlere göre (buradaki metin üzerinden) ilgili sayfa adı tespit edilebiliyor olmalıdır.
Ki diyelim daha evvelki veri doğrulama seçimine göre ilgili satır diğer bir sayfada formülle görüntülendi ve siz o zayfada sağ kısımda elle veri girişeri yaptınız. Ardından, SİPARİŞ sayfasında aynı sipariş için K/L v.doğrulama listesinden .u kez başka sayfayı ilgilendirmek üzere mevcut seçimi değiştirdiniz. Bir önceki aşamada o sipariş için elle yaptığınız veri girişleri ne olacak?


İsteğinizle ilgili değil ama ilk önerim aşağıdaki uygulama olsun.
Böylece açılır listede DEĞERLER safasındaki ilgili sütunda sadece dolu satırlar görünmüş olur.

Tüm sütunu içine alan veri doğrulama kaynak listesi uygulaması doğru olmaz.
Örneğin DETAY isimli AD TANIMLAMASIna ilişkin formülü aşağıdaki gibi değiştirin.
Benzer işlemi ÖZELLİK için de yaparsınız.

C:
You must log in to view content
(1 satır)

.
 
Problemim aslında tarif ettiğiniz gibi. O girilen adetlerin o veriye ait olduğunun tanımlanması gerekli. SİPARİŞ sayfası üzerinden yapacağım değişikliklerde işler karışacaktır.

Veri doğrulama için de dinamik bir liste olmasını istedim. Yeni müşterileri listeye ekleyebilmem, yeni kalıp yaptığımda kalıbı bu listeye ekleyebilmem gerekli. Fakat dinamik liste oluşturmakla alakalı çeşitli uygulamalar mevcut. Ben önceliğimi programın çalışmasına verdiğimden onu yapmaya biraz üşenmiş olabilirim :)
 
VERİ DOĞRULAMA ile ilgili DİNAMİK yapı önerimi diğer alanlar için de yaparsınız.

Asıl konuyla ilgili olarak, ben diyorumki; veri doğrulama listesinde bir anlamda ilgili sayfa adını seçmiş olun.
Seçimi değiştirdiğinizde çalıştırılacak bir makro ile de önceki seçime ait ilgili sayfada sağdaki alanda yer alan elle girilmiş veriler silinebilsin.
Tekrarlayayım; K sütunundaki seçim hangi sayfada işlem yapılacağını belirlemiş oluyor.
O halde K sütunundaki hücre değeri ile sayfa adı arasında bir ilişki oluşturalım.

Mevcut duruma göre de kodlama yapılabilir elbette ama bence doğru yöntem bu.
 
Bunu yaptığımızda da şöyle bir sorun daha ortaya çıkıyor. K sütununa göre 3 farklı sayfaya veri dağıtıyorum ama benim 2 sayfam daha var. SİPARİŞ sayfasına gelen bütün verileri o sayfalara da göndermek istiyorum. O sayfalarda da girişler yapılmalı
 
Salın @bgrgvr .

Sanırım aşağıdaki kodlar istediğiniz işlemi yapacak.
Sadece satır silme işlemini klasik yöntem olan sol baştan satırı seçip silmek şeklinde değil,
Silmek istediğiniz kayıt için E sütunundaki sıra no hücresine fareyle çift tıklayın (bu işlem satırı silecek).

Kodlar;
-- hem K sütunundaki veri doğrulama seçimi değiştirildiğinde,
-- hem de yukarıda belirttiğim şekide E sütunu hücresine çift tıklayarak satır silme işlemi yaptığınızda
duruma göre DÖŞEMELİK veya CİLALIK sayfasında P:AT sütunlarında ilgili kayda ait elle yazılmış verileri silecektir.

Aşağıdaki kodların tümünü kopyalayın ve
SİPARİŞ sayfasının adına fareyle sağ tıklayıp KOD GÖRÜNTÜLEyi seçtiğinizde açılacak VBA ekranında sağdaki boş alana yapıştırın.

CPP:
You must log in to view content
(36 satır)
 
Konuyu başlatan
Normal Üye
Katılım
Konu Bilgi
Durum
Çözüldü 
Forum
Genel Excel Soruları
Başlangıç tarihi
Son yanıt tarihi
Cevaplar
11
Üst