Çözüldü CheckBox ile Personeli Pasifleştirme

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

sedat2161

Normal Üye
Excel Versiyonu
Excel 2016
Excel Sürümü
64 Bit
Excel Dili
Türkçe
Sayın hocalarım şu an üzerinde çalıştığım dosyam sayenizde bitmek üzere .
Bu konumda personelin Asker, geçici görev , ücretsiz izin vb. gibi durumlarda pasif duruma geçim o personel ile ilgili herhangi bir işlem yapılmaması inşallah anlatabilmişimdir.
 

Ekli dosyalar

Çözüm
-- Mükerrer yazdırma:
H sütununda sayı GİBİ GÖRÜNEN METİNsel değer vardır. Her neyse; kodda, kırmızı satırların arasına yeşil olanı ekleyince hallolur.
VBA:
İçeriği görüntülemek için giriş yapmalısınız
(3 satır)
-- P olanlar dışındakilere X yazdırma:
CheckBox_Click kodundaki For ..... Next arasındaki satırı şöyle değiştirin.
VBA:
İçeriği görüntülemek için giriş yapmalısınız
(1 satır)
İşte bu tür isteklerin, belgedeki kodlamaların ilk aşamasında belirtilmesi gerekir.

AKTİF/PASİF gibi değil de satırda uygun bir sütuna bir işaret/harf bir şey yazılması ve
diğer işlem kontrollerinin de önce bu alanda yapılması, kontrolden geçilmediğinde de işlemin yapılmaması gibi bir yöntem olmalıydı.

Ya da PASİF personel için, benzer yapıda yeni bir sayfa oluşturup;
-- pasifleştirme işlemini, personel bilgilerini asıl sayfadan pasif sayfasına taşıma,
-- aktifleştirme işlemini, personel bilgilerini pasif sayfasından asıl sayfaya taşıma,
gibi düşünmeliydiniz.

Belirttiğim gibi; her hâlükârda tüm kodların elden geçirilmesi gerekir gibi görünüyor.
 
İşte bu tür isteklerin, belgedeki kodlamaların ilk aşamasında belirtilmesi gerekir.

AKTİF/PASİF gibi değil de satırda uygun bir sütuna bir işaret/harf bir şey yazılması ve
diğer işlem kontrollerinin de önce bu alanda yapılması, kontrolden geçilmediğinde de işlemin yapılmaması gibi bir yöntem olmalıydı.

Ya da PASİF personel için, benzer yapıda yeni bir sayfa oluşturup;
-- pasifleştirme işlemini, personel bilgilerini asıl sayfadan pasif sayfasına taşıma,
-- aktifleştirme işlemini, personel bilgilerini pasif sayfasından asıl sayfaya taşıma,
gibi düşünmeliydiniz.

Belirttiğim gibi; her hâlükârda tüm kodların elden geçirilmesi gerekir gibi görünüyor.
Hocam hayırlı sabahlar.
Benim pasif personel yapmamın amacımı yine açıklayayım.
---FİŞ TESLİM sayfasında bulunan personellerin J sütununa eklediğim pasif hücrelerine userform üzerindeki CheckBox2 ile onay işareti koyulanların;
1-Puantaj sayfasına aktarılmaması
2-Fiş teslim yazdır butonu ile birimlere göre yazdırdığımda yazdırılmaması.
 

Ekli dosyalar

Fiş Teslim sayfasında J sütununda herhangi bir veri göremedim. Sadece J1 hücresinde tarih var.
Soruyu yanlış anlamadıysam şu şekilde olabilir;
J sütununda değer olan satırlar gizlenir ve yazdırma işlemi gerçekleşir. Yazdırma işlemi bittikten sonra gizlenen satır tekrar gösterilir.
 
Fiş Teslim sayfasında J sütununda herhangi bir veri göremedim. Sadece J1 hücresinde tarih var.
Soruyu yanlış anlamadıysam şu şekilde olabilir;
J sütununda değer olan satırlar gizlenir ve yazdırma işlemi gerçekleşir. Yazdırma işlemi bittikten sonra gizlenen satır tekrar gösterilir.
Hayırlı sabahlar okutkan hocam.
Haklısınız yanlış dosyayı paylaşmışım.
------FİŞ TESLİM sayfasında bulunan personellerin J sütununa CheckBox2 (veya diğer bir araç ile) ile onay işareti verildikten sonra.
------User form üzerinde bulunan FİŞ TESLİM YAZDIR Butonunda bulunan yazdır kodunda değişiklik yapılarak onay işareti bulunan personel yazdırılmayacak.
 

