• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Makroyu her çalışma kitabında çalıştırma

Katılım
4 Aralık 2019
Mesajlar
112
Excel Vers. ve Dili
Excel 2013 Türkçe
Merhaba, bir çalışmam var ve bu çalışmayı her hafta farklı verilerin olduğu bir excelde kullanacağım. Kodlar hazır ancak şöyle bir problem yaşıyorum. Ben makroyu ayrı bir excel olarak tutup, çalışacağım dosyada çalıştır dediğimde satır-sütun silme gibi işlemleri yapmıyor. Satır - Sütun silme işlemlerinin olduğu kodlarda çalışılan excel dosyasını belirten bir şey mi eklemeliyim sizce? Kodlar aşağıdaki gibi.
Kod:
 Cells.MergeCells = False
Cells.WrapText = False
    Rows(7).EntireRow.Delete
    Rows("1:5").EntireRow.Delete
     Columns("T:T").Delete
Columns("R:R").Delete
  Columns("P:P").Delete
   
     Columns("K:N").Delete

   
Application.DisplayAlerts = False
Sheets("Total").Delete
Application.DisplayAlerts = True

Teşekkür ederim şimdiden yardımlarınız için.
 
Ekte yer alan dosyayı C:\Users\KULLANICIADI\AppData\Roaming\Microsoft\AddIns klasörü içine kopyalayınız.


VBA editörden kodları görebilir, makro ismini değiştirebilirsiniz. Değişiklikleri VBA da yer alan kaydet tuşuyla kaydetmeyi unutmayın.
Ekran görüntüsünde belirtilen işlemleri yapınız. Artık her excel dosyası açıldığında Deneme makrosunu kullanabilecekseniz. Kullanmak istemediğiniz zaman ekran görüntüsündeki onay kutucuğunu kapatırsınız.

qe41U5.png
 
M
Ekte yer alan dosyayı C:\Users\KULLANICIADI\AppData\Roaming\Microsoft\AddIns klasörü içine kopyalayınız.


VBA editörden kodları görebilir, makro ismini değiştirebilirsiniz. Değişiklikleri VBA da yer alan kaydet tuşuyla kaydetmeyi unutmayın.
Ekran görüntüsünde belirtilen işlemleri yapınız. Artık her excel dosyası açıldığında Deneme makrosunu kullanabilecekseniz. Kullanmak istemediğiniz zaman ekran görüntüsündeki onay kutucuğunu kapatırsınız.

qe41U5.png



Merhaba, çözümün başka yolu yok mudur?
 
Ekte yer alan dosyayı C:\Users\KULLANICIADI\AppData\Roaming\Microsoft\AddIns klasörü içine kopyalayınız.


VBA editörden kodları görebilir, makro ismini değiştirebilirsiniz. Değişiklikleri VBA da yer alan kaydet tuşuyla kaydetmeyi unutmayın.
Ekran görüntüsünde belirtilen işlemleri yapınız. Artık her excel dosyası açıldığında Deneme makrosunu kullanabilecekseniz. Kullanmak istemediğiniz zaman ekran görüntüsündeki onay kutucuğunu kapatırsınız.

qe41U5.png
Ben oluşturduğum makroya kısayol vs. eklemek istiyorum ancak sizin yaptığınız şekilde yaptığımda makronun çalışması için VBA ya girip ordan çalıştır demem gerekiyor sanırım. Bu da çok pratik olmuyor malesef.
 
Burada tarif ediliyor...


 
Burada tarif ediliyor...



Korhan Bey, göndermiş olduğunuz sayfalardaki bilgilere hakimim. Benim sorunum makromun belli bir kısmının farklı sayfalarda çalışmıyor oluşudur.
 
Görseldeki gibi makronuzu istediğiniz her Kitapta çalıştırabilirsiniz.
217496
 
@SKBR , işler karışmış burada biraz ....

Burada önemli olan sizin neyi, nasıl yaptığınızdır..... Yani, siz ilk önce bu kodların olduğu dosyayı açıp sonra diğer dosyayı mı açıyorsunuz ?

Yazdığınız kod, o anda hangi dosya aktifse onun üzerinde çalışır...... Kodun olduğu dosyadan farklı bir bir dosyada çalışmasını istiyorsanız, en sağlıklısı o dosyaya "Set" ile bir atama yapıp ona göre bir düzenlemeyle kullanacaksınız.

.
 
@SKBR , işler karışmış burada biraz ....

Burada önemli olan sizin neyi, nasıl yaptığınızdır..... Yani, siz ilk önce bu kodların olduğu dosyayı açıp sonra diğer dosyayı mı açıyorsunuz ?

Yazdığınız kod, o anda hangi dosya aktifse onun üzerinde çalışır...... Kodun olduğu dosyadan farklı bir bir dosyada çalışmasını istiyorsanız, en sağlıklısı o dosyaya "Set" ile bir atama yapıp ona göre bir düzenlemeyle kullanacaksınız.

.
Evet malesef biraz karıştı, kafam da bir o kadar karıştı. Ben bir vba ile proje oluşturdum. Her hafta elime geçen bir raporu düzenleyecek bir yapı. Örnek bir haftanın verisinin olduğu çalışma kitabında kodu çalıştırdığımda hiç bir problem yaşamıyorum. Ancak bu kullanacağım yapı her hafta yenilenecek rapor üzerinde çalışacağı için benim bu makroyu her hafta çalılyırmam gerekecek. Ben kullandığım bütün vba kodları ile yeni bir Excel çalışma kitabında bütün çalışma kitaplarını etkileyecek şekilde makro kaydı yaptım. Kısa yolumu oluşturdum. Sonra sanki haftalık raporu açıyormuşum gibi kısayolu kullanarak çalışmasını istedim. Kodlardan bir kısmı çalışıyor. Çalışmayan kısım konunun başında verdiğim kısım. Bu kısım çalışmayınca otomatik olarak diğer çalışan kısmı da etkiliyor ve yanlış sonuçlar getiriyor.
 
Bu kodunuzu
Kod:
Sheets("Total").Delete
Şu kodla değiştirip deneyiniz.
Kod:
ActiveSheet.Delete
 
Mesela; aşağıdaki satır o anda aktif olan dosyadaki "Total" simli sayfayı siler....

Kod:
ActiveWorkbook.Sheets("Total").Delete


Yani, sonradan açtığınız dosya o anda aktif dosya ise; o dosyadaki "Total" sayfasını siler.

.
 
Mesela; aşağıdaki satır o anda aktif olan dosyadaki "Total" simli sayfayı siler....

Kod:
ActiveWorkbook.Sheets("Total").Delete


Yani, sonradan açtığınız dosya o anda aktif dosya ise; o dosyadaki "Total" sayfasını siler.

.

Cells.MergeCells = False
Cells.WrapText = False
Rows(7).EntireRow.Delete
Rows("1:5").EntireRow.Delete
Columns("T:T").Delete
Columns("R:R").Delete
Columns("P:P").Delete

Columns("K:N").Delete
Peki bu kodlarım için ne önerirsiniz?
 
activeworkbook.activesheet.cells.mergecells = ....

ya da;

activesheet.cells.mergecells = ....

falan gibi deneyin ....

.
 
Deneyiniz.

C++:
With ActiveWorkbook
   With. ActiveSheet
     . Cells.MergeCells = False
     . Cells.WrapText = False
   End With
End With
 
Korhan Bey, Haluk Bey yardımlarınız için teşekkür ederim.
Korhan Bey söylediğiniz şekilde çalıştırdım ancak sonuca ulaşamadım.
Haluk Bey vermiş olduğunuz örnek üzerinden gittim. Aşağıdaki gibi kodu oluşturunca sorun çözüldü.
Kod:
    ActiveWorkbook.ActiveSheet.Cells.MergeCells = False
    ActiveWorkbook.ActiveSheet.Cells.WrapText = False
    ActiveWorkbook.ActiveSheet.Rows(7).EntireRow.Delete
    ActiveWorkbook.ActiveSheet.Rows("1:5").EntireRow.Delete
    ActiveWorkbook.ActiveSheet.Columns("T:T").Delete
    ActiveWorkbook.ActiveSheet.Columns("R:R").Delete
    ActiveWorkbook.ActiveSheet.Columns("P:P").Delete
    ActiveWorkbook.ActiveSheet.Columns("K:N").Delete
Application.DisplayAlerts = False
ActiveWorkbook.Sheets("T").Delete
Application.DisplayAlerts = True


Tekrar çok teşekkürler.
 
Yazarken bir harf hatası olmuş. Düzelttim. Tekrar deneyiniz.
 
Geri
Üst