Soru Başka Sayfadan Veri Kopyalama Ve Yapıştırma Sorunu ????

Katılım
15 Aralık 2019
Mesajlar
4
Excel Vers. ve Dili
2010 - Visual Basic
Merhaba, RANDIMAN-METRE sayfasında X6 Hücresine her gün manuel olarak yazılan tarih bilgisine göre X7 ile X50 arasında yazılı olan metre " rakam" , bilgisini TEZGAH GÜN-AY ÜRETİM TAKİP Sayfasında A4 Hücresinden itibaren bütün A Sütununda yazılı olan Tarih bilgisi ile karşılaştırıp, doğru satırı bulduğunda hemen yanında bulunan B Hücresinden AS Hücresine kadar RANDIMAN-METRE Sayfasından kopyalanan 44 adet metre bilgisini değerini yapıştırmak istiyorum.
Aşağıda ki Makro ile başka bir çalışma kitabında istediğimi yapabiliyorum ama asıl çalışma kitabında Run Time 91 hatası veriyor. Sebebini anlayamadım. Yardımcı olursanız çok memnun olurum.
Not : Yukarıda asıl yapmak istediğimi anlattım. Asıl yapmak istediğimi yapamadığım için ve elimde sizin sitenizde Uzman Orion1 'in bir başkasına yardımcı olmak için yazdığı aşağıdaki Makroyu kullanabilmek adına; RANDIMAN-METRE Sayfasında ki B54 : AT54 Satırına yatay olarak almak istediğim bilgiyi kopyaladım.Aşağıda yazılı olan makroyu bu şekilde kullanmaya çalıştım. Asıl yapmak İstediğim ise yukarıda anlatığım gibi direk X sütunundan kopyalama yapmak.

Şimdiden yardımlarınız için teşekkür ederim...

Sub Makro3()
' Makro3 Makro

Dim k As Range, sonsat1 As Long, sonsat2 As Long, i As Long, sh As Worksheet
Set sh = Sheets("RANDIMAN-METRE")
Sheets("TEZGAH GÜN-AY ÜRETİM TAKİP").Select
Range("B4:AS" & Rows.Count).ClearContents
'SAYFA 2 DE Kİ YAPIŞTIRILACAK ALANI TEMİZLEME

Set sh = Sheets("RANDIMAN-METRE")
sonsat1 = sh.Cells(Rows.Count, "B").End(xlUp).Row
'SAYFA 1 DEKİ B SÜNUNUNDA Kİ SON SATIRI BULDU

sonsat2 = Cells(Rows.Count, "A").End(xlUp).Row
'SAYFA 2 DEKİ A SÜTUNUNDA Kİ SON SATIRI BULDU

Application.ScreenUpdating = False
For i = 54 To sonsat1
'SAYFA 1 DE Kİ B54 DAN B SÜNUNUNDA Kİ SON YAZILI OLAN TARİHE KADAR DÖNGÜ KURMA

Set k = Range("A2:A" & sonsat2).Find(sh.Cells(i, "B").Value, , xlValues, xlWhole)
If Not k Is Nothing Then sh.Range("C" & i & ":AS" & i).Copy
' SAYFA 1 DE KOPYALANACAK ALANI TANIMLAMA


Range("B" & k.Row).PasteSpecial xlPasteValues


' SAYFA 2 DE YAPIŞTIRMAYA BAŞLANACAK ALANIN BAŞLANGIç SÜTUNUNU TANIMLAMA

Next i
Application.ScreenUpdating = True
MsgBox "Veriler aktarıldı." & vbLf & "TEBRİKLER"

End Sub
 
Katılım
15 Aralık 2019
Mesajlar
4
Excel Vers. ve Dili
2010 - Visual Basic
Hatayı verdiği satır :

Range("B" & k.Row).PasteSpecial xlPasteValues

Ek bilgi : k değişkeni değer almıyor . Makroyu çalıştırtırıp imleci k nın üzerine getirdiğimde "noting" yazıyır.

İlgilenen ve yardımı olan herkese şimdiden tekrar teşekkür ederim.
 

EmrExcel16

