Findnext yardım

kadir78

Altın Üye
Katılım
6 Nisan 2016
Mesajlar
227
Excel Vers. ve Dili
office 2019
Altın Üyelik Bitiş Tarihi
30-12-2026
İyi günler aşağıdaki kodlar ile C2 hücresinde aranan değeri veri sayfasında c sütununda bularak, anasayfa içindeki belirli hücrelere eşitlemek istiyorum fakat çok denemeler yaptım olmuyor. Bu findnext olayını çözemedim. Yardım edermisiniz lütfen.

Kod:
Set sa = sheets("anasayfa")
Set sv = sheets("veri")
aranan = sa.range("C2").value
i = 0

With sa.range("C2")
Set c = .find(aranan)
if not c is nothing then
adr = c.address

Do

On error goto bitir

i  = i + 1

if i = 1 then
sv.select
sv.range("C:C").find(c).select
bul = activecell.row
sa.range("C3").value = sv.cells(bul, 4)
sa.range("C4").value = sv.cells(bul, 5)
sa.range("C5").value = sv.cells(bul, 6)
sa.range("C6").value = sv.cells(bul, 7)
End if

if i = 2 then
sv.select
sv.range("C:C").find(c).select
bul = activecell.row
sa.range("C8").value = sv.cells(bul, 4)
sa.range("C9").value = sv.cells(bul, 5)
sa.range("C10").value = sv.cells(bul, 6)
sa.range("C11").value = sv.cells(bul, 7)
End if

if i = 3 then
sv.select
sv.range("C:C").find(c).select
bul = activecell.row
sa.range("C13").value = sv.cells(bul, 4)
sa.range("C14").value = sv.cells(bul, 5)
sa.range("C15").value = sv.cells(bul, 6)
sa.range("C16").value = sv.cells(bul, 7)
End if

Set c = .findnext(c)
Loop while c.address <> adr

End if

End with

bitir:
 
Son düzenleme:

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,269
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Ek olarak Select komutunu kullanmak performans kaybına yol açacaktır.

Bu komutu kullanmadan da işlemleri çözebilirsiniz.
 

kadir78

Altın Üye
Katılım
6 Nisan 2016
Mesajlar
227
Excel Vers. ve Dili
office 2019
Altın Üyelik Bitiş Tarihi
30-12-2026
Ben bu findnext olayını tam olarak çözemedim. Kusuruma bakmayın. Haklısınız arama alanını yanlış yazmışım. 🤕
 
Katılım
12 Aralık 2015
Mesajlar
1,207
Excel Vers. ve Dili
Türkçe Ofis 2007
Kodlarınıza göre, i değerini sabite bağlamışsın, hep 1 olur, 2 ve 3 hiçbir zaman olmaz. i değerini nereden alması gerek.
 

kadir78

Altın Üye
Katılım
6 Nisan 2016
Mesajlar
227
Excel Vers. ve Dili
office 2019
Altın Üyelik Bitiş Tarihi
30-12-2026
i degerini ikinci ve üçüncü if değerlerini çalıştırmak için yazdım. Bu findnext cok karışık anlayamadım. İlk if değeri çalışıyor ikinci ve üçüncü if değerlerini çalıştırmak icin i +1 yazdım. Ben acemiyim biraz makro konusunda kusuruma bakmayın. İkinci ve üçüncü if değerlerini çalıştırmak için baska bir yol bulamadım. Buradaki amaç veri sayfasında C sütununda aynı degerler var bu aynı değerlerin farklı ürün özellikleri farklı hücrelerde yazılı. Bundan dolayı findnext kullanmaya çalışıyorum.
 
Son düzenleme:
Katılım
12 Aralık 2015
Mesajlar
1,207
Excel Vers. ve Dili
Türkçe Ofis 2007
Konuyu tam anlamadım, aranan değeri C2 hücresinden alıyor, i değerini de başka bir hücreden aldırsanız olmuyor mu?
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,269
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Örnek dosya örnek dosya diye bağırıyor soru?
 
Katılım
12 Aralık 2015
Mesajlar
1,207
Excel Vers. ve Dili
Türkçe Ofis 2007
Basit bir findnext kullanım örneği.
Kod:
Sub Makro3()
    Set A = Range("A2:A50").Find(What:="Ali")
For i = 1 To Application.CountIf(Range("A2:A50"), "Ali")
Range("A2:A50").findnext(After:=ActiveCell).Activate
MsgBox ActiveCell.Address
  Next
End Sub
 

kadir78

Altın Üye
Katılım
6 Nisan 2016
Mesajlar
227
Excel Vers. ve Dili
office 2019
Altın Üyelik Bitiş Tarihi
30-12-2026
Saygıdeğer ustalarım, hocalarım hepinizden özür dilerim. Çalıştığım bilgisayarda internet bağlantısı bulunmuyor bundan dolayı cep telefonundan yazıyorum. Örnek dosya ekleyemedim. Örnek dosya şart fakat imkanım yok tekrar özür dilerim, kusurama bakmayın.
 
Üst