Mehmet Sait
Altın Üye
- Katılım
- 19 Ekim 2009
- Mesajlar
- 840
- Excel Vers. ve Dili
- Office 2016 TR
DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
Altın Üyelik Hakkında Bilgi
Dosyanızı dosya.tc gibi bir siteye upload ederseniz yardımcı olmaya çalışayım
Sub VeriyeGoreKopya()
Dim Bul As Range
Set Bul = Range("K:K").Find(Range("$D$3"), , , xlWhole)
If Not Bul Is Nothing Then
Range("[COLOR="Red"]C6:G6[/COLOR]").Copy
Cells(Bul.Row, "L").Select
ActiveSheet.Paste
End If
MsgBox "İşleminiz tamamlanmıştır.", vbInformation
End Sub
[FONT="Arial Narrow"]Sub VeriyeGoreKopya()
Dim Bul As Range
Set Bul = Range("K:K").Find(Range("$D$3"), , , xlWhole)
If Not Bul Is Nothing Then Range("C6:G6").Copy Cells(Bul.Row, "L")
MsgBox "İşleminiz tamamlanmıştır.", vbInformation, "[COLOR="Navy"][B]TEGCreative[/B][/COLOR]"
End Sub[/FONT]
Sub KOPYALA()
[COLOR="blue"]Sheets("Sayfa[B]1[/B]").Range("A2:B4").Copy Sheets("Sayfa[B]2[/B]").Range("A2")[/COLOR]
[COLOR="Red"]Sheets("Sayfa[B]1[/B]").Range("A2:B4").Copy
Sheets("Sayfa[B]2[/B]").Activate
Sheets("Sayfa[B]2[/B]").Range("A2").Select
ActiveSheet.Paste
Application.CutCopyMode = False[/COLOR]
End Sub
Estağfurullah, öğretmek fazla iddialı olur.
Tecrübe aktarmak denilebilir en fazla.
Copy BOŞLUK adres ENTER
bu yöntem yanlış hatırlamıyorsam DOS ortamındaki komutlar zamanından beri var.
Özellikle select için şunu söyleyeyim.
Select ile hücre seçmeyi öngördüğünüzde, ilgili sayfanın da aktif sayfa olması gerekir.
Bir'den fazla sayfada işlem yapan kod oluşturulduğunda,
-- alan.seç
-- alan kopyala
-- yapıştırılacak sayfa.activate
-- yapıştırılacak hücre.select
-- yapıştır
-- son olarak da ponoyu boşalt
işlemleri yerine (kırmızı kısım)
tek satırlık kod ile (mavi satır)
bu işlem gerçekleşebilir.
.Kod:Sub KOPYALA() [COLOR="blue"]Sheets("Sayfa[B]1[/B]").Range("A2:B4").Copy Sheets("Sayfa[B]2[/B]").Range("A2")[/COLOR] [COLOR="Red"]Sheets("Sayfa[B]1[/B]").Range("A2:B4").Copy Sheets("Sayfa[B]2[/B]").Activate Sheets("Sayfa[B]2[/B]").Range("A2").Select ActiveSheet.Paste Application.CutCopyMode = False[/COLOR] End Sub
[FONT="Arial Narrow"][COLOR="Blue"]Sheets("Sayfa2").[H1] = Sheets("Sayfa1").[R14][/COLOR]
[COLOR="Red"]Sheets("Sayfa1").[R11:R14].Copy[B][COLOR="Black"]:[/COLOR][/B] Sheets("Sayfa2").[H1].PasteSpecial Paste:=xlPasteValues
[COLOR="Black"]veya[/COLOR]
Sheets("Sayfa2").[H1:H4].Value = Sheets("Sayfa1").[R11:R14].Value
[/COLOR][/FONT]
Merhaba ; aşağıdaki kodu dener misiniz ?
Kod:Sub VeriyeGoreKopya() Dim Bul As Range Set Bul = Range("K:K").Find(Range("$D$3"), , , xlWhole) If Not Bul Is Nothing Then Range("[COLOR="Red"]C6:G6[/COLOR]").Copy Cells(Bul.Row, "L").Select ActiveSheet.Paste End If MsgBox "İşleminiz tamamlanmıştır.", vbInformation End Sub
Merhaba.
Umarım yanlış anlaşılmıyorumdur.
Sayın TEGCreative'nin verdiği kod'u aşağıdaki şekilde değiştirince sonuç yine aynı olur.
Select veya Activate gibi kod satırlarını mümkün olduğunca kullanılmaması yerinde olur diye düşünüyorum.
.Kod:[FONT="Arial Narrow"]Sub VeriyeGoreKopya() Dim Bul As Range Set Bul = Range("K:K").Find(Range("$D$3"), , , xlWhole) If Not Bul Is Nothing Then Range("C6:G6").Copy Cells(Bul.Row, "L") MsgBox "İşleminiz tamamlanmıştır.", vbInformation, "[COLOR="Navy"][B]TEGCreative[/B][/COLOR]" End Sub[/FONT]
Merhaba.
Başka şekillerde de çözümü vardır sanırım ama benim tercihim;
-- verinin alınacağı ve aktarılacağı adres birer hücre ise, copy -> pastespecial) yerine mavi olan satır gibi,
-- öyle değilse de,
.... bir'den fazla kod satırını : karakteriyle (aslında işlem tek işlem değil,
sadece görüntüde tek satır) birleştirerek tek satırmış gibi (ilk kırmızı satır)
.... veya eşit alanlar arasında yapıştırma yapılacaksa da ikinci kırmızı satır gibi yazmak olur.
Ayrıca; copy -> paste/paste special yerine diğer yöntemin (hücre/hücre aralığı = hücre/hücre aralığı yöntemi) asıl farkınınKod:[FONT="Arial Narrow"][COLOR="Blue"]Sheets("Sayfa2").[H1] = Sheets("Sayfa1").[R14][/COLOR] [COLOR="Red"]Sheets("Sayfa1").[R11:R14].Copy[B][COLOR="Black"]:[/COLOR][/B] Sheets("Sayfa2").[H1].PasteSpecial Paste:=xlPasteValues [COLOR="Black"]veya[/COLOR] Sheets("Sayfa2").[H1:H4].Value = Sheets("Sayfa1").[R11:R14].Value [/COLOR][/FONT]
kod'un çalışma hızı olacağını düşünüyorum, büyük veri yığınlarında deneyerek görmek gerek sanırım.
.
Sheets("Sayfa1").[R11:R14].Copy: Sheets("Sayfa2").[H1].PasteSpecial Paste:=xlPasteValues
Merhaba.
Umarım yanlış anlaşılmıyorumdur.
Sayın TEGCreative'nin verdiği kod'u aşağıdaki şekilde değiştirince sonuç yine aynı olur.
Select veya Activate gibi kod satırlarını mümkün olduğunca kullanılmaması yerinde olur diye düşünüyorum.
.Kod:[FONT="Arial Narrow"]Sub VeriyeGoreKopya() Dim Bul As Range Set Bul = Range("K:K").Find(Range("$D$3"), , , xlWhole) If Not Bul Is Nothing Then Range("C6:G6").Copy Cells(Bul.Row, "L") MsgBox "İşleminiz tamamlanmıştır.", vbInformation, "[COLOR="Navy"][B]TEGCreative[/B][/COLOR]" End Sub[/FONT]
[FONT="Arial Narrow"]Sub VeriyeGoreKopya()
Dim Bul As Range
Set Bul = Range("K:K").Find(Range("$D$3"), , , xlWhole)
If Not Bul Is Nothing Then Range(Cells(Bul.Row, "L"), Cells(Bul.Row, "P")).Value = Range("C6:G6").Value
MsgBox "İşleminiz tamamlanmıştır."
End Sub[/FONT]
Tekrar merhaba.
En iyisi aşağıdaki kodu kullanın.
.Kod:[FONT="Arial Narrow"]Sub VeriyeGoreKopya() Dim Bul As Range Set Bul = Range("K:K").Find(Range("$D$3"), , , xlWhole) If Not Bul Is Nothing Then Range(Cells(Bul.Row, "L"), Cells(Bul.Row, "P")).Value = Range("C6:G6").Value MsgBox "İşleminiz tamamlanmıştır." End Sub[/FONT]