• 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
393
Çö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ış.
 
Geri
Üst