• DİKKAT

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

Son satır

Katılım
24 Kasım 2007
Mesajlar
769
Excel Vers. ve Dili
Office 365 - Türkçe
Merhaba

sonsatir = s2.Range("A65536").End(xlUp).Row
Son dolu satır eğer "A1" hücresi ise o zaman yapıştırma işlemini Row+1 olan "A2" hücresinden değilde "A3" hücresinden başla demem lazım

Aşağıdaki kodu ekledim, çalıştıramadım, nerede hata yapıyorum

if s2.Range("A65536").End(xlUp).Row = s2.Range("A1") Then
son satir = s2.Range("A65536").End(xlUp).Row + 2
else
son satir = s2.Range("A65536").End(xlUp).Row + 1
end if



Kod:
Sub Copy()
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual

Set s1 = ThisWorkbook.Worksheets("=")
Set s2 = ThisWorkbook.Worksheets("rapor")
sonsatir = s2.Range("A65536").End(xlUp).Row + 1
For i = 3 To Sheets("=").Cells(Rows.Count, "B").End(xlUp).Row

    If Sheets("=").Cells(i, 1).Value <> Sheets("=").Cells(i, 3).Value Then
        s2.Cells(sonsatir, 1) = s1.Cells(i, 1)
        s2.Cells(sonsatir, 2) = s1.Cells(i, 2)
        s2.Cells(sonsatir, 3) = s1.Cells(i, 3)
        s2.Cells(sonsatir, 4) = s1.Cells(i, 4)
    End If

Next i
End Sub
 
Merhaba,

Yanlış anlamış da olabilirim.

Siz her durumda işlemi 3. satırdan mı başlatacaksınız.

Bu durumda;

sonsatir = s2.Range("A65536").End(xlUp).Row + 1

yerine;

sonsatir = 3

-----------------------------------------
End if satırından önce;

sonsatir = sonsatir + 1

eklemeniz yeterli.

--------------------------------------------

Eğer işlemi dolu satırın altına devam ettirekcekseniz.

if s2.Range("A65536").End(xlUp).Row = s2.Range("A1") Then
son satir = s2.Range("A65536").End(xlUp).Row + 2
else
son satir = s2.Range("A65536").End(xlUp).Row + 1
end if

Kırmızı bölüme 1 yazmanız gerekir.

Yalnız;

End if satırından önce;

sonsatir = sonsatir + 1

İlavesini yinede yapmanız gerekir. Çünkü bu şartı döngü dışında kurmuşsunuz.

.
 
Kod:
[COLOR="Red"]if s2.Range("A65536").End(xlUp).Row[/COLOR] = s2.Range("A1") Then
Kodun kırmızı bölümüyle son dolu satırın numarasını buluyoruz. Yani 1, 3, 100 gibi bir sayı buluyoruz.

Siz o satırda bu sayının A1'e eşit olma durumunu sorguluyorsunuz. Yani 1=A1 ise diyorsunuz. Bu da A1'de yazan değerle 1'in karşılaştırılması oluyor. A1'de "Ali" yazıyorsa sorgu 1="Ali" olarak yapılıyor ve doğal olarak istediğiniz sonucu alamıyorsunuz.

Kod ya şöyle olmalı

Kod:
if s2.Range("A65536").End(xlUp).Row = 1 Then
ya da

Kod:
if s2.Range("A65536").End(xlUp).Row = s2.Range("A1").Row Then
Olmalı.
 
sayın ömer bey ve sayın yusuf44, ikinize de ayrı ayrı teşekkür ediyorum

if s2.Range("A65536").End(xlUp).Row = 1 Then olayında hata yapmışım, sizinde dediğiniz gibi

"sonsatir = sonsatir + 1" kodu vardı, kendi sayfamda ama forum sayfasını ekleme sırasında, düzenleme yaparken silmişim
 
Geri
Üst