Ekli dosyalar

@sedat2161
Sanırım anladım.
Sadece J sütunu BOŞ olanların yazdırılmasını sağlamak için For ...... Next arasını şöyle değiştirin.

VBA:
İçeriği görüntülemek için giriş yapmalısınız
(6 satır)
 
J sütunu demişim ama G sütununa yönelik ilave yapmışım. ;)
Kodu J sütununa göre düzenledim, sayfayı yenileyerek kodun son halini tekrar deneyin.
Hocam kodu denedim tam onay işareti olan personeller gelmedi.
Hocam userform üzerinden CheckBox2 tıkladığımda seçilen personelin işaretlenmesi için ne yapabiliriz. Lisview1 deki çift tıkla X işaretinin gelemesi gibi.
 
Verdiğim cevaptaki çalışma sistemi şöyle (istek bu diye anlamıştım) ;
-- H sütunundaki BİRİM bilgileri benzersiz olarak BA sütununa yazdırılır,
-- BA sütununa yazdırılan BİRİM bilgileri için tek tek döngü kurulur ve H sütunu (sütun no 8) filtrelenir,
-- J sütununu BOŞ olanlar diye filtrelenir.
Filtre (ler) sonucunda KALAN veri satırı varsa yazıcıya gönderilir (burada bir sorun görmüyorum) .

Kodlama tekniği bakımından düzeltilmesinde yarar olan tek şey;
.Range("$A$4:$J$" & sonA).AutoFilter Field:=10, Criteria1:="="
satırını sonBA = .... satırıyla For ba = 2 To sonBA satırının arasına taşımak olabilir.

CheckBox ile PASİF işareti koymakla ilgili sorun şu;
durum çift tıklamayla X yazdırmak gibi değil, çünkü X yazdırırken Listview'de bir satır seçili hale gelmiş oluyor,
dolayısıyla X yazılacak veri satırı SEÇİLİ OLAN diye bulunabiliyor.
Oysa CheckBox'a tıklama ile PASİF işareti koyulacağında, "hangi satıra sorusunun" cevabı açıkta kalıyor.
Diyelim bu durum halledildi, yani listeden seçim yapıldı ve CheckBox tıklandı.
İyi de işaretin koyulup koyulmadığını userformdaki Listview üzerinde göremeyeceksiniz.
Çünkü o sütun Listview listesine dahil değil. Yani X koymakla durum aynı değil.

İşte bu nedenle, daha evvel yazdığım cevaplardan birinde tüm kodların elden geçirilmesinin gerekebileceğini belirtmiştim.
 
Verdiğim cevaptaki çalışma sistemi şöyle (istek bu diye anlamıştım) ;
-- H sütunundaki BİRİM bilgileri benzersiz olarak BA sütununa yazdırılır,
-- BA sütununa yazdırılan BİRİM bilgileri için tek tek döngü kurulur ve H sütunu (sütun no 8) filtrelenir,
-- J sütununu BOŞ olanlar diye filtrelenir.
Filtre (ler) sonucunda KALAN veri satırı varsa yazıcıya gönderilir (burada bir sorun görmüyorum) .

Kodlama tekniği bakımından düzeltilmesinde yarar olan tek şey;
.Range("$A$4:$J$" & sonA).AutoFilter Field:=10, Criteria1:="="
satırını sonBA = .... satırıyla For ba = 2 To sonBA satırının arasına taşımak olabilir.

CheckBox ile PASİF işareti koymakla ilgili sorun şu;
durum çift tıklamayla X yazdırmak gibi değil, çünkü X yazdırırken Listview'de bir satır seçili hale gelmiş oluyor,
dolayısıyla X yazılacak veri satırı SEÇİLİ OLAN diye bulunabiliyor.
Oysa CheckBox'a tıklama ile PASİF işareti koyulacağında, "hangi satıra sorusunun" cevabı açıkta kalıyor.
Diyelim bu durum halledildi, yani listeden seçim yapıldı ve CheckBox tıklandı.
İyi de işaretin koyulup koyulmadığını userformdaki Listview üzerinde göremeyeceksiniz.
Çünkü o sütun Listview listesine dahil değil. Yani X koymakla durum aynı değil.

İşte bu nedenle, daha evvel yazdığım cevaplardan birinde tüm kodların elden geçirilmesinin gerekebileceğini belirtmiştim.
Hocam ben listview listesine dahil edebilirim. Hocam bunu hal etmeye çalışayım ondan sonra yine dosyayı paylaşırım. sonra duruma bakarız.
 
Moderatörün son düzenlenenleri:
Sayın hocalarım dosyam için sizin desteklerinizle çok zahmet çekerek bu hale beraber getirdik ve şimdi sona yaklaştık. Ömer BARAN hocamızın 11 nolu mesajındaki hususları yerine getirmem için gerekli bilgim yok. Sadece listview de başlığın görünmesini sağlayabildim. Diğer düzeltmeleri yapmaya çalıştım hep hata uyarılarıyla karşılaştım. Lütfen Ömer BARAN hocamızın 11 nolu mesajına bakıp diğer düzeltmeler için yardım edin ki Ömer BARAN hocamız sorunu çözsün.
 

Ekli dosyalar

@sedat2161
İlk kurguda seçenekleri P ve BOŞ diye düşünmüştük, şimdi ise P ve A kullanılıyor durumda.
Belgedeki kodu güncelledim, bu belge üzerinde denersiniz.

11.07.2022 13:51 Sonradan eklenen not
Eklediğim belge, tüm sorunların giderildiği, tüm isteklerin karşılandığı nihai çözüm belgesiyle değiştirildi.
 

Ekli dosyalar

@sedat2161
İlk kurguda seçenekleri P ve BOŞ diye düşünmüştük, şimdi ise P ve A kullanılıyor durumda.
Belgedeki kodu güncelledim, bu belge üzerinde denersiniz.
Hocam iyi günler . Hocam Aktif ve Pasif çok güzel çalışıyor. P olanlar yazdırılmıyor. Emeğinize ve bilginize sağlık.
Hocam denemelerim sonucunda 2 sorun fark ettim.
1-FİŞ TESLİM YAZDIR butonuna tıkladığımda ilk sayfayı 2 defa yazıyor.
2-CheckBox1 ile X leri toplu aktarırken P olanlara X lerin gelmemesi mümkün mü acaba.
 
-- Mükerrer yazdırma:
H sütununda sayı GİBİ GÖRÜNEN METİNsel değer vardır. Her neyse; kodda, kırmızı satırların arasına yeşil olanı ekleyince hallolur.
VBA:
İçeriği görüntülemek için giriş yapmalısınız
(3 satır)
-- P olanlar dışındakilere X yazdırma:
CheckBox_Click kodundaki For ..... Next arasındaki satırı şöyle değiştirin.
VBA:
İçeriği görüntülemek için giriş yapmalısınız
(1 satır)
 
Çözüm
-- Mükerrer yazdırma:
H sütununda sayı GİBİ GÖRÜNEN METİNsel değer vardır. Her neyse; kodda, kırmızı satırların arasına yeşil olanı ekleyince hallolur.
VBA:
İçeriği görüntülemek için giriş yapmalısınız
(3 satır)
-- P olanlar dışındakilere X yazdırma:
CheckBox_Click kodundaki For ..... Next arasındaki satırı şöyle değiştirin.
VBA:
İçeriği görüntülemek için giriş yapmalısınız
(1 satır)
Hocam kodları uyguıladım hepsi tam çalıştı emeğinize bilgilinize sağlık.
 
Merhaba sayın hocalarım. Yaklaşık 10 gündür üzerinde çalıştığım dosyam sayın Ömer BARAN, okutkan ve halily hocamın büyük destekleriyle çözüme kavuşmuştur. . Emeklerinden ve ayırdıkları değerli zamanlarından dolayı Tüm hocalarıma ayrı ayrı teşekkür ederim. İyi ki varsınız .
Konu çözülmüştür.
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Konuyu başlatan
Normal Üye
Katılım
Konu Bilgi
Durum
Çözüldü 
Forum
Excel Makro Soruları
Başlangıç tarihi
Son yanıt tarihi
Cevaplar
20
Üst