Otomatik veri süz, yazdır, sonrakini geç yazdır vs.

Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
Esenlikler, makro klaydet yöntemi ile elde ettiğim aşağıdaki kırmızı kodlarda ne gibi bir değişklik yapmalıyım ki, sıradan yazdırsın.
Yani pers1i seç, yazdır, sonra pers2 ye geç, ve sonuna kadadar devam et en son pers45 i yazdır.

Not: pers1,2,3 gibi isimler sıralı değil ali, ahmet,...., zahide gibidir.


Kod:
[FONT=Courier New]Sub Makro4()[/FONT]
[FONT=Courier New]' Makro4 Makro[/FONT]
[FONT=Courier New]'[/FONT]
[FONT=Courier New]'[/FONT]
[FONT=Courier New] ActiveSheet.Range("$A$4:$P$6640").AutoFilter Field:=7, Criteria1:="2008"[/FONT]
[FONT=Courier New] ActiveSheet.Range("$A$4:$P$6640").AutoFilter Field:=8, Criteria1:="Personel"[/FONT]
[FONT=Courier New] ActiveSheet.Range("$A$4:$P$6640").AutoFilter Field:=9, Criteria1:="Daimi"[/FONT]
[FONT=Courier New]'.....[/FONT]
[FONT=Courier New][COLOR=red][B] ActiveSheet.Range("$A$4:$P$6640").AutoFilter Field:=3, Criteria1:="Pers1"[/B][/COLOR][/FONT]
[B][FONT=Courier New][COLOR=red] ActiveWindow.SelectedSheets.PrintOut Copies:=1[/COLOR][/FONT][/B]
[B][FONT=Courier New][COLOR=red] ActiveSheet.Range("$A$4:$P$6640").AutoFilter Field:=3, Criteria1:="Pers2"[/COLOR][/FONT][/B]
[B][FONT=Courier New][COLOR=red] ActiveWindow.SelectedSheets.PrintOut Copies:=1[/COLOR][/FONT][/B]
[B][FONT=Courier New][COLOR=red]    .[/COLOR][/FONT][/B]
[FONT=Courier New][COLOR=red][B]    .[/B][/COLOR][/FONT]
[FONT=Courier New][COLOR=red][B]    .[/B][/COLOR][/FONT]
[COLOR=red][B][FONT=Courier New] ActiveSheet.Range("$A$4:$P$6640").AutoFilter Field:=3, Criteria1:="Pers45"[/FONT][/B][/COLOR]
[B][FONT=Courier New][COLOR=red] ActiveWindow.SelectedSheets.PrintOut Copies:=1[/COLOR][/FONT][/B]
 
 
 
[FONT=Courier New]End Sub[/FONT]
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,058
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Kriterler sıralı değilse aşağıdaki gibi bir dizi oluşturarak çözüm bulabilirsiniz.

Kod:
.
.
deger=array("ali","veli","selami","ahmet","zahide",...........)
for a=0 to ubound(deger)-1
[COLOR=black]ActiveSheet.Range("$A$4:$P$6640").AutoFilter Field:=3, Criteria1:=deger(a)
[FONT=Courier New] ActiveWindow.SelectedSheets.PrintOut Copies:=1[/FONT][/COLOR]
[COLOR=black][FONT=Courier New]next[/FONT][/COLOR]
[COLOR=black][FONT=Courier New].[/FONT][/COLOR]
[COLOR=black][FONT=Courier New].[/FONT][/COLOR]
[COLOR=black][FONT=Courier New]
[/FONT]

[/COLOR]
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
levent hocam alakanıza teşekkür ederim....

ActiveSheet.Range("$A$4:$P$6640").AutoFilter Field:=7, Criteria1:="2008"
ActiveSheet.Range("$A$4:$P$6640").AutoFilter Field:=8, Criteria1:="Personel"
ActiveSheet.Range("$A$4:$P$6640").AutoFilter Field:=9, Criteria1:="Daimi"

süzüldükten sonra ortaya çıkan banzersiz kayıtları diziye otomotik aldırmak mümkün değil mi?

eklyeceğim moduül masraf takip kitabında ve birden fazla yerde kullanılıyor.... (ortaklar, x özel, y özel vs.
soru şu 2008 yılı için (inputbox ile sorduracağım genel olması için) "Personel" Gider türünün "daimi" masmerindeki kişilerin isim listesini tesbit et ve yazdır....
 
Üst