Koşullu Yazdırma Makrosu hk.

Katılım
4 Ağustos 2016
Mesajlar
19
Excel Vers. ve Dili
excel 2013
türkçe
Altın Üyelik Bitiş Tarihi
29-01-2020
İyi günler,

Ürün nitelik ve özelliklerini girdiğim listeden veri alarak kart oluşturan bir excel dosyası var.

Bilgileri master sayfasından alıp kart sayfalarına atıyor. Oradan da çıktı alıp kart oluşturuyorum. İstediğim şey bir tuş ile yazdırma makrosu oluşturup kartları yazıcıdan çıkartmak ama durumda bir koşul var.

Master listede doldurulan ürün sayısı kadar kart yazdırsın boş olanları yazdırmasın istiyorum.

Örneğin : listede 2 ürün var ise 1 sayfa çıktı alacak. 7 ürün var ise 3 sayfa. Mümkün müdür ?
 

Ekli dosyalar

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
12,997
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Altın Üyelik Bitiş Tarihi
(18.03.2020) - Uzman olduğu için tarih geçersiz oldu.
Merhaba.

Aşağıdaki gibi bir yöntem olabilir.
P1 sayfası dışındaki P... sayfalarını silip, YAZDIR düğmesiyle aşağıdaki kod'u ilişkilendirmeniz yeterli olur.

Kodlarda, MASTER sayfasındaki sütun başlıklarıyla, P1 sayfasındaki satır başlıklarını eşleştirmeye çalıştım.
Soldaki adresler P1 sayfasının hücre adresleri (mavi renklendirdim), sağdakiler ise MASTER sayfasındaki sütun adlarıdır (kırmızı renklendirdim).
Diğer sütunlar da başka satırlara yazılacaksa her bir sütun için kod'a üç satır eklemek gerekiyor.

Sorun yaşarsanız, P1 sayfasındaki sadece ilk KART için, MASTER sayfasındaki hangi hücre yazılacaksa
=MASTER!G5 gibi formül yazarak kaydedin ve belgeyi tekrar yükleyin, bakayım.

Kod 3 satırlık bloklar halinde verileri P1 sayfasının ilgili hücrelerine aktarıp, çıktı alır ve sonraki 3 satırlık bloka geçer, boş satırlar yazdırılmaz.
Boş/dolu kararı MASTER sayfası B sütununa göre tespit ediliyor.

P1 sayfasındaki kaçıncı satıra, MASTER sayfasındaki hangi sütun gelecekse, kod'da ona göre değişiklik yaparsınız.
.
Kod:
[B]Sub KART_BASIM()[/B]
Set m = Sheets("MASTER"): Set P = Sheets("P1")
For sat = 5 To m.[B32].End(3).Row Step 3

    P.[[COLOR="Blue"]C13[/COLOR]] = m.Cells(sat, "[COLOR="red"]D[/COLOR]")
    P.[[COLOR="blue"]C15][/COLOR] = m.Cells(sat, "[COLOR="red"]B[/COLOR]")
    P.[[COLOR="blue"]C17[/COLOR]] = m.Cells(sat, "[COLOR="red"]C[/COLOR]")
    P.[[COLOR="blue"]C19[/COLOR]] = m.Cells(sat, "[COLOR="red"]E[/COLOR]")
    P.[[COLOR="blue"]C21[/COLOR]] = m.Cells(sat, "[COLOR="red"]I[/COLOR]")
    P.[[COLOR="blue"]C23[/COLOR]] = m.Cells(sat, "[COLOR="red"]G[/COLOR]")

    P.[[COLOR="blue"]H13[/COLOR]] = m.Cells(sat + 1, "[COLOR="red"]D[/COLOR]")
    P.[[COLOR="blue"]H15[/COLOR]] = m.Cells(sat + 1, "[COLOR="red"]B[/COLOR]")
    P.[[COLOR="blue"]H17[/COLOR]] = m.Cells(sat + 1, "[COLOR="red"]C[/COLOR]")
    P.[[COLOR="blue"]H19[/COLOR]] = m.Cells(sat + 1, "[COLOR="red"]E[/COLOR]")
    P.[[COLOR="blue"]H21[/COLOR]] = m.Cells(sat + 1, "[COLOR="red"]I[/COLOR]")
    P.[[COLOR="blue"]H23[/COLOR]] = m.Cells(sat + 1, "[COLOR="red"]G[/COLOR]")

    P.[[COLOR="blue"]M13[/COLOR]] = m.Cells(sat + 2, "[COLOR="red"]D[/COLOR]")
    P.[[COLOR="blue"]M15[/COLOR]] = m.Cells(sat + 2, "[COLOR="red"]B[/COLOR]")
    P.[[COLOR="blue"]M17[/COLOR]] = m.Cells(sat + 2, "[COLOR="red"]C[/COLOR]")
    P.[[COLOR="blue"]M19[/COLOR]] = m.Cells(sat + 2, "[COLOR="red"]E[/COLOR]")
    P.[[COLOR="blue"]M21[/COLOR]] = m.Cells(sat + 2, "[COLOR="red"]I[/COLOR]")
    P.[[COLOR="blue"]M23[/COLOR]] = m.Cells(sat + 2, "[COLOR="Red"]G[/COLOR]")

P.PrintOut Copies:=1
Next
[B]End Sub[/B]
 
Üst