B

Çözüldü Çoklu Koşula Göre Userformla Veri Kaydetmek

  • Konuyu başlatan Konuyu başlatan Believing
  • Başlangıç tarihi Başlangıç tarihi

Believing

Yıllık Site Üyesi
Excel Versiyonu
Excel 2016
Excel Sürümü
64 Bit
Excel Dili
Türkçe
Sayun Uzman arkadaşlar,

Room maid çalışanları hergün farklı odaları temizledikleri için çalışanların hangi gün, hangi odalarda çalıştığını takip etmek istiyorum.
Veri girişini hızlı ve hatasız yapmak için çalışmaya userform ekledim.
Date (Textbox1) verilerin oluşturulacağı tarih girilecek, Room Maid çalışanı Combobox1 ile siçilecek
Room Numbers (Textbox2) kısmını oda numaraları "1125,1126,126" şeklinde araların virgül kullanılarak yazıldığında, Room Maid isimlerini ilgili tarihe ve oda nunaralarının karşısına yazacak
Yine bu alana "1101-1110,1120-1130" şeklinde yazıldığında ise, tire (-) ile ifade edilen oda numaraları aralığına room Maid ismini yazacaktır.
Bu alan boş geçilerek "Bölge Seçimi" kısmındaki işaretlenen checkboxlara göre isimler yadırılacaktır. Checkbox bu saydaki "B" ve "C" sütunlarını veya "PARAMETRE" sayfasındaki "A" ve "B" sütunlarını koşul olarak kullanmalıdır.
Userform çalışmalarına yabancı sayılırım. Yukarıdaki senaryoları sağlamak için nasıl bir kod kullanmalıyım?

Saygılarımla,
 

Ekli dosyalar

Merhaba
Oda numarasından kayıt ve bölge adından kayıt için 2 farklı kod gerekiyor. Şu anda sadece oda numarasından kayıt kodunu paylaşıyorum. Şu şekilde çalışıyor:
1101,1102,1105-1110 şeklinde numaraları giriyorsunuz. Kod buraya girilen texti virgüllerden bölerek (split komutu) bir dizi oluşturuyor. Sonra dizideki her elemanı içinde - ile ayrılmış bir aralık tanımlımı diye kontrol ediliyor ve nihayetinde 1101|1102|1105|1106|1107|..... şeklinde işaretleme yapacağı odaların listesini oluşturuluyor. Bu listeyide bir diziye çevirip sayfa üzerinde bunları bulup karşına isimleri yazıyor.
Oda numarasının eksik girilmesi çalışma sırasında hata oluşturur. bu yüzden belkide nihai listedeki oda numaraları tanımlı diye bir kontrol daha koymak daha doğru olur.. Basitçe kodu paylaşıyorum, geliştirmeyi size bırakıyorum:

Kod:
Görüntülemek için giriş yapmanız gerekmektedir.
(30 satır)
 
Moderatörün son düzenlenenleri:
Sayın Selman Bey,

Ellerinize ve emeğinize sağlık, çok güzel bir çalışma olmuş.
Eğer iki özellik daha ekleyebilirsek kusursuz bir çalışma olacaktır.
1-) Combobox1'e birkaç harf yazınca soyisimleri buluyor. Asıl çalışmada isimler soyadı, adı ( VARDARLI, SELAHATTIN) şeklindedir. Kişilerin isimlerinin birkaç harfini yazarak ta bulunması sağlamalıyız.
2-) Maid bölgeleri sıralı olmayan, karışık oda numaralarından oluşmaktadır. Ekteki çalışmada Maid 19 bölgesini örnek olarak aldığımızda, Textbox2'e 2401-2606 yazdığımızda, bu aralıktaki bulunmayan odalar için hata alarak userform kapanmaktadır. Böylesi durumlarda sıralı olarak bulunmayan odalar için mesaj alıp, doğrusunun yazılması için userform'un açık tutulması ve textbox2'e geri dönülmesini sağlamalıyız.
Yukarıdaki koşulları sağlamak için mevcut kodları nasıl revize etmeliyim?

Saygılarımla,
 

Ekli dosyalar

Merhaba Sn. Believing,
1. konu malesef VBA daki kısıtlamalar sebebiyle olmuyor. Sadece ilk harfe göre eşleştirme mümkün.

2. konu için liste değişkenin içindeki oda numaralarını kontrol edecek bir fonksiyon eklenecek.
Kod:
Görüntülemek için giriş yapmanız gerekmektedir.
(11 satır)

Commandbutton1 in koduda aşağıdaki gibi değiştirilmeli:
Kod:
Görüntülemek için giriş yapmanız gerekmektedir.
(34 satır)
 
Moderatörün son düzenlenenleri:
Sayın Selman bey,

Ellerinize, emeğinize ve bilgilerinize sağlık. Kodlarınız kusursuz çalışmaktadır.
ALLAH sizden sevdiklerinizden ve sebep olanlardan razı olsun.
Hakkınızı helal ediniz lütfen.

Saygılarımla,
 
Sayın Selman bey,

Affınıza sığınarak bir isteğim daha olacaktır.
Daha önce seçilen odaların tamamına veya birine kayıt yapılmışsa, kayıt işlemi sırasında mesaj alıp, mevcut kayıt'ı güncellemek istiyor musun? gibi bir mesaj alarak, duruma göre işleme devam edilmesini nasıl sağlayabiliriz?

Saygılarımla,
 
Sayın Selman bey,

Ellerinize, emeğinize ve bilgilerinize sağlık. Kodlarınız kusursuz çalışmaktadır.
ALLAH sizden sevdiklerinizden ve sebep olanlardan razı olsun.
Hakkınızı helal ediniz lütfen.

Saygılarımla,
 
Üst