walabi
Altın Üye
- Katılım
- 22 Eylül 2012
- Mesajlar
- 950
- Excel Vers. ve Dili
-
excel 2010
excel 2013
- Altın Üyelik Bitiş Tarihi
- 06-08-2025
Merhaba,
Aşağıdaki kod aralığının ilki ile bir sayfadan diğer sayfaya "R" sütununda "KAPALI" yazan hücrelere bakarak kapalı yazan satırları diğer sayfaya sırasıyla aktarıyorum.
İkinci kod aralığında ise s1.Range("A65536").End(3).Row yerine sonsat1 , s2.Range("A65536").End(3).Row yerine sonsat2 tanımlamalarını kullandım. Bu durumda aktarılan satır tek satır olarak görünüyor. Döngüye giren veriler sürekli üst üste yazmış oluyor.
İki kodun farklı çalışmasının sebebi nedir???
Aşağıdaki kod aralığının ilki ile bir sayfadan diğer sayfaya "R" sütununda "KAPALI" yazan hücrelere bakarak kapalı yazan satırları diğer sayfaya sırasıyla aktarıyorum.
İkinci kod aralığında ise s1.Range("A65536").End(3).Row yerine sonsat1 , s2.Range("A65536").End(3).Row yerine sonsat2 tanımlamalarını kullandım. Bu durumda aktarılan satır tek satır olarak görünüyor. Döngüye giren veriler sürekli üst üste yazmış oluyor.
İki kodun farklı çalışmasının sebebi nedir???
Kod:
Sub AKTAR()
'Application.ScreenUpdating = False
'**************** AKTARIM KODLARI **************
Dim s1 As Worksheet
Dim s2 As Worksheet
Dim sonsat1 As Long
Dim sonsat2 As Long
Dim i As Integer
Dim k As Integer
Set s1 = Sheets("VERİ")
Set s2 = Sheets("KAPANAN_SİPARİŞLER")
sonsat1 = s1.Range("A65536").End(3).Row
sonsat2 = s2.Range("A65536").End(3).Row
For i = 2 To s1.Range("A65536").End(3).Row
satir = s2.Range("A65536").End(3).Row + 1
If UCase(Replace(Replace(s1.Range("R" & i), "ı", "I"), "i", "İ")) = "KAPALI" Then
For k = 1 To 26
s2.Cells(satir, k) = s1.Cells(i, k)
Next k
End If
Next i
'Application.ScreenUpdating = False
End Sub
Kod:
Sub AKTAR_2()
'Application.ScreenUpdating = False
'**************** AKTARIM KODLARI **************
Dim s1 As Worksheet
Dim s2 As Worksheet
Dim sonsat1 As Long
Dim sonsat2 As Long
Dim i As Integer
Dim k As Integer
Set s1 = Sheets("VERİ")
Set s2 = Sheets("KAPANAN_SİPARİŞLER")
sonsat1 = s1.Range("A65536").End(3).Row
sonsat2 = s2.Range("A65536").End(3).Row
For i = 2 To sonsat1
satir = sonsat2 + 1
If s1.Cells(i, "R") = "KAPALI" Then
For k = 1 To 26
s2.Cells(satir, k) = s1.Cells(i, k)
Next k
End If
Next i
End Sub