- Katılım
- 17 Ekim 2017
- Mesajlar
- 110
- Excel Vers. ve Dili
- Microsoft Office 2013 Standard
- Altın Üyelik Bitiş Tarihi
- 28.04.2024
Merhaba Arkadaşlar,
Sizden aşağıdaki kod ile ilgili yeni bir bilgi eklemek için yardım rica edeceğim. Satış raporları adında özet bir raporum var arkadaşlar, 218-2019-2020 yılı satış bilgilerini içeriyor, ben 2021-2022-2023 yıllarınıda eklemek istiyorum. Aşağıda yazacağım kod 2020 yılına kadar bilgileri getiriyor.
Sub denemem()
Sayfa5.Select
son = Cells(Rows.Count, 1).End(3).Row
If son = 1 Then son = 2
Range("A2:I" & son).ClearContents
Set con = VBA.CreateObject("adodb.Connection")
con.Open "provider=microsoft.ace.oledb.12.0;data source=" & _
ThisWorkbook.FullName & ";extended properties=""Excel 12.0;hdr=yes"""
sorgu = "transform sum([TL Net Tutar Kdvli]) select [Ch kodu],[CH Ünvanı],sum([TL Net Tutar Kdvli]) As TOPLAM from[SATIŞLAR$] " & _
"group by [Ch kodu],[CH Ünvanı] pivot [Yıl (Ft#Tarihi)] & ' SATIŞLAR' "
Set rs = con.Execute(sorgu)
Range("A2").CopyFromRecordset rs
sorgu = "select t2.[CH Yetki Kodu],t2.[Bakiye],t2.[Bakiye Tipi] " & _
"from [MÜŞTERİ SATIŞ RAPORU$] t1 left join [CH HESAPLAR$] t2 on t2.[Cari Hesap Kodu] = t1.[CH KODU]"
Set rs = con.Execute(sorgu)
Range("g2").CopyFromRecordset rs
Range("C2:F" & son).NumberFormat = "#,##0.00 TL"
Range("H2:H" & son).NumberFormat = "#,##0.00 TL"
'---------------------------------------------------------------------------------------------------
son = Cells(Rows.Count, 1).End(1).Row
Worksheets("MÜŞTERİ SATIŞ RAPORU").AutoFilter.Sort.SortFields.Clear
Worksheets("MÜŞTERİ SATIŞ RAPORU").AutoFilter.Sort.SortFields.Add Key:=Range _
("F2:F" & son), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("MÜŞTERİ SATIŞ RAPORU").AutoFilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
'---------------------------------------------------------------------------------------------------
Columns("C:C").Cut
Columns("G:G").Insert Shift:=xlToRight
Range("F1") = "TOPLAM"
Range("C1") = "2018 TOPLAM"
Range("D1") = "2019 TOPLAM"
Range("E1") = "2020 TOPLAM"
'Cells.EntireColumn.AutoFit
End Sub
Saygılarımla,
Hakan ASLAN
Sizden aşağıdaki kod ile ilgili yeni bir bilgi eklemek için yardım rica edeceğim. Satış raporları adında özet bir raporum var arkadaşlar, 218-2019-2020 yılı satış bilgilerini içeriyor, ben 2021-2022-2023 yıllarınıda eklemek istiyorum. Aşağıda yazacağım kod 2020 yılına kadar bilgileri getiriyor.
Sub denemem()
Sayfa5.Select
son = Cells(Rows.Count, 1).End(3).Row
If son = 1 Then son = 2
Range("A2:I" & son).ClearContents
Set con = VBA.CreateObject("adodb.Connection")
con.Open "provider=microsoft.ace.oledb.12.0;data source=" & _
ThisWorkbook.FullName & ";extended properties=""Excel 12.0;hdr=yes"""
sorgu = "transform sum([TL Net Tutar Kdvli]) select [Ch kodu],[CH Ünvanı],sum([TL Net Tutar Kdvli]) As TOPLAM from[SATIŞLAR$] " & _
"group by [Ch kodu],[CH Ünvanı] pivot [Yıl (Ft#Tarihi)] & ' SATIŞLAR' "
Set rs = con.Execute(sorgu)
Range("A2").CopyFromRecordset rs
sorgu = "select t2.[CH Yetki Kodu],t2.[Bakiye],t2.[Bakiye Tipi] " & _
"from [MÜŞTERİ SATIŞ RAPORU$] t1 left join [CH HESAPLAR$] t2 on t2.[Cari Hesap Kodu] = t1.[CH KODU]"
Set rs = con.Execute(sorgu)
Range("g2").CopyFromRecordset rs
Range("C2:F" & son).NumberFormat = "#,##0.00 TL"
Range("H2:H" & son).NumberFormat = "#,##0.00 TL"
'---------------------------------------------------------------------------------------------------
son = Cells(Rows.Count, 1).End(1).Row
Worksheets("MÜŞTERİ SATIŞ RAPORU").AutoFilter.Sort.SortFields.Clear
Worksheets("MÜŞTERİ SATIŞ RAPORU").AutoFilter.Sort.SortFields.Add Key:=Range _
("F2:F" & son), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("MÜŞTERİ SATIŞ RAPORU").AutoFilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
'---------------------------------------------------------------------------------------------------
Columns("C:C").Cut
Columns("G:G").Insert Shift:=xlToRight
Range("F1") = "TOPLAM"
Range("C1") = "2018 TOPLAM"
Range("D1") = "2019 TOPLAM"
Range("E1") = "2020 TOPLAM"
'Cells.EntireColumn.AutoFit
End Sub
Saygılarımla,
Hakan ASLAN