İkili Eğer Koşulu ve Yazdırma

kumandur

Altın Üye
Katılım
11 Mayıs 2013
Mesajlar
27
Excel Vers. ve Dili
2019 Türkçe
Altın Üyelik Bitiş Tarihi
04-02-2026
Merhabalar ekte gönderğim tablonun ilk sekmesi Özet Tablo , ikinci sekmesi kronik

Yapmak istediğim Kronik tabloda , Cari Kodu Cari Adı ve Borç Bakiye kısmına , özel tablodaki Kesilen fatura "0" ve kırmızı renkli alacak bakiye "0" olanları; Kronik bölümündeki Cari Kodu Cari Adı ve Cari Bakiye bölümlerine karşılıklarını yazdırmak. Ek olarak Kırmızı bölümdeki borç bakiye sütununda "0" mevcutsa onu da yazdırmasın.

İlginizi ve yardımlarını rica ederim.

Teşekkür ederim.
 

Ekli dosyalar

  • 10 KB Görüntüleme: 7

Mahir64

Destek Ekibi
Destek Ekibi
Katılım
19 Nisan 2006
Mesajlar
6,677
Excel Vers. ve Dili
Excel 2013-Türkçe
Excel 2016-Türkçe

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Aşağıdaki makroyu bir modüle kopyalayıp deneyiniz:

PHP:
Sub aktar()
Set s1 = Sheets("Özet Tablo")
Set s2 = Sheets("Kronik")
son = WorksheetFunction.Max(3, s1.Cells(Rows.Count, "A").End(3).Row)
eski = WorksheetFunction.Max(2, s2.Cells(Rows.Count, "A").End(3).Row)
uyar = MsgBox("Kronik sayfasındaki eski veriler silinsin mi?", vbYesNo)
If uyar = vbYes Then
    s2.Range("A2:C" & eski).ClearContents
End If
yeni = WorksheetFunction.Max(2, s2.Cells(Rows.Count, "A").End(3).Row + 1)
Set con = VBA.CreateObject("adodb.Connection")
con.Open "provider=microsoft.ace.oledb.12.0;data source=" & _
ThisWorkbook.FullName & ";extended properties=""Excel 12.0;hdr=no"""

sorgu = "select F1,F2,F3 from[" & s1.Name & "$A3:K" & son & "] where F11=0 and F4=0 and F3<>0"
Set rs = con.Execute(sorgu)
s2.[A2].CopyFromRecordset rs

End Sub
 

kumandur

Altın Üye
Katılım
11 Mayıs 2013
Mesajlar
27
Excel Vers. ve Dili
2019 Türkçe
Altın Üyelik Bitiş Tarihi
04-02-2026
Aşağıdaki makroyu bir modüle kopyalayıp deneyiniz:

PHP:
Sub aktar()
Set s1 = Sheets("Özet Tablo")
Set s2 = Sheets("Kronik")
son = WorksheetFunction.Max(3, s1.Cells(Rows.Count, "A").End(3).Row)
eski = WorksheetFunction.Max(2, s2.Cells(Rows.Count, "A").End(3).Row)
uyar = MsgBox("Kronik sayfasındaki eski veriler silinsin mi?", vbYesNo)
If uyar = vbYes Then
    s2.Range("A2:C" & eski).ClearContents
End If
yeni = WorksheetFunction.Max(2, s2.Cells(Rows.Count, "A").End(3).Row + 1)
Set con = VBA.CreateObject("adodb.Connection")
con.Open "provider=microsoft.ace.oledb.12.0;data source=" & _
ThisWorkbook.FullName & ";extended properties=""Excel 12.0;hdr=no"""

sorgu = "select F1,F2,F3 from[" & s1.Name & "$A3:K" & son & "] where F11=0 and F4=0 and F3<>0"
Set rs = con.Execute(sorgu)
s2.[A2].CopyFromRecordset rs

End Sub
Teşekkür ederim,çalışıyor, kusura bakmazsanız bunu bir tuşla veya otomatik çalışmasını nasıl yapabiliriz.
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Excel dosyanıza bir düğme/resim/şekil/nesne ekleyin. Eklediğinize sağ tıklayıp makro ata deyin. Listeden makroyu seçip işlemi tamamlayın. Dosyayı makro içerebilen Excel dosyası olarak kaydedin.
 
Üst