Döngüyü sonlandırma

Katılım
31 Ocak 2007
Mesajlar
228
Excel Vers. ve Dili
office xp tr
İki veri aralığında bir birine denk olan verileri buldurup ilgili hücrelerin bir sağına aldırmak istiyorum fakat döngü dönüp duruyor oysa aa40 'a geldiğinde durmalı.
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
For Each bul In Range("AA20:AA40")
For Each bul2 In Range("AE20:AE39")
If bul.Value = bul2.Value Then
bul2.Offset(0, 1).Copy
bul.Offset(0, 1).PasteSpecial
End If
Next
Next
End Sub
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,058
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Change olayına yazdığınız kod her paste olayından sonra tekrar tetiklendiğinden döngüyü her seferinde tekrar baştan başlatır. Kodunuza aşağıdaki mavi renkli satırları ilave edip deneyebilirsiniz. Yada döngünün çalışacağı aralığı intersect komutu ile kod başında tanımlayabilirsiniz.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
[B][COLOR=blue]application.enableevents=false[/COLOR][/B]
On Error Resume Next
For Each bul In Range("AA20:AA40")
For Each bul2 In Range("AE20:AE39")
If bul.Value = bul2.Value Then
bul2.Offset(0, 1).Copy
bul.Offset(0, 1).PasteSpecial
End If
Next
Next
[COLOR=blue][B]application.enabledevents=true[/B][/COLOR]
End Sub
veya

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
[B][COLOR=blue]if intersect(target,[aa:aa]) is nothing then exit sub
[/COLOR][/B]On Error Resume Next
For Each bul In Range("AA20:AA40")
For Each bul2 In Range("AE20:AE39")
If bul.Value = bul2.Value Then
bul2.Offset(0, 1).Copy
bul.Offset(0, 1).PasteSpecial
End If
Next
Next
End Sub
 
Katılım
31 Ocak 2007
Mesajlar
228
Excel Vers. ve Dili
office xp tr
Saygı değer leventm çok teşşekür ederim.
 
Üst