• FORUMU MOBİL UYGULAMADAN TAKİP EDİN

    Forumu isteyen üyelerimiz Tapatalk (Harici bir hizmet) üzerinden mobil uygulamadan takip edebilirler.
    iOS için : https://itunes.apple.com/app/id307880732?mt=8
    Android için : https://play.google.com/store/apps/details?id=com.quoord.tapatalkpro.activity
    adreslerinden indirebilirsiniz.

    Bir iki haftaya da foruma özel kendi uygulamamız yayında olacak.
ALTIN ÜYELİK Hakkında Bilgi
-----------------------

Listboxta çoklu seçimin textbox1'de ve sonra da hücrede görünmesi

Erdem_34

Destek Ekibi
Destek Ekibi
Katılım
4 Mayıs 2007
Mesajlar
2,836
Beğeniler
23
Excel Vers. ve Dili
OFİS 2013 TÜRKÇE-İNG. 64 BİT
#21
Yusuf bey merhaba,

Binlik ayraç sorunundan dolayı hata alıyorsunuz.


sorgu = "select f2,f3,f4,f5,f6,f7,f8,f9 from[Ana Sayfa$] where f10 = " & yıl & " and f11 = '" & ay & "' and f8 > " & Replace(5 / 24, ",", ".") & " "

 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
6,889
Beğeniler
45
Excel Vers. ve Dili
İş : Ofis 2016 - Türkçe
Ev: Ofis 2016 - Türkçe
#22
Teşekkürler. Düzelttim.

Ancak şöyle bir sorun var: Süre tam 05:00 olduğunda listelemiyor. Bu düzeltmeden önce başka bir sütuna saatin 5/24'e büyük eşit olması halinde "Evet" değilse "Hayır" yazdırarak sorguyu bu sütun üzerinden yaptığımda da aynı şekilde 05:00 olanları aktarmamıştı.

5/24 ile 05:00 aynı şey olmalı diye biliyorum ama sayfada formül olarak girersem bunu kabul ediyor, VBA kısmında bunu kabul etmiyor.

Neden acaba?
 

Erdem_34

Destek Ekibi
Destek Ekibi
Katılım
4 Mayıs 2007
Mesajlar
2,836
Beğeniler
23
Excel Vers. ve Dili
OFİS 2013 TÜRKÇE-İNG. 64 BİT
#23
Sorgu'da F8 > işareti var sadece >= yaparsanız 05:00 'da gelir.
Süreyi'de sayfa'da bir alana yazarsanız sorgu dinamik yapılabilir.
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
6,889
Beğeniler
45
Excel Vers. ve Dili
İş : Ofis 2016 - Türkçe
Ev: Ofis 2016 - Türkçe
#24
Aslında >= yaptığımda da olmamıştı. Farklı bir şekilde hallettim. Anladığım kadarıyla 5/24 eşit değildir 05:00, ondalık basamaklarda farklılık var muhtemelen.

Teşekkürler ilginize.
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
6,889
Beğeniler
45
Excel Vers. ve Dili
İş : Ofis 2016 - Türkçe
Ev: Ofis 2016 - Türkçe
#25
İlginç bir sorunla daha karşılaştım. Eğer Ana sayfada sadece tek satır veri varsa ve bu istenilen yıl ve aya aitse sorgu, "ölçüt ifadesinde veri türü uyuşmazlığı" hatası veriyor. Listede birden fazla satır (istenen yıl ve aya ait tek satır olsa bile) varsa bu hatayı vermiyor. Bu sorun da şartlara uymayan bir satır veri girilerek düzeltilebilir ama acaba neden oluyor?

Tek satır var ve şartlara uyuyorsa hata veriyor
Tek satır var ve şartlara uymuyorsa hata vermiyor
Birden fazla satır var ve en az biri şartlara uyuyorsa hata vermiyor.
 

Erdem_34

Destek Ekibi
Destek Ekibi
Katılım
4 Mayıs 2007
Mesajlar
2,836
Beğeniler
23
Excel Vers. ve Dili
OFİS 2013 TÜRKÇE-İNG. 64 BİT
#28
Yusuf bey,

Hatanın sebebi ADO'nun sorgu yapılan alandaki sütunları kendi içinde metin,sayı,tarih olarak sınıflandırırken sorun yaşaması. Tek satır sonuç döndüğü için değil, tek satır veriniz olduğu için bu hatayı veriyor. Ana Sayfa'da ki datayı çoğaltın ama tek sonuç döndürün hata vermeyecektir.

Tek satırlı bir veride hata almamak içinde hdr=no demiştik o kısmı hdr=yes diyebiliriz. Bunun anlamı veritabanımda başlıklar var demek.Bu sefer kodda f1,f2 diye yazamayacağız. Başlıkların adını yazmak gerekecek. Başlıkları olduğu gibi yazabilirsiniz. Arasında boşluk olanları [ ] parantez içinde yazmanız gerek.
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
6,889
Beğeniler
45
Excel Vers. ve Dili
İş : Ofis 2016 - Türkçe
Ev: Ofis 2016 - Türkçe
#29
Teşekkür ederim. Belirttiğiniz gibi birden fazla kayıt girmek gerekecek. Olmazsa ilk satıra farazi bir veri yazıp o satırı gizleyebilirim.
 

Erdem_34

Destek Ekibi
Destek Ekibi
Katılım
4 Mayıs 2007
Mesajlar
2,836
Beğeniler
23
Excel Vers. ve Dili
OFİS 2013 TÜRKÇE-İNG. 64 BİT
#31
Yusuf bey günaydın,

Kodun aşağıdaki kısımlarını değiştirin.
Tek satır veride gelen hata ile karşılaşmayacaksınız.

Kod:
con.Open "provider=microsoft.ace.oledb.12.0;data source=" & _
ThisWorkbook.FullName & ";extended properties=""Excel 12.0;hdr=yes"""

sorgu = "select Tarih,[Görev Yeri],[Hukuki Dayanağı],[Görev Konusu/Yapılan İşlem],[Başlama Saati],[Bitiş Saati],[Süre],[Araç Plakası/Yaya/Daire]" & _
  "from[Ana Sayfa$] where [yıl] = " & yıl & " and [ay] = '" & ay & "' and [Ödeme] = '" & sure & "' "
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
6,889
Beğeniler
45
Excel Vers. ve Dili
İş : Ofis 2016 - Türkçe
Ev: Ofis 2016 - Türkçe
#32
Teşekkürler. Bu sefer de sonraki satırda (s2.Range("B7").CopyFromRecordset rs) hata verdi. Yanlış hatırlamıyorsam işlem bulunamadı gibi bir hataydı.

Ben sorunu ilk satıra farazi veri girerek hallettim.
 

Erdem_34

Destek Ekibi
Destek Ekibi
Katılım
4 Mayıs 2007
Mesajlar
2,836
Beğeniler
23
Excel Vers. ve Dili
OFİS 2013 TÜRKÇE-İNG. 64 BİT
#33
Yusuf bey,

Sorgudan önce sizin eklediğiniz kod prosedürden çıkılmasını sağlıyor.
Hata almamanız lazımdı. İlk satıra farazi kayıt girmenize gerek yok.
Kodu değiştirdiniz sanırım.

Kod:
If WorksheetFunction.CountIfs(s1.Range("J2:J" & veri), yıl, s1.Range("K2:K" & veri), ay) = 0 Then
    MsgBox s2.[G4] & " yılı " & s2.[I4] & " ayına ait veri bulunamadı!" & Chr(10) & "İyi çalışmalar"
    s2.Range("A7:I" & Eski).Clear
    Exit Sub
End If
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
6,889
Beğeniler
45
Excel Vers. ve Dili
İş : Ofis 2016 - Türkçe
Ev: Ofis 2016 - Türkçe
#34
Prosedürden çıkıldığında sorgu aşamasına hiç geçmemesi gerekmez mi? Sorgu aşamasına geldiğine göre demek ki önceki kodlar sorunsuz çalışmıştır.

Dediğim gibi ben sorunumu sayenizde çözdüm ve değerli bilgiler öğrendim, Allah razı olsun. Çalışmalarınızda başarılar dilerim.
 

Erdem_34

Destek Ekibi
Destek Ekibi
Katılım
4 Mayıs 2007
Mesajlar
2,836
Beğeniler
23
Excel Vers. ve Dili
OFİS 2013 TÜRKÇE-İNG. 64 BİT
#35
Eklediğiniz farazi satırdan dolayı prosedürden çıkamıyor olabilir.
Dosyanızın son halini paylaşırsanız bakabilirim.
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
6,889
Beğeniler
45
Excel Vers. ve Dili
İş : Ofis 2016 - Türkçe
Ev: Ofis 2016 - Türkçe
#37
Dosyada farazi satır da yok. isterseniz sayfa1'deki satırı ana sayfada başlıkların altına ekleyebilirsiniz. Zaten hatayı farazi satır yokken veriyor.
 

Erdem_34

Destek Ekibi
Destek Ekibi
Katılım
4 Mayıs 2007
Mesajlar
2,836
Beğeniler
23
Excel Vers. ve Dili
OFİS 2013 TÜRKÇE-İNG. 64 BİT
#38
Merhaba,

Son verdiğim düzeltmeyi eklerseniz hata almazsınız.
Size önerim bütün çalışmayı Userform ile yapmanız.
Ana sayfa alanında elle giriş yapmanıza gerek olmadan tüm süreçleri Userform'a taşımanız performans ve kullanış açısından daha iyi olur.
Data yokken prosedürden çıkma seçeneğinin çalışmasını kontrol edebilirsiniz. Hatalı şekliyle yüklerseniz bakabilirim.
 
Son düzenleme:

Erdem_34

Destek Ekibi
Destek Ekibi
Katılım
4 Mayıs 2007
Mesajlar
2,836
Beğeniler
23
Excel Vers. ve Dili
OFİS 2013 TÜRKÇE-İNG. 64 BİT
#40
Kopyalama yaparken Set rs = con.Execute(sorgu) kısmını silmişsiniz.

Sorgunun altına Set rs = con.Execute(sorgu) alanını ekleyin.
 
Üst