Birden çok çalışma sayfasında işlevleri gerçekleştiren tek bir makroyu çalıştırmaya çalışıyorum. Diyelim ki ben o adım adım gerçekleştirmek istediğiniz işlevleri listeledik çalışma 4. makro düğmesini atamış diyelim:)VBA Makro
1 çalışma 4'te belirli hücreleri seçin ve çalışma sayfasındaki komşu hücrelere kopyalamak 4.
2 3) çalışma sayfasındaki hücrelerin aralığını silme 3 0- 3) Çalışma sayfasındaki hücrelerin CUT aralığını 2 sonra çalışma sayfası 3'e yapıştırın.
4) Ayrı bir çalışma kitabından hücrelerin aralığını alın ve çalışma sayfası 2'ye kopyalayın. Çalışma kitabının otomatik olarak yayınlanmasından dolayı bu tamamen farklı bir sorun olduğunu ve ikisini bağlamanın bir yolunu bulmam gerektiğini biliyorum.)
5) Çalışma Sayfası 4 ve Çalışma Sayfası 3'te bulunan pivot tablolarını güncelleyin.
Bunun ilk 3 işlevi hakkında yardım isterim. Mevcut kodumu aşağıya yapıştırdım.
Sub START()
Dim sh1 As Worksheet
Dim sh2 As Worksheet
Dim sh3 As Worksheet
Dim sh4 As Worksheet
Set sh1 = ActiveWorkbook.Sheets("Brand")
Set sh2 = ActiveWorkbook.Sheets("CurrentWeek")
Set sh3 = ActiveWorkbook.Sheets("PriorWeek")
Set sh4 = ActiveWorkbook.Sheets("Pivot")
sh4.Range("B29:B30").Select
Selection.Copy
sh4.Range("C29").Select
ActiveSheet.Paste
sh3.Range("A4:AC1000").Select
Selection.Delete
sh2.Range("A4:AC1000").Select
Selection.Copy
sh3.Range("A4").Select
ActiveSheet.Paste
End Sub
Çalışıyor ... ancak yalnızca belirli bir işlevi gerçekleştirmek için doğru çalışma sayfasında olduğumda çalışıyor.
'sh1', sh2' gibi okunamayan değişken adlar yerine, onlara neden" shtBrand "gibi yararlı ve şeffaf bir şey demezler? shtCurrentWeek' vb İş yerindeki bir adam bu 'sh1' sh2' işinin aynısını yapar ve kodlarını okumaya çalıştığımızda herkesin çıldırmasına neden olur. –
@ Jean-FrançoisCorbett Evet, aslında bu iyi bir fikir. Bunu ilk başta yapmadığım gerekçesi benim işimde, kimsenin nasıl kodlanacağını bilmemesi. Otomatikleştirmeye çalıştığım bu görev, yaklaşık 2-3 yıl boyunca manuel olarak yapıldı. Bu saçma, ama bu harika bir fikir! Teşekkür ederim. – kmiao91