Soru Dinamik olarak form yazdırma makrosu hakkında yardım.

Katılım
20 Şubat 2018
Mesajlar
22
Excel Vers. ve Dili
2013 TÜRKÇE
Altın Üyelik Bitiş Tarihi
05-09-2022
Merhabalar , ekte bulunan dosyada "GİRİŞ" sayfasında ki "Q" sütununda sadece "Yazıcı" (Bu alan tarih ile bağlantılı dinamiktir.) yazan hücrelerin bulunduğu satırlardaki "Yeşil renkli" hücrelerin
"FORM" adlı sayfadaki şablona yine "Yeşil renkli" hücrelere aktararak yazıcıdan çıktı alma döngüsü oluşturmak istiyorum. Yazdırılan hücre "Giriş" sayfasından silinmemelidir.
Konu ile ilgili yardımlarınız rica ederim.
 

Ekli dosyalar

AdemCan

Altın Üye
Destek Ekibi
Katılım
1 Eylül 2008
Mesajlar
1,386
Excel Vers. ve Dili
2019 TR
Merhaba, aşağıdaki kodları kullanarak istediğiniz işlemi yapabilirsiniz.
Kod:
Sub yazdir()
Application.ScreenUpdating = False

Dim giris As Worksheet, form As Worksheet
Dim son As Long, i As Long

Set giris = Sheets("GİRİŞ")
Set form = Sheets("FORM")

son = giris.Range("B" & Rows.Count).End(3).Row

For i = 2 To son
   If giris.Cells(i, "Q").Value = "Yazıcı" Then
        form.Range("D5").Value = giris.Cells(i, "L").Value
        form.Range("D6").Value = giris.Cells(i, "M").Value
        form.Range("D18").Value = giris.Cells(i, "N").Value
        form.Range("G5").Value = giris.Cells(i, "O").Value
   End If
form.PrintOut
Next i

Set giris = Nothing: Set form = Nothing
son = 0: i = 0
Application.ScreenUpdating = True
End Sub
 

AdemCan

Altın Üye
Destek Ekibi
Katılım
1 Eylül 2008
Mesajlar
1,386
Excel Vers. ve Dili
2019 TR
Güncelleme bilgisi:
form.PrintOut
satırını End If satırının üzerine alınız.
İlgili bölümün yeni hali.
Kod:
If giris.Cells(i, "Q").Value = "Yazıcı" Then
        form.Range("D5").Value = giris.Cells(i, "L").Value
        form.Range("D6").Value = giris.Cells(i, "M").Value
        form.Range("D18").Value = giris.Cells(i, "N").Value
        form.Range("G5").Value = giris.Cells(i, "O").Value
form.PrintOut
   End If
 
Katılım
20 Şubat 2018
Mesajlar
22
Excel Vers. ve Dili
2013 TÜRKÇE
Altın Üyelik Bitiş Tarihi
05-09-2022
Merhaba, aşağıdaki kodları kullanarak istediğiniz işlemi yapabilirsiniz.
Kod:
Sub yazdir()
Application.ScreenUpdating = False

Dim giris As Worksheet, form As Worksheet
Dim son As Long, i As Long

Set giris = Sheets("GİRİŞ")
Set form = Sheets("FORM")

son = giris.Range("B" & Rows.Count).End(3).Row

For i = 2 To son
   If giris.Cells(i, "Q").Value = "Yazıcı" Then
        form.Range("D5").Value = giris.Cells(i, "L").Value
        form.Range("D6").Value = giris.Cells(i, "M").Value
        form.Range("D18").Value = giris.Cells(i, "N").Value
        form.Range("G5").Value = giris.Cells(i, "O").Value
   End If
form.PrintOut
Next i

Set giris = Nothing: Set form = Nothing
son = 0: i = 0
Application.ScreenUpdating = True
End Sub
Merhaba , ilginiz için teşekkür ederim makroyu ekleyerek dosyayı tekrar siteye yükledim , hata olarak sadece yazıcı yazan Q satırlarını değil listedeki bütün veri olan satırları yazıcıdan çıktı olarak veriyor döngü.
 

Ekli dosyalar

Katılım
20 Şubat 2018
Mesajlar
22
Excel Vers. ve Dili
2013 TÜRKÇE
Altın Üyelik Bitiş Tarihi
05-09-2022
Güncelleme bilgisi:
form.PrintOut
satırını End If satırının üzerine alınız.
İlgili bölümün yeni hali.
Kod:
If giris.Cells(i, "Q").Value = "Yazıcı" Then
        form.Range("D5").Value = giris.Cells(i, "L").Value
        form.Range("D6").Value = giris.Cells(i, "M").Value
        form.Range("D18").Value = giris.Cells(i, "N").Value
        form.Range("G5").Value = giris.Cells(i, "O").Value
form.PrintOut
   End If
Evet bu defa oldu, emeklerinize sağlık teşekkür ederim...
 

AdemCan

Altın Üye
Destek Ekibi
Katılım
1 Eylül 2008
Mesajlar
1,386
Excel Vers. ve Dili
2019 TR
Rica ederim.(y)
 
Üst