• DİKKAT

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

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

  • Konbuyu başlatan Konbuyu başlatan hsayar
  • Başlangıç tarihi Başlangıç tarihi
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]
 
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]
 
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....
 
Geri
Üst