Satır taşıma

Katılım
4 Mart 2010
Mesajlar
292
Excel Vers. ve Dili
2010 TÜRKÇE
Po sekmesindeki eksik olan ürünlerin bulunduğu(mavi satırlar)
satırları 3. Sekme olan eksikler sekmesine taşımak istiyoruz.

Teşekkürler...
 
Katılım
4 Mart 2010
Mesajlar
292
Excel Vers. ve Dili
2010 TÜRKÇE
Taşımak yanlış kelime oldu.kopyalamak istiyoruz.
Po sayfası bozulmasın diye..
 

Erdem Akdemir

Destek Ekibi
Destek Ekibi
Katılım
4 Mayıs 2007
Mesajlar
3,636
Excel Vers. ve Dili
2016 PRO TÜRKÇE-İNG. 64 BİT
Merhaba,

Tag'daki kodu kullanabilirsiniz.

Kod:
Sub aktar()

Sayfa3.Range("a2:j" & Rows.Count).Clear ' sayfa3'te a2:j satırsayısı kadar alanı siler(faklı bir silme), temizlemeden farklı)
son = Sayfa1.Cells(Rows.Count, "a").End(3).Row ' sayfa1'de a sütunundaki son dolu sütunun satır numarasını verir
Set con = VBA.CreateObject("adodb.Connection") ' ado bağlantı nesnesini oluşturur


con.Open "provider=microsoft.ace.oledb.12.0;data source=" & _
ThisWorkbook.FullName & ";extended properties=""Excel 12.0;hdr=no"""  ' bu kısım standattır, bağlantı nesnesinin metni. sadece hdr alanını başlıkları kullanmak istemediğim için no yaptım.  

Set rs = con.Execute("select * from [" & "PO$A2:J" & son & "] where [f8]>[f9]") 'recordset nesnesi kullanmadan connecton nesnesinin execute özelliği ile sorgu sonucunu record yaptım.Sorgu'da bütün veriler gelsin a2:j son'daki satır değeri ile, 8. sütundaki verilerin sütunun 9. sütundaki verilerden büyükse. 

Sayfa3.Range("A2").CopyFromRecordset rs 'sayfa3 a2 hücresine sonuçları kopya recordset nesnesini boşalt.


End Sub
 
Son düzenleme:

Erdem Akdemir

Destek Ekibi
Destek Ekibi
Katılım
4 Mayıs 2007
Mesajlar
3,636
Excel Vers. ve Dili
2016 PRO TÜRKÇE-İNG. 64 BİT
Merhaba,

Dosyanızı inceledim.
Koşullu biçimlendirme ve formülü çok fazla kullanmışsınız, dosya yavaş çalışıyor.
Bütün denetimleri koda taşımanızı öneririm.
Akıl verme yap dediğinizi duyar gibiyim, vaktim olursa bakabilirim :)
 
Katılım
4 Mart 2010
Mesajlar
292
Excel Vers. ve Dili
2010 TÜRKÇE
çok teşekkür ederim elinize sağlık.
Tam istediğim gibi olmuş...

Iyi çalışmalar...
 
Katılım
4 Mart 2010
Mesajlar
292
Excel Vers. ve Dili
2010 TÜRKÇE
Sayın kuvari arkadaşım, önerinize teşekkür ederim ancak sizin kadar bilgili olsaydım yapabilirdim.
Satır taşıma konusunda bana yadım etmiştiniz.tabloyu kullanırken dikkatimi
çekti.ancak 5. Satırdan donra gönderdiğiniz koda atadığım butona basınca listeyi sıralıyor(girilen barkod sayısı,istenenden az olunca)
mesela sadece 1 yada 2 ürün girdiğimde butona basarsam eror veriyor.
Bakabilirseniz sevinirim.belki gönderdiğiniz kodda değişiklik yapabilirsiniz.
Teşekkür ederim...
 

Erdem Akdemir

Destek Ekibi
Destek Ekibi
Katılım
4 Mayıs 2007
Mesajlar
3,636
Excel Vers. ve Dili
2016 PRO TÜRKÇE-İNG. 64 BİT
Merhaba,

Örnek dosyanızın yapısı değişmiş olabilir. Hata veren dosyanızı eklemeden birşey diyemem.
A sütununda veri sayısına göre kod çalışıyor. Barkod numaranızı yazmanız gerekir.
 

Erdem Akdemir

Destek Ekibi
Destek Ekibi
Katılım
4 Mayıs 2007
Mesajlar
3,636
Excel Vers. ve Dili
2016 PRO TÜRKÇE-İNG. 64 BİT
Merhaba,

Tag'daki gibi revize ettim. İlk eklediğiniz dosyada tekrar okutma alanında hiç boş alan yoktu, şimdi ise boş alanlar var.
Boş alanlarda formülden dolayı metin olarak görünüyor, buda sql sorgusunda hatalı verdirmiş.


Kod:
Sub aktar()

Sayfa3.Range("a2:j" & Rows.Count).Clear ' sayfa3'te a2:j satırsayısı kadar alanı siler(faklı bir silme), temizlemeden farklı)
son = Sayfa1.Cells(Rows.Count, "a").End(3).Row ' sayfa1'de a sütunundaki son dolu sütunun satır numarasını verir
Set con = VBA.CreateObject("adodb.Connection") ' ado bağlantı nesnesini oluşturur


con.Open "provider=microsoft.ace.oledb.12.0;data source=" & _
ThisWorkbook.FullName & ";extended properties=""Excel 12.0;hdr=no"""  ' bu kısım standattır, bağlantı nesnesinin metni. sadece hdr alanını başlıkları kullanmak istemediğim için no yaptım.

Set rs = con.Execute("select * from [" & "PO$A2:J" & son & "] where clng([f8]) > clng([f9]) and clng([f9])>0 ")
'recordset nesnesi kullanmadan connecton nesnesinin execute özelliği ile sorgu sonucunu record yaptım.Sorgu'da bütün veriler gelsin a2:j son'daki satır değeri ile, 8. sütundaki verilerin sütunun 9. sütundaki verilerden büyükse.

Sayfa3.Range("A2").CopyFromRecordset rs 'sayfa3 a2 hücresine sonuçları kopya recordset nesnesini boşalt.


End Sub
 
Katılım
4 Mart 2010
Mesajlar
292
Excel Vers. ve Dili
2010 TÜRKÇE
Şu anda bulunduğum yerde sadece telefonda internet var.
Onun için dosyayı açıp bakmıyorum. Yarın ilk işim bilgisayarda
Dosyayı açıp bakmak olacak.Şimdiden teşekkür ederim...
 
Katılım
4 Mart 2010
Mesajlar
292
Excel Vers. ve Dili
2010 TÜRKÇE
Listelemedi

Eklediğim tabloya yeni gönderdiğiniz kodu guyguladım.bu sefer po kısmında
1 adet ürün eksik olmasına rağmen bu eksiği "eksikler" sekmesinde listelemedi.
Teşekkürler...
 

Ekli dosyalar

Erdem Akdemir

Destek Ekibi
Destek Ekibi
Katılım
4 Mayıs 2007
Mesajlar
3,636
Excel Vers. ve Dili
2016 PRO TÜRKÇE-İNG. 64 BİT
Sayın elvis merhaba,

Eklediğiniz dosya her defasında değişiyor, tam olarak olması gereken sonuçları gösteren bir dosya ekleyebilir misiniz? İçinde farklı örnekler olsun.OKUTULAN ADET TEKRAR SAYISI sütunu boş olması bir anlam ifade ediyor mu?
 
Katılım
4 Mart 2010
Mesajlar
292
Excel Vers. ve Dili
2010 TÜRKÇE
Burada benim için olabilecek 3 durum söz konusu olabilir..
1-istenen adet in , okutulan adet tekrar sayısına eşit olması bu durumda sorun yok
2-okutulan adet tekrar sayısının istenen adetten küçük olması.bu dulumda istenen sipariş miktarını karşılayamamış oluyoruz. Bu durumda 3.sekme olan eksikler sekmesinde(sizin yazdığınız kod vasıtasıyla)listelenmesi gerekir.
3-okutulan adet tekrar sayısının istenen adetten fazla olması ,bu durumda zaten koşullu biçimlendirme yolu ile beni uyarmasını sağladım.
Işte bu 3 durumdan 2. Si için sizden yardım talep etmiştim.
Daha önce gönderdiğim tabloyu kullanabilirsiniz...
 

Erdem Akdemir

Destek Ekibi
Destek Ekibi
Katılım
4 Mayıs 2007
Mesajlar
3,636
Excel Vers. ve Dili
2016 PRO TÜRKÇE-İNG. 64 BİT
Merhaba,

Tag'daki kod işinizi görecektir.

Kod:
Sub aktar()

Sayfa3.Range("a2:j" & Rows.Count).Clear ' sayfa3'te a2:j satırsayısı kadar alanı siler(faklı bir silme), temizlemeden farklı)
son = Sayfa1.Cells(Rows.Count, "a").End(3).Row ' sayfa1'de a sütunundaki son dolu sütunun satır numarasını verir
Set con = VBA.CreateObject("adodb.Connection") ' ado bağlantı nesnesini oluşturur


con.Open "provider=microsoft.ace.oledb.12.0;data source=" & _
ThisWorkbook.FullName & ";extended properties=""Excel 12.0;hdr=no"""  ' bu kısım standattır, bağlantı nesnesinin metni. sadece hdr alanını başlıkları kullanmak istemediğim için no yaptım.

Set rs = con.Execute("select * from [" & "PO$A2:J" & son & "] where clng([f8]) > clng([f9])  ")
'recordset nesnesi kullanmadan connecton nesnesinin execute özelliği ile sorgu sonucunu record yaptım.Sorgu'da bütün veriler gelsin a2:j son'daki satır değeri ile, 8. sütundaki verilerin sütunun 9. sütundaki verilerden büyükse.

Sayfa3.Range("A2").CopyFromRecordset rs 'sayfa3 a2 hücresine sonuçları kopya recordset nesnesini boşalt.

End Sub
 
Katılım
4 Mart 2010
Mesajlar
292
Excel Vers. ve Dili
2010 TÜRKÇE
çok teşekkür ederim.
Eksikleri listelettiğimde barkodları listeye "1,54033e+13" biçiminde
yazıyor.bunu da düzeltebilirsek tam olacak.
Emeğiniz için teşekkür ederim...
 
Üst