Makro ile kopyalamada hata

Katılım
9 Ocak 2009
Mesajlar
2
Excel Vers. ve Dili
TÜRKÇE
Selam arkadaşlar;
Alttaki yazılı olan makroda, sayfa2 den kopyalama yaparken sayfa4 te boş satırı bulup değerleri yazması gerekiyor. Fakat kopylama sırasında daha önce kopyaladığı satırların en son satırının üzerinden yazmaya başlıyor.
Yardımlarınızı rica ederim.



Sub kopyala()
'Fatura Listesini kontrol Et ve Son Satıra Git
Dim vRow As Double
Dim i As Integer
vRow = 2
'Boş Satır Bulunuyor

While Sayfa4.Cells(vRow + 1, 2) <> ""
vRow = vRow + 1

Wend

For i = 13 To 36
aMalKod = Sayfa2.Cells(i, 2)
If Len(aMalKod) <> 0 Then
Sayfa4.Cells(vRow, 2) = Sayfa2.Cells(i, 2)
Sayfa4.Cells(vRow, 3) = Sayfa2.Cells(i, 3)
Sayfa4.Cells(vRow, 4) = Sayfa2.Cells(i, 4)
Sayfa4.Cells(vRow, 5) = Sayfa2.Cells(i, 5)
Sayfa4.Cells(vRow, 6) = Sayfa2.Cells(i, 6)
Sayfa4.Cells(vRow, 7) = Sayfa2.Cells(i, 7)
Sayfa4.Cells(vRow, 9) = Sayfa2.Cells(i, 8)
Sayfa4.Cells(vRow, 11) = Sayfa2.Cells(i, 9)
vRow = vRow + 1

End If
 

Mahmut Kök

Özel Üye
Katılım
14 Temmuz 2006
Mesajlar
878
Excel Vers. ve Dili
Excel 2007 - Türkçe
'Boş Satır Bulunuyor

While Sayfa4.Cells(vRow + 1, 2) <> ""
vRow = vRow + 1

Wend

Buradaki koda göre vRow'dan bir sonraki satırın boş olduğunu anlıyoruz. vRow'dan bir sonraki satır boş olduğuna göre demek ki vRow doludur. Sonranki kodlarda da vRow+1 olarak kullanmanız gerekir. +1 yazmazsanız en son dolu satırı belirtmiş olursunuz. Yukarıdaki örnekteki ya kırmızı renkle yazılmış olan +1'i silin ya da döngü dışına da vRow = vRow + 1 satırı eklemeyi deneyin.
 
Katılım
9 Ocak 2009
Mesajlar
2
Excel Vers. ve Dili
TÜRKÇE
TEŞEKKÜRLER ALTTAKİ KOD İLE DOĞRU ÇALIŞTI

Sub kopyala()
'Fatura Listesini kontrol Et ve Son Satıra Git
Dim Row As Double
Dim i As Integer
Row = 2
'Boş Satır Bulunuyor

While Sayfa4.Cells(Row, 2) <> ""
Row = Row + 1

Wend

For i = 13 To 36
aMalKod = Sayfa2.Cells(i, 2)
If Len(aMalKod) <> 0 Then
Sayfa4.Cells(Row, 2) = Sayfa2.Cells(i, 2)
Sayfa4.Cells(Row, 3) = Sayfa2.Cells(i, 3)
Sayfa4.Cells(Row, 4) = Sayfa2.Cells(i, 4)
Sayfa4.Cells(Row, 5) = Sayfa2.Cells(i, 5)
Sayfa4.Cells(Row, 6) = Sayfa2.Cells(i, 6)
Sayfa4.Cells(Row, 7) = Sayfa2.Cells(i, 7)
Sayfa4.Cells(Row, 9) = Sayfa2.Cells(i, 8)
Sayfa4.Cells(Row, 11) = Sayfa2.Cells(i, 9)
Sayfa4.Cells(Row, 12) = Sayfa2.Cells(i, 10)

Row = Row + 1

End If
 
Üst