• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Findnext yardım

  • Konbuyu başlatan Konbuyu başlatan kadir78
  • Başlangıç tarihi Başlangıç tarihi

kadir78

Altın Üye
Katılım
6 Nisan 2016
Mesajlar
227
Excel Vers. ve Dili
office 2019
İ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:
Ek olarak Select komutunu kullanmak performans kaybına yol açacaktır.

Bu komutu kullanmadan da işlemleri çözebilirsiniz.
 
Ben bu findnext olayını tam olarak çözemedim. Kusuruma bakmayın. Haklısınız arama alanını yanlış yazmışım. ?
 
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.
 
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:
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?
 
Örnek dosya örnek dosya diye bağırıyor soru?
 
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
 
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.
 
Geri
Üst