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.
 

muratboz06

Destek Ekibi
Destek Ekibi
Katılım
23 Mart 2017
Mesajlar
552
Excel Vers. ve Dili
Office365 TR
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.

 
Katılım
4 Aralık 2019
Mesajlar
112
Excel Vers. ve Dili
Excel 2013 Türkçe
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.



Merhaba, çözümün başka yolu yok mudur?
 
Katılım
4 Aralık 2019
Mesajlar
112
Excel Vers. ve Dili
Excel 2013 Türkçe
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.

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.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,516
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Burada tarif ediliyor...


 
Katılım
4 Aralık 2019
Mesajlar
112
Excel Vers. ve Dili
Excel 2013 Türkçe
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.
 

Seyit Tiken

Uzman
Uzman
Katılım
23 Ağustos 2005
Mesajlar
4,651
Excel Vers. ve Dili
Excel : 2010
Görseldeki gibi makronuzu istediğiniz her Kitapta çalıştırabilirsiniz.
217496
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,302
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
@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.

.
 
Katılım
4 Aralık 2019
Mesajlar
112
Excel Vers. ve Dili
Excel 2013 Türkçe
@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.
 

Seyit Tiken

Uzman
Uzman
Katılım
23 Ağustos 2005
Mesajlar
4,651
Excel Vers. ve Dili
Excel : 2010
Bu kodunuzu
Kod:
Sheets("Total").Delete
Şu kodla değiştirip deneyiniz.
Kod:
ActiveSheet.Delete
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,302
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,302
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
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.

.
 
Katılım
4 Aralık 2019
Mesajlar
112
Excel Vers. ve Dili
Excel 2013 Türkçe
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?
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,302
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
activeworkbook.activesheet.cells.mergecells = ....

ya da;

activesheet.cells.mergecells = ....

falan gibi deneyin ....

.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,516
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Deneyiniz.

C++:
With ActiveWorkbook
   With. ActiveSheet
     . Cells.MergeCells = False
     . Cells.WrapText = False
   End With
End With
 
Katılım
4 Aralık 2019
Mesajlar
112
Excel Vers. ve Dili
Excel 2013 Türkçe
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.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,516
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Yazarken bir harf hatası olmuş. Düzelttim. Tekrar deneyiniz.
 
Üst