slm başka bir programdan excele veri transferi yapıyorum ama satır araları ve sutunlar cok aralıklı oluyor. excelde başluk olan satır ve sutunları kaldır v.b. bir fonksiyon veya benzer amaçlı yazılmış makro komutları hakkında bilgisi olan arkadaşlar yardım edebilir mi? istediğim aradaki boş sutun ve satırları kaldırmak.
Dışardan veri alıyorsan büyük ihtimalle o satırlar boş olmasına rağmen excel tarafından dolu olarak alıgılanacaktır.(İlk satırı seçip ctrl+shift+aşağı ok yap. Eğer seçim ilk boş satırda sonlanmayıp tümünü seçiyorsa boşlarıda dolu olarak algılıyordur.) Eğer böyle ise sana tavsiyem sıralama yapıp boş satırları silmen. Eğer ilk sıralama ile aynı olsun istiyorsan boş bir sütünu 1 den başlayıp veri olan satırın sonuna kadar numaralandır. Boş satırları sildikten sonra numaraları yazdığın sütüna göre sıralatırsın. Sütunlar için böyle pratik bir yöntem bilmiyorum. Onları elle düzeltmek zorundasın
Eğer satırlar gerçekten boş ise
Alt+F11 yapıp VBA Editötürünü aç. Oradan ekleyi seçip modul ekle. ve aşağıdaki makroları buraya kopyala.
Makroları çalıştırmadan önce satırlar için verilerin en altına sutunlar için ens ondaki boş sütunun ilk hücresine Bitti yazarsan makroyu kısır döngüye sokmamış olursun. Kolay gelsin.. (Bu işi hiç bilmeyenlerin anlayacağı gibi yazdım ki bilmeyen arkadaşlarda yararlansın...) Dim x Sub satsil() x = ActiveCell.Value ' Aktif Hücrenin Değerini x değişkenine ata If x = "Bitti" Then End ' x'in değeri Bitti ise makroyu sonlandır If x = "" Then ' x'in değeri boş ise Selection.EntireRow.Delete ' satırı sil GoTo atla: ' bir alttaki hücreyi seçmeden atla bölümüne git End If ' if'i sonlandır. ActiveCell.Offset(1, 0).Select ' Bir alttaki hücreyi seç atla: satsil ' makroyu yeniden başlat' End Sub
Sub sutsil() x = ActiveCell.Value ' Aktif Hücrenin Değerini x değişkenine ata If x = "Bitti" Then End ' x'in değeri Bitti ise makroyu sonlandır If x = "" Then ' x'in değeri boş ise Selection.EntireColumn.Delete ' sütunu sil GoTo atla: ' bir sonraki sütunu seçmeden atla bölümüne git End If ' if'i sonlandır. ActiveCell.Offset(0, 1).Select ' bir sonraki sütunu seç atla: sutsil ' makroyu yeniden başlat' End Sub
slm,
verdiğin bilgiler için çok tsk. Excel de makro kullanımı benim tablolama çalışmalarımda bayagı işime yarar gibi gözüküyor, Bu konuda kendimi geliştirebileceğim bir site biliyormusun?
Benim bildiğim İnternette çok kapsamlı bir Türkçe site yok www.classmodule.com 'daki forum'a üye olursan. Takıldığın konularda oradan yardım alabilirsin. Ayrıca orada kitap satıyorlar pahalı gelmezse o kitap işne fazlasıyla yarayacaktır. (http://www.excel.gen.tr/siparis/siparis.htm )