Kritere göre verileri başka sheetlere aktarmak

Katılım
17 Nisan 2007
Mesajlar
319
Excel Vers. ve Dili
Office 2013 Türkçe
Merhabalar ,

Aslında konuyu sormustum fakat tam olarak anlatamadığımı düşündüm.
Ekte gönderdiğim dosyada A sütununda Poz.no var.Burada yapmak istediğimiz poz.nosu tek olanların C,F,G,H sütunlarında bilgileri alıp başka bir sayfaya kopyalamak istiyoruz.
Yine aynı şekilde poz.noları aynı olan birden fazla kayıtlarda ise varış yeri kısımlarını kontrol edecek , eger varış yerleri aynı ise bu kayıtların oto adetlerinin toplamını alacak ve tek nokta olan kayıtlara ekleyecek , eger varış yerleri farklı ise bu kayıtlarında yine C,F,G,H sütunlarını başka bir sayfaya kopyalamak istiyoruz.Kısacası tek noktaya gidenler ile dolaşarak giden araçları ayırmak istiyoruz..
İnşallah tam olarak anlatabilmişimdir. :)
Konuyla ilgili yardımlarınız icin şimdiden teşekkürler...

Tekrar saygılar...
 

Ekli dosyalar

Katılım
17 Nisan 2007
Mesajlar
319
Excel Vers. ve Dili
Office 2013 Türkçe
Güncel, Yardımlarınızı bekliyorum...!
 
Katılım
17 Nisan 2007
Mesajlar
319
Excel Vers. ve Dili
Office 2013 Türkçe
Güncel , yardım edermisiniz...Teşekkürler...
 
Katılım
17 Nisan 2007
Mesajlar
319
Excel Vers. ve Dili
Office 2013 Türkçe
Güncel... Yardımlarınızı bekliyoruz..Lütfen...
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,286
Excel Vers. ve Dili
Office 2019 (64 bit) - Türkçe
Ekli dosyanızdaki çözümü inceleyin..

Kod:
Sub dagit()
Dim cn As Object, rs As Object

Set cn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")

cn.Open _
"Driver={Microsoft Excel Driver (*.xls)};Dbq=" & _
ThisWorkbook.FullName

rs.Open _
"select distinct [POZ NO],[VARIŞ YERİ],[İRSALİYE TARİHİ]," & _
"sum([OTO ADEDİ]),sum([GÜZERGAH KM]) " & _
"from [GENEL YÜK LİSTESİ$] " & _
"group by [POZ NO],[VARIŞ YERİ],[İRSALİYE TARİHİ]", cn, 2, 3

With Sheets("sayfa1")
    .[a2:e65000].ClearContents
    .[a2].CopyFromRecordset rs
    .Rows(2).Delete
End With

rs.Close
cn.Close

Set rs = Nothing
Set cn = Nothing
End Sub
 

Ekli dosyalar

Katılım
17 Nisan 2007
Mesajlar
319
Excel Vers. ve Dili
Office 2013 Türkçe
Zeki Bey,
Öncelikle gösterdiğiniz ilgi için çok teşekkür ederim...Birşey daha sormak istiyorum.Makroyu çalıştırdıktan sonra makro ile olusan listede bir değişiklik yapmamız mümkünmüdür.
Örnegin ; Makro ile oluşan listedeki poz.nosu çift olanları başka bir sheete aktarmamız mümkünmüdür ?
Örn : 28421 İZMİR 24.09.2008 2 46
28421 ÇANAKKALE 24.09.2008 1 358
Böyle olanları başka bir sheete aktarabilirmiyiz...Çünkü bunlar dolaşarak giden tırlara ait..Bunu ayrı raporlamak icin :)
İnşallah size zahmet vermiyorumdur...Tekrar emeginize teşekkür ederim..Saygılar...
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,286
Excel Vers. ve Dili
Office 2019 (64 bit) - Türkçe
Sonuçlar şimdi ayrı sayfalarda...

Kod:
Sub dagit2()
Dim cn As Object, rs As Object

Set cn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")

cn.Open _
"Driver={Microsoft Excel Driver (*.xls)};Dbq=" & _
ThisWorkbook.FullName

rs.Open _
"select distinct [POZ NO],[VARIŞ YERİ],[İRSALİYE TARİHİ]," & _
"sum([OTO ADEDİ]),sum([GÜZERGAH KM]) " & _
"from [GENEL YÜK LİSTESİ$] " & _
"group by [POZ NO],[VARIŞ YERİ],[İRSALİYE TARİHİ]", cn, 2, 3

Sheets("sayfa1").[a2:e65000].ClearContents
Sheets("sayfa1").[a2:e65000].ClearContents

While Not rs.EOF
    If (rs(0) Mod 2) = 0 Then
        With Sheets("sayfa1")
            .Cells(.[a65000].End(3).Row + 1, 1) = rs(0)
            .Cells(.[b65000].End(3).Row + 1, 2) = rs(1)
            .Cells(.[c65000].End(3).Row + 1, 3) = rs(2)
            .Cells(.[d65000].End(3).Row + 1, 4) = rs(3)
            .Cells(.[e65000].End(3).Row + 1, 5) = rs(4)
        End With
    Else
        With Sheets("sayfa2")
            .Cells(.[a65000].End(3).Row + 1, 1) = rs(0)
            .Cells(.[b65000].End(3).Row + 1, 2) = rs(1)
            .Cells(.[c65000].End(3).Row + 1, 3) = rs(2)
            .Cells(.[d65000].End(3).Row + 1, 4) = rs(3)
            .Cells(.[e65000].End(3).Row + 1, 5) = rs(4)
        End With
    End If
    rs.movenext
Wend

rs.Close
cn.Close
Set rs = Nothing
Set cn = Nothing
End Sub
 

Ekli dosyalar

Katılım
17 Nisan 2007
Mesajlar
319
Excel Vers. ve Dili
Office 2013 Türkçe
Zeki Bey,

Çok ama çok teşekkür ederim...Emeginize ve ellerinize sağlık...İlgi ve alakanız icin ayrıca teşekkür ederim.Hayırlı geceler..
 
Katılım
17 Nisan 2007
Mesajlar
319
Excel Vers. ve Dili
Office 2013 Türkçe
Zeki Bey,

Tekrar affınıza sığınarak birşey sormak istiyorum..İlk mesajınızdaki makroyu çalıştırdıktan sonra bir liste veriyor...Bu listeyi aldıktan sonra ,bu listedeki tek poz.nosu olanları ayrı bir sheete aktarmayı nasıl yapabiliriz...
Teşekkürler...
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,286
Excel Vers. ve Dili
Office 2019 (64 bit) - Türkçe
Çiftler için işlem olmayacak mı?
 
Katılım
17 Nisan 2007
Mesajlar
319
Excel Vers. ve Dili
Office 2013 Türkçe
Yani ilk yaptıgınız makro listeyi verdikten sonra bu listedeki poz.nosu birden fazla olanları başka bir sheete aktarmak istiyoruz...
Örnegin : 28421 gibi..
Teşekkürler... :)
 
Son düzenleme:
Katılım
17 Nisan 2007
Mesajlar
319
Excel Vers. ve Dili
Office 2013 Türkçe
Haklısınız zeki bey...Aslında anlatmak istedigim ;
İlk makronun verdigi listeyi aldıktan sonra bu liste üzerinden aynı pozisyon nolu olan birden fazla kayıtları başka bir sheete aktarmak istiyoruz.
Örnegin , makronun verdigi listede
28432 İSTANBUL 25.09.2008 6 830
28432 LÜLEBURGAZ 25.09.2008 1 890
28432 ÇORLU 25.09.2008 1 830
28433 İSTANBUL 25.09.2008 7 1660
28434 ORDU 25.09.2008 1 1210
28434 SAMSUN 25.09.2008 1 1048
28434 TRABZON 25.09.2008 4 1396
28434 ÇORUM 25.09.2008 2 869
28435 İSTANBUL 25.09.2008 8 1660
28436 İZMİR 25.09.2008 2 46
28436 SİVAS 25.09.2008 3 2210
28436 TOKAT 25.09.2008 3 1026
28437 DİYARBAKIR 25.09.2008 2 2932
28437 ŞANLIURFA 25.09.2008 4 1292
28438 ADANA 25.09.2008 5 932
Burada gördügünüz gibi 28432 , 28434 , 28436 , 28437 poz.nolarından birden fazla var.Böyle olanları ayrı bir sayfaya aktarmak amacımız...
 
Katılım
17 Nisan 2007
Mesajlar
319
Excel Vers. ve Dili
Office 2013 Türkçe
Zeki Bey ,
Problemi tam olarak anlatabildim mi acaba ?
 
Üst