H

Çözüldü İşlemi tersine çevirme ve aktarma

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

hakki83

Site Üyesi
Excel Versiyonu
Excel 2016
Excel Sürümü
64 Bit
Excel Dili
Türkçe
Mehaba değerli hocalarımız.


Üç dosyadaki raporlar aynı sonucu verir. Sadece görünümleri farklıdır.

“OLMASINI İSTEDİĞİM” diye adlandırdığım dosyalarda görüldüğü gibi, işlemi tersine çevirecek kodları oluşturabilir miyiz lütfen.

Küçük bir not: OLMASINI İSTEDİĞİM dosyalarda görüldüğü gibi Sami adlı kişinin bir ÖZELLİĞİ yoktur. Dökülecek sonuçlarda böyle Özelliksiz isimler, çıksa da olur, çıkmasa da olur. Hatta çıkmasa daha iyi olur.

Teşekkürler.
 

Ekli dosyalar

Çözüm
Rapor3 dosyasında da aşağıdaki kodu kullanın. Dosyaları inceleme imkanım olmadığı için kod yazma konusunda uğraştıracağını düşünmüştüm fakat çok fazla değişiklik yapmadan rapor1 dosyası kodunu revize ederek kullandım.
Rapor2 ile Rapor3 kodları arasındaki tek fark ise rapor2 dosyasında hücreye veri yazma işleminde ", " kullanıldı, rapor3 dosyasında vbNewLine kullanıldı.

VBA:
Görüntülemek için giriş yapmanız gerekmektedir.
(10 satır)
Hocam eğer size zahmet olmazsa hepsi, çünkü denemeler yapma, kıyaslamalar ve kağıda basma açısından iyi oluyor.

Fakat eğer sadece birini yapalım derseniz, üçüncüyü yapabiliriz. Diğerlerinin inceleme açısından görünüşü iyi ama kağıda sığma açısından 3 daha iyi.

Diğerleri ise inceleme, bilgileri başka yere taşıma açısından iyi.
 
Verilerin kontrolü için en uygunu örnek1 olarak gözüküyor. Aşağıdaki kodu örnek1 dosyasında bir deneyin.
VBA:
Görüntülemek için giriş yapmanız gerekmektedir.
(26 satır)
 
Hocam emeğinize sağlk.
Sadece içinde Sami ismi geçen satırı pasif yaptım. Zira o sadece bir örnekti. Karşılığında veri olmayan onlarca isim olabilir. Bunları manuel ya da sıralayıp silmek daha iyi olacaktır.

Eğer vaktiniz müsait olduğunda 2 ve 3’ü de yapabilirseniz, merakla beklerim.

Teşekkür ederim emekleriniz için.
 
Rapor3 dosyasında da aşağıdaki kodu kullanın. Dosyaları inceleme imkanım olmadığı için kod yazma konusunda uğraştıracağını düşünmüştüm fakat çok fazla değişiklik yapmadan rapor1 dosyası kodunu revize ederek kullandım.
Rapor2 ile Rapor3 kodları arasındaki tek fark ise rapor2 dosyasında hücreye veri yazma işleminde ", " kullanıldı, rapor3 dosyasında vbNewLine kullanıldı.

VBA:
Görüntülemek için giriş yapmanız gerekmektedir.
(26 satır)
 
Çözüm
Hocam aklımı okudunuz. Arz etsem mi, etmesem mi diye düşünüyordum. Çok iyi olur üçüne de. Hatta eğer sizi uğraştırmayacaksa, üçüne de (ilk örnektekiler gibi) gri borders çerçeve olsa, şahane olur.
 
Birde, sütunun silinmesi mi yoksa sütunun silinmeden veri olmayanları işlemsiz geçmesi mi daha uygun olur?
Hocam bu kısmı tam anlayamadım ama, süfunun silinmesi derken Sami örneğinde olduğu gibi boş satırları mı kast ediyorsunuz acaba?
Onlar ayıklanmış olursa daha iyi olur. Yani koddaki Delete komutu oluyor sanıyorum.
Ama kodlarımız bu haliyle bile hiç sorunsuz.

Aslında bu tip mesajlaşmada tam anlaşılamayan durumlarda bir fikrimi paylaşayım.

Örnek olarak, siz değerli hocalarımız, bazen, paylaştığı kod için şöyle bir tanım yapıyor;
Kodun şu satırındaki tek tırnağı kaldırınca şu sonucu verir, kaldırmayınca bu sonucu verir”


Ya da birden fazla tek tırnakla işaretlenmiş satırlar olabiliyor.

Kodda birinci satırdaki tırnağı kaldırınca şu sonucu verir, ikinci turnağı kaldırınca bu sonucu verir, üçüncüyü kaldırınca sonuç şöyle olur”

Gibi..

İşte böyle seçenekli paylaşılan kodlar çok iyi oluyor, aradaki farkı görüp, uygulayabiliyoruz.
Dolayısıyla bu şekilde çok rahat görüp anlayıp kıyaslama yapabilme durumu oluşuyor.
 
Dediğiniz tek tırnak olayı hepsinde olmuyor. Sizin bahsettiğiniz önceki konuda sadece koşullar değiştiği için üç koşulu tek kod içinde vermiştim.
Saim sütunu boşsa bu butonun tamamen silinmesi veya bu sütunun silinmeden işlem yapılması konusunda iki seçenek sunmuştum. Bunları tek tırnak ekleyerem iki seneçeneği de tek kodda vermek karışıklığa sebepp olur. Çünkü döngü kurarken , sütun silme işlemi olduğu için son sütundan başlayarak farklı koşullar ile işlem yapılıyor. Silmeden yapılanda ise döngü ikinici satırdan sona doğru döngü kurularak, sütun boş olması durumunda diğer sütuna geçilerek işlem devam ediyor.
 
Sizin önceki konularda da tüm işlemleri 'silmek' olarak tarif etmenizden kaynaklanan yanlış anlaşılmalar, benim anlattığımı tam olarak anlamamaya da sebep olmuş.

Bir sütunu silmek, sütunu tamamen ortadan kaldırıp, içindeki veriler ile birlikte sütunun silinmesi işlemi.
Bir sütundaki değerlerin silinmesi ise, sütunun yerinde kalarak sadece sütundaki değerlenin temizlenmesi işlemi.

Bunun yanında hücre biçimlendirmelerinin silinmesini isterken de ayrıca belirtirseniz yanlış anlaşılmanın önüne geçersiniz.

Önceki konulardaki gibi Clear/clearcontents/delete komutlarını kullanmadan yukarıdaki şekilde anlatım yapabilirsiniz.
 
Hocam biraz kafam karıştı.

Şu anki kodlarınızda; sadece Sami gibi karşılığında veri olmayan satırların otomatik silinmesi yeterlidir.
Ki yazıcıdan çıkınca düzgün ayıklanmış bir liste çıksın.

Bir de eğer sizi uğraştırmayacaksa, çıkan sonuçlar otomatik rgbSilver çerçeveli olursa, sanıyorum başka bir şeye gerek kalmayacak.
Çok teşekkürler emeğiniz için.
 
Tüm kodlarda buraya eklenecek yazdığım satırı kopyalayıp tüm dosyalarınızda kullanın. Ayrıca sonraki kodu da modül oluşturup içine yapıştırın.

'Call silme' komutunu yapıştıracağınız konum:
VBA:
Görüntülemek için giriş yapmanız gerekmektedir.
(12 satır)

Modül kodu:

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