• DİKKAT

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

Sütunları kopyalarken, istediğim satırlar kopyalanmasın

  • Konbuyu başlatan Konbuyu başlatan INSMUH
  • Başlangıç tarihi Başlangıç tarihi
Katılım
18 Ağustos 2005
Mesajlar
85
Excel Vers. ve Dili
EXCEL 2003
Merhaba;
Kod:
Sub sütunkopyalaC()
If MsgBox("Bir önceki imalat tutarı kopyalanacak?", vbYesNo) = vbNo Then Exit Sub
Application.ScreenUpdating = False
Sheets("C").Range("R10:R45").Copy
Sheets("C").Range("S10:S45").PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
Application.ScreenUpdating = True
MsgBox ("Bir önceki hakediş olarak kopyalandı!")
End Sub
Yukarıdaki kodda R10:R45 arası değerlerim S10:S45'e kopyalanıyor ben R19 ve R40..vs. kopyalanmasını istemiyorum.
İstemiyorum istemesinede bu nasıl olacak?
İyi Çalışmalar.
 
aynı satırlara kopyalamasını istiyorsan parça parça kopyalamalısın
 
Kopyalamak istemediğiniz satırları gizleyin ve aşağıdaki kodu çalıştırın.

[vb:1:aaadb26194]Sub sütunkopyalaC()
If MsgBox("Bir önceki imalat tutarı kopyalanacak?", vbYesNo) = vbNo Then Exit Sub
Application.ScreenUpdating = False
Sheets("C").Range("R10:R45").SpecialCells(xlCellTypeVisible).Copy
Sheets("C").Range("S10").PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
Application.ScreenUpdating = True
MsgBox ("Bir önceki hakediş olarak kopyalandı!")
End Sub
[/vb:1:aaadb26194]
 
Eğer yazılmasını istemediğiniz satırların boş kalmasını isterseniz bu durumdada aşağıdaki kodu deneyin. Yine kopyalanmasını istemediğiniz satırları gizlemeniz gerekiyor.

[vb:1:ad2a4903af]Sub sütunkopyalaC()
If MsgBox("Bir önceki imalat tutarı kopyalanacak?", vbYesNo) = vbNo Then Exit Sub
For a = 10 To 45
deg = Sheets("C").Cells(a, "r")
If Sheets("C").Cells(a, "r").EntireRow.Hidden = True Then deg = ""
Sheets("C").Cells(a, "s") = deg
Next
MsgBox ("Bir önceki hakediş olarak kopyalandı!")
End Sub[/vb:1:ad2a4903af]
 
leventm, teşekkür ederim.
ancak satır gizleme olmadan bu işi halletmem gerekiyor.
Vaktiniz olursa ek deki dosya da sorumu daha açıklayıcı anlattım.
Kolay gelsin,
 
niye kopyalamayla uğraştığını anlayamadım, direkt olarak sonucu aktar
[vb:1:f74306b8f7]
Sub sütunkopyalaC()
If MsgBox("Bir önceki imalat tutarı kopyalanacak?", vbYesNo) = vbNo Then Exit Sub
Application.ScreenUpdating = False
For x = 5 To 12
If x = 8 Then GoTo atla
Cells(x, 5) = Cells(x, 4)
atla:
Next x
MsgBox ("Bir önceki hakediş olarak kopyalandı!")
End Sub[/vb:1:f74306b8f7]
 
Neden kopyalamak zorundayım? şöyle izah edeyim,
Ek de gönderdiğim dosyada işlem sırasına göre anlatmam gerkirse;
1- C sütünuna değer giriyorum ve D sütunu işlem yapıyor
2- D sütununu E sütununa kopyalıyorum
3- C sütununa tekrar değer giriyorum ve D sütunu işlem yapıyor
4- D sütunun son hali ve ara toplamları E sütunu ile karşılaştırıyorum, aradaki farklardanda işin ilerleme %'si çıkıyor. C sütununa haftada bir değerleri güncelliyorum.
Sorunda zaten bu noktada. tamamını kopyalarsam E sütunundaki değerler değişeceği için ara toplamlarda değişiyor, dolayısıyla grafik sayfasına aldığım değerlerde...
İyi çalışmalar.
 
tamamını kopyalarsam E sütunundaki değerler değişeceği için ara toplamlarda değişiyor, dolayısıyla grafik sayfasına aldığım değerlerde...
Zaten yukarıda döngü ile yapılan kodlama örnekleri tamda bu isteğinizi karşılıyor, bu döngüler ile sadece verileri aktarırsınız, formülleri değil.
 
Sn:leventm, Sn:veyselemre, vermiş olduğunuz kodlara aralıkları ekleyerek istediğim gibi oldu.
Teşekkürler, İyi çalışmalar. :arkadas:
 
Geri
Üst