Bir dizi aynı makroyu nasıl kısaltabiliriz.?

Katılım
17 Ağustos 2004
Mesajlar
73
Excel Vers. ve Dili
Excel 2007 Türkçe
Elimde bir dizi makro var, makrolarda sadece sayfa adları farklı onun dışındaki kodlar hep aynı. Ben bu makroları nasıl kısaltabilirim veya aynı kodları tekrer yazmak yerine tekrar kullanmasını sağlayabilirim.? Çünkü sayfalar zamanla çoğalacak ancak makro işlevleri hep aynı kalacak. Şimdiden yardımlarınız için teşekkür ederim.

Sub Kasa()
ActiveSheet.Unprotect
ActiveSheet.Range("$A$2:$I$65").AutoFilter Field:=3, Criteria1:="KASA"
Range("A1:I1000").Select
Selection.Copy
Sheets("KASA").Select
Range("A1").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Sheets("ANA SAYFA").Select
ActiveSheet.Protect AllowFiltering:=True
Sheets("KASA").Select
ActiveWindow.SelectedSheets.PrintPreview
End Sub
Sub Basyigit()
ActiveSheet.Unprotect
ActiveSheet.Range("$A$2:$I$65").AutoFilter Field:=3, Criteria1:="BAŞYİĞİT"
Range("A1:I1000").Select
Selection.Copy
Sheets("BAŞYİĞİT").Select
Range("A1").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Sheets("ANA SAYFA").Select
ActiveSheet.Protect AllowFiltering:=True
Sheets("BAŞYİĞİT").Select
ActiveWindow.SelectedSheets.PrintPreview
End Sub
Sub Banka()
ActiveSheet.Unprotect
ActiveSheet.Range("$A$2:$I$65").AutoFilter Field:=3, Criteria1:="BANKA"
Range("A1:I1000").Select
Selection.Copy
Sheets("BANKA").Select
Range("A1").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Sheets("ANA SAYFA").Select
ActiveSheet.Protect AllowFiltering:=True
Sheets("BANKA").Select
ActiveWindow.SelectedSheets.PrintPreview
End Sub
Sub Aksa()
ActiveSheet.Unprotect
ActiveSheet.Range("$A$2:$I$65").AutoFilter Field:=3, Criteria1:="AKSA"
Range("A1:I1000").Select
Selection.Copy
Sheets("AKSA").Select
Range("A1").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Sheets("ANA SAYFA").Select
ActiveSheet.Protect AllowFiltering:=True
Sheets("AKSA").Select
ActiveWindow.SelectedSheets.PrintPreview
End Sub
Sub Elektrik()
ActiveSheet.Unprotect
ActiveSheet.Range("$A$2:$I$65").AutoFilter Field:=3, Criteria1:="ELEKTRİK"
Range("A1:I1000").Select
Selection.Copy
Sheets("ELEKTRİK").Select
Range("A1").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Sheets("ANA SAYFA").Select
ActiveSheet.Protect AllowFiltering:=True
Sheets("ELEKTRİK").Select
ActiveWindow.SelectedSheets.PrintPreview
End Sub
Sub Su()
ActiveSheet.Unprotect
ActiveSheet.Range("$A$2:$I$65").AutoFilter Field:=3, Criteria1:="SU"
Range("A1:I1000").Select
Selection.Copy
Sheets("SU").Select
Range("A1").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Sheets("ANA SAYFA").Select
ActiveSheet.Protect AllowFiltering:=True
Sheets("SU").Select
ActiveWindow.SelectedSheets.PrintPreview
End Sub
Sub Doğalgaz()
ActiveSheet.Unprotect
ActiveSheet.Range("$A$2:$I$65").AutoFilter Field:=3, Criteria1:="DOĞALGAZ"
Range("A1:I1000").Select
Selection.Copy
Sheets("DOĞALGAZ").Select
Range("A1").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Sheets("ANA SAYFA").Select
ActiveSheet.Protect AllowFiltering:=True
Sheets("DOĞALGAZ").Select
ActiveWindow.SelectedSheets.PrintPreview
End Sub
Sub TTnet()
ActiveSheet.Unprotect
ActiveSheet.Range("$A$2:$I$65").AutoFilter Field:=3, Criteria1:="TTNET"
Range("A1:I1000").Select
Selection.Copy
Sheets("TTNET").Select
Range("A1").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Sheets("ANA SAYFA").Select
ActiveSheet.Protect AllowFiltering:=True
Sheets("TTNET").Select
ActiveWindow.SelectedSheets.PrintPreview
End Sub
Sub Kontör()
ActiveSheet.Unprotect
ActiveSheet.Range("$A$2:$I$65").AutoFilter Field:=3, Criteria1:="KONTÖR"
Range("A1:I1000").Select
Selection.Copy
Sheets("KONTÖR").Select
Range("A1").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Sheets("ANA SAYFA").Select
ActiveSheet.Protect AllowFiltering:=True
Sheets("KONTÖR").Select
ActiveWindow.SelectedSheets.PrintPreview
End Sub
 
Katılım
3 Mart 2007
Mesajlar
82
Excel Vers. ve Dili
excel 2007
Yeni bir sayfada kasa, başyiğit, banka vb seçeneklerinizi yazın ve bu sayfadaki bilgileri bir değişkene alın (mesela sht="KASA") ki bu değişken ile hangi başlığa ait çalışma TEK bir macro ile çalışsın:
Sub TEK_MACRO ' TTnet()
ActiveSheet.Unprotect
ActiveSheet.Range("$A$2:$I$65").AutoFilter Field:=3, Criteria1:= sht 'eskiden "TTNET"
Range("A1:I1000").Select
Selection.Copy
Sheets(sht).Select
' Sheets("TTNET").Select
Range("A1").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Sheets("ANA SAYFA").Select
ActiveSheet.Protect AllowFiltering:=True
Sheets(sht).Select
' eskisi Sheets("TTNET").Select
ActiveWindow.SelectedSheets.PrintPreview
End Sub
 
Katılım
29 Ağustos 2007
Mesajlar
32
Excel Vers. ve Dili
2003
2007
İyi çalışmalar,
Nsertoglunun yazdığı kodda ufak bir düzeltme yaptım. Makronun değişken alması için sht parametresi makronun başında tanımlandı..

Sub TEK_MACRO(sht)
ActiveSheet.Unprotect
ActiveSheet.Range("$A$2:$I$65").AutoFilter Field:=3, Criteria1:= sht 'eskiden "TTNET"
Range("A1:I1000").Select
Selection.Copy
Sheets(sht).Select
' Sheets("TTNET").Select
Range("A1").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Sheets("ANA SAYFA").Select
ActiveSheet.Protect AllowFiltering:=True
Sheets(sht).Select
' eskisi Sheets("TTNET").Select
ActiveWindow.SelectedSheets.PrintPreview
End Sub
 
Üst