• DİKKAT !

    Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak Dosya Yükleme tamamen ücretsizdir.

Soru Makro ile başka sayfadan veri almada hata

mert25

Gold Üye
Katılım
25 Ağu 2022
Mesajlar
394
Çözümler
2
Aldığı beğeni
68
Excel V
Office 2016 TR
Gold Bitiş
25 Aralık 2026
Konu Sahibi
Windows 10 Microsoft Edge 148
Merhabalar,

Sorunumu detaylı anlatmaya çalışacağım, inşallah anlaşılır bir şekilde anlatabilirim.

Ekli dosyamda Basketbol adlı sayfada herhangi bir takıma tıklayıp TAKIM SEÇ butonuna bastığımda Ana Sayfaya o takım ile rakip takımın o tarihteki maçları ve daha önce oynanan maçları geliyor, yani Ana Sayfada 6-21. satırlar arasına ev sahibi takımın kendi evinde oynadığı son maçlar, 39-54. satırlar arasına da deplasman takımının deplasmanda oynadığı maçlar geliyor, burada sorun yok.

Yine Ana Sayfa 22-36. satırlar arasına ev sahibi takımın deplasmanda oynadığı maçlar, 55-69. satırlar arasına da deplasman takımının kendi evinde oynadığı maçlar geliyor.

Sorun şu; 22-36 ve 55-69. satırlar arasındaki maçlar B6 hücresindeki tarihten sonraki maçlar olmalı. Fakat bazı takımlarda bu olmuyor.

Örneğin;
Basketbol sayfasında 80. satırdaki Fortitudo Bologna-Tezenis Verona maçını seçtiğimde sorun yok.

Fakat şu maçlarda sorun var;

99. satırdaki Siauliai-Lietkabelis
102. satırdaki Ginebra San Miguel-Rain or Shine Painters
127. satırdaki Alba Berlin-RASTA Vechta maçları seçtiğimde 22 ve 36. satırlara B6 hücresindeki tarihten sonraki maçlar geliyor. Oysa bu satırlara B6 hücresindeki tarihten önce oynanan maçlar gelmeli.

Yardımcı olacak ustalara şimdiden teşekkür ederim.
 

Ekli dosyalar

Windows 10 Opera 131
Sorunun kaynağı, makronuzda 22–36 ve 55–69 satırlarına veri çekme işleminin “B6 hücresindeki tarihten sonraki maçlar” mantığı yerine, mevcut makroda her zaman mac_No artırarak sıradaki maçları çekmesi ile sınırlı olmasıdır. Şu anda kod şöyle çalışıyor:

mac_No = Right((S1.Range("AW" & a_sat)), 2)
If Not IsNumeric(mac_No) Then mac_No = Right((S1.Range("AW" & a_sat)), 1)
For i = 22 To 36
aranan = S2.Cells(2, "e") & "#" & mac_No
bulunanno = WorksheetFunction.Match(aranan, S1.Range("AW1:AW" & sonn), 0)
' ... veriyi kopyala ...
mac_No = mac_No + 1
Next i

Bu, sadece mac_No değerini sırayla artırarak maçları çekiyor; tarih kontrolü yok. Yani B6 tarihinden önce veya sonra olmasına bakmadan sıradaki kayıtları alıyor. Bu yüzden bazı maçlar yanlış bloklara düşüyor.

Şu anda mac_No artırarak maç çekiyorsunuz → tarih kontrolü yok.
Yapmanız gereken: döngüye tarih filtresi eklemek.
Böylece 22–36 ve 55–69 satırlara sadece B6 tarihinden önceki maçlar gelsin.
 
Windows 10 Opera 131
Deneyiniz
 

Ekli dosyalar

Konu Sahibi
Windows 10 Google Chrome 148
Cevap için teşekkürler fakat aşağıdaki hatayı veriyor.

Adsız.jpg
 
Windows 10 Opera 131
dosyayı güncelledim deneyiniz
 

Ekli dosyalar

Son düzenleme:
Konu Sahibi
Windows 10 Google Chrome 148
Üstat, Basketbol sayfasında başka bir takım seçince maçlar gelmiyor.
 
Windows 10 Opera 131
Deneyiniz sonuçlar gelmektedir
 

Ekli dosyalar

Konu Sahibi
Windows 10 Google Chrome 148
Üstat, bu son eklediğiniz dosya benim ilk mesajdaki dosyam, galiba dosyalar karışmış.
 
Windows 10 Opera 131
Sayın Mert25

7 nolu dosyayı tekrar denermisiniz
9 nolu dosyayıyıda ayrıca deneyiniz
Kontrol edip hata varsa belirtiniz
 

Ekli dosyalar

Son düzenleme:
Konu Sahibi
Windows 10 Google Chrome 148
Üstat, aşağıya 7'nolu dosya ile 9'nolu dosyanın resimlerini atıyorum, bir değişiklik yok.

7 nolu dosya
7 nolu dosya.jpg

9 nolu dosya
9 nolu dosya.jpg

Şimdi 3 maç seçmiştim, Fortitudo Bologna - Tezenis Verona maçında sorun yok, seçtiğim maçın tarihi 20.05.2026, bu takımların 22.05.2026 tarihinde oynanmamış maçı var ama Ana Sayfada bu maç gelmiyor, olması gereken bu.,
son-1.jpg

Fakat Siauliai - Lietkabelis ile Ginebra San Miguel - Rain or Shine Painters maçları da 20.05.2026 tarihinde oynanmış ve 22.05.2026 tarihinde oynanmamış maçları var, işte bu oynanmamış maçlar Ana Sayfaya gelmemeli.
son-2.jpg
 
Windows 10 Opera 131
Sorunun özü şu:
  • Ana Sayfa’da B6 tarihinden sonraki maçları getiriyoruz,
  • Ama bazı takımların önceki tarihlerde oynanmamış maçları tabloda görünmüyor olması gerekirken gelmiyor,
  • Örneğin: Fortitudo Bologna – Tezenis Verona maçında 20.05.2026 tarihi doğru şekilde gelmiş ama 22.05.2026 tarihinde oynanmamış bir maç tabloda eksik gözüküyor.
  • Siauliai – Lietkabelis ve Ginebra San Miguel – Rain or Shine Painters için ise 20.05.2026 oynanmış, 22.05.2026 oynanmamış maçlar tabloda olmamalı, olması gerekiyor ama görünmüyor.

Bunun nedeni şu: Mevcut Sub’lar >= B6 olarak filtreleme yapıyor. Yani kod şu an B6 ve sonrasını getiriyor, fakat senin istediğin:
  • Sadece seçilen maçın tarihinden sonraki oynanmamış maçları getirmek.
  • Oynanmış maçları veya farklı tarihli maçları getirmemek.
Bunu çözmek için kodu “seçilen satırın tarihinden sonraki maçlar” olarak değiştirmeliyiz, B6 hücresinden bağımsız.
 
Windows 10 Opera 131
test edip sonucu söylermisiniz
 

Ekli dosyalar

Geri
Üst