• DİKKAT

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

If Kullanımı

Katılım
21 Şubat 2013
Mesajlar
33
Excel Vers. ve Dili
Excel 2013 - Eng
Arkadaşlar merhaba,
Aşağıdaki kod;
- fb1 sheet'inde bulunan koordinatları,
- fb2 sheet'inde arıyor.
- ve uzaklığa göre finalist tablosunda sıralıyor.

Burda handikapım şu ki, herhangi bir uzaklık sınırı olmadan her fb1 verisi için tüm fb2 leri yazıyor. Benim isteğim sonuç mesafesi (distance) 5'in altında olanları yazsın, eğer üstünde ise işlem yapmasın.

Bunu yaparak hızlandırmayı düşünüyorum programı. Tahminim If ile yapabilirim bunu, ancak nasıl? :)

Teşekkürler.



Kod:
Sub deneme()
fb1count = InputBox("ozel")
fb2count = InputBox("genel")

ActiveWorkbook.Sheets("fb1").Activate
Range("a2").Select
finalcounter = 1

For i = 1 To fb1count
    fb1code = ActiveWorkbook.Sheets("fb1").Cells(i + 1, 2).Value
    fb1name = ActiveWorkbook.Sheets("fb1").Cells(i + 1, 3).Value
    fb1x = Trim(ActiveWorkbook.Sheets("fb1").Cells(i + 1, 5).Value)
    fb1y = Trim(ActiveWorkbook.Sheets("fb1").Cells(i + 1, 6).Value)
    
    ActiveWorkbook.Sheets("fb1").Range("n2").Value = fb1x
    ActiveWorkbook.Sheets("fb1").Range("o2").Value = fb1y
    
    For t = 1 To fb2count
        fb2code = ActiveWorkbook.Sheets("fb2").Cells(t + 1, 2).Value
        fb2name = ActiveWorkbook.Sheets("fb2").Cells(t + 1, 3).Value
        fb2x = RTrim(ActiveWorkbook.Sheets("fb2").Cells(t + 1, 5).Value)
        fb2y = Trim(ActiveWorkbook.Sheets("fb2").Cells(t + 1, 6).Value)
        
        ActiveWorkbook.Sheets("fb1").Range("n3").Value = fb2x
        ActiveWorkbook.Sheets("fb1").Range("o3").Value = fb2y
        
        distance = ActiveWorkbook.Sheets("fb1").Range("q2").Value
                    
      
       
        
        ActiveWorkbook.Sheets("Finallist").Cells(finalcounter + 1, 1).Value = fb1code
        ActiveWorkbook.Sheets("Finallist").Cells(finalcounter + 1, 2).Value = fb1name
        ActiveWorkbook.Sheets("Finallist").Cells(finalcounter + 1, 3).Value = fb1x
        ActiveWorkbook.Sheets("Finallist").Cells(finalcounter + 1, 4).Value = fb1y
        ActiveWorkbook.Sheets("Finallist").Cells(finalcounter + 1, 5).Value = fb2code
        ActiveWorkbook.Sheets("Finallist").Cells(finalcounter + 1, 6).Value = fb2name
        ActiveWorkbook.Sheets("Finallist").Cells(finalcounter + 1, 7).Value = fb2x
        ActiveWorkbook.Sheets("Finallist").Cells(finalcounter + 1, 8).Value = fb2y
        ActiveWorkbook.Sheets("Finallist").Cells(finalcounter + 1, 9).Value = distance
        
        finalcounter = finalcounter + 1
       
        
        
       
    Next t
    t = 1
Next i

MsgBox ("Finished")

End Sub
 
bu kod bir şey aramıyor.

bazı hücre değerlerini değişkenlere atıyor, sonra bu atanan değişkenleri başka hücrelere yazıyor.

örnek bir dosya ekleyin. veriler bunlar deyin. kod çalıştıktan sonra böyle olmasını istiyorum diyerek son halini de ekleyin.

ayrıca bu hali ile de kodlar etkin değil. kısaltılabilir ve performans artırılabilir.

ben böyle klasın istiyorum derseniz, distance'a değer atadıktan sonraki satıra If distance < 5 Then yazın ve koşul sağlandıktan sonra yapılacakların hemen alt satırına End If yazarak if blokunu kapatın.
 
ben böyle klasın istiyorum derseniz, distance'a değer atadıktan sonraki satıra If distance < 5 Then yazın ve koşul sağlandıktan sonra yapılacakların hemen alt satırına End If yazarak if blokunu kapatın.

öncelikle teşekkür ederim,
bahsettiğiniz şekilde istediğim oldu, ancak nasıl daha arttırabilirim mesela performansı?
 
Geri
Üst