Destek Ekibi
Destek Ekibi
Katılım
1 Kasım 2012
Mesajlar
1,524
Excel Vers. ve Dili
Office 365 Türkçe
Copy işlemini şart sağlanirsa yapsin demişsiniz If Not k Is Nothing Then sh.Range("C" & i & ":AS" & i).Copy ama yapıştirma işlemini Range("B" & k.Row).PasteSpecial xlPasteValues her seferinde (döngü) yapmaya çalışıyorsunuz o yüzden hata veriyor .

Find komutu değeri bulamaz ise Nothing değeri alir ,bu yüzden Range("B" & k.Row) da hata veriyor , k.Row satir numarasi olarak numerik bir değere dönmedi gerekirken Range("B" & Nothing) oluyor.
 
Katılım
12 Aralık 2019
Mesajlar
6
Excel Vers. ve Dili
2016 türkçe
İyi akşamlar tam olarak bana lazım olan makroyu yazmışsınız fakat ben kendime göre uyarlayamıyorum kod bilgim olmadığı için. Mesaj atsam yardımcı olmanız mümkün mü ya da dosyayı yüklesem?
 
Katılım
15 Aralık 2019
Mesajlar
4
Excel Vers. ve Dili
2010 - Visual Basic
Copy işlemini şart sağlanirsa yapsin demişsiniz If Not k Is Nothing Then sh.Range("C" & i & ":AS" & i).Copy ama yapıştirma işlemini Range("B" & k.Row).PasteSpecial xlPasteValues her seferinde (döngü) yapmaya çalışıyorsunuz o yüzden hata veriyor .

Find komutu değeri bulamaz ise Nothing değeri alir ,bu yüzden Range("B" & k.Row) da hata veriyor , k.Row satir numarasi olarak numerik bir değere dönmedi gerekirken Range("B" & Nothing) oluyor.
Merhaba EmrExcel16.
Öncelikle ilginize teşekkür ederim ama yazdığınız gibi hatanın orada olduğunu düşünmüyorum. Dikkat ederseniz Eğer değilse şeklinde başlıyor döngü. Aynı kod satırlarını yeni bir çalışma kitabına kopyaladığımda çalışıyor. Benim çalıştırmak istediğim kitapta ise en az 20 sayfa var. Bana tanımlamada eksik birşey yapıyormuşum gibi geliyor. Mümkünse yanlış olan kod satırının yerine ne yazmam gerektiğini yazabilir misiniz ?
 
Katılım
15 Aralık 2019
Mesajlar
4
Excel Vers. ve Dili
2010 - Visual Basic
Copy işlemini şart sağlanirsa yapsin demişsiniz If Not k Is Nothing Then sh.Range("C" & i & ":AS" & i).Copy ama yapıştirma işlemini Range("B" & k.Row).PasteSpecial xlPasteValues her seferinde (döngü) yapmaya çalışıyorsunuz o yüzden hata veriyor .

Find komutu değeri bulamaz ise Nothing değeri alir ,bu yüzden Range("B" & k.Row) da hata veriyor , k.Row satir numarasi olarak numerik bir değere dönmedi gerekirken Range("B" & Nothing) oluyor.
Tekrar Merhaba.
Yazdığınızı iyice düşününce sorunun ne olduğunu anladım. Dediğiniz gibi arama yaptırdığım hücreleri TARİH hücresi olarak tanımlamıştım. Bu yüzden Noting oluyormuş. Sadece işlem yaptırdığım hücreleri GENEL olarak tanımlayınca sorun düzeldi. Kod Listesinde hiçbir değişiklik yapmadan çalışmış oldu. Dolaylı olarak da olsa kayıt işlemini gerçekleştirmiş oldum. Teşekkür ederim.
 

EmrExcel16

Destek Ekibi
Destek Ekibi
Katılım
1 Kasım 2012
Mesajlar
1,524
Excel Vers. ve Dili
Office 365 Türkçe
Tekrar Merhaba.
Yazdığınızı iyice düşününce sorunun ne olduğunu anladım. Dediğiniz gibi arama yaptırdığım hücreleri TARİH hücresi olarak tanımlamıştım. Bu yüzden Noting oluyormuş. Sadece işlem yaptırdığım hücreleri GENEL olarak tanımlayınca sorun düzeldi. Kod Listesinde hiçbir değişiklik yapmadan çalışmış oldu. Dolaylı olarak da olsa kayıt işlemini gerçekleştirmiş oldum. Teşekkür ederim.
Rica ederim , iyi çalışmalar.
 
Üst