işlem yapılan satırları başka bir sayfaya yapıştırmak??

udentr2002

Altın Üye
Katılım
5 Kasım 2006
Mesajlar
1,503
Excel Vers. ve Dili
iş yerinde Office 365
evde Office 365
Altın Üyelik Bitiş Tarihi
25-12-2029
Merhaba arkadaşlar ekli dosyada da anlatmaya çalıştım Emir_Cıktı sayfasında butona bastığımzda çalışan kodların işlem yaptığı satırları kopyalayıp Rapor sayfasında 12. satırdan itibaren yapıştırabilmesi için nasıl bir kod yazabilirim İlgilenen hocalarıma teşşekkür ederim
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Sn.Udentr2002

Modul sayfasındaki sub uretim() makrosunu sil ve yerine aşağıdakini yapıştır. Rapor sayfasına yazma işini - şimdilik göze çarpması için- kod'da çizgilerle ayırdım. İncelersin.

İyi çalışmalar

Sub uretim()
Set sh = Sheets("Emir_Cıktı")
Set sh2 = Sheets("Rapor")
adi = sh.Cells(3, 4)
kultrh = sh.Cells(4, 4)
urun = sh.Cells(5, 4)
urmik = sh.Cells(6, 4)
sonkayit = sh.Cells(65536, 1).End(xlUp).Row
'Range("I10:L" & sonkayit).ClearContents
'ilk önce girilen üretim rakamı için toplam hammadde miktarı yeterli mi ? Ona bakıyoruz
For i = 10 To sonkayit
If sh.Cells(i, 1) = adi Then
miktar = sh.Cells(i, 8) * sh.Cells(i, 13) / 1000
miktar1 = miktar + miktar1
End If
Next i
If miktar1 < urmik Then 'Eğer eldeki toplam hammadde miktarı, üretimde kullanılacak miktara yeterli değilse
MsgBox "Üretimi yapmak için yeterli hammadde yok" & vbCrLf & miktar1 & " birim ÜRETİM yapılabilir" & _
vbCrLf & vbCrLf & "Lütfen, girdiğiniz üretim miktarını buna göre revize edin"
Else 'YETERLİYSE- Yani Eldeki toplam hammadde miktarı, üretime yetecek düzeydeyse
kalan_uretim = urmik
For i = 10 To sonkayit 'Tüm satırlardaki kayıtları kontrol etmeye başla
If sh.Cells(i, 1) = adi And sh.Cells(i, 13) > 0 Then 'stoktaki hammadde cinsi uygun ve depoda varsa
If kalan_uretim = 0 Then: Exit Sub 'Kalan Üretim 0'sa dur
potensli_stokmiktari = sh.Cells(i, 6) * sh.Cells(i, 8) / 1000 'Kalan üretim varsa, ilgili kaydın potensli stok miktarı nedir?
If potensli_stokmiktari >= kalan_uretim Then 'Eğer ilgili kaydın potensli stok miktarı, kalan üretime yetiyorsa
sh.Cells(i, 9) = kultrh
sh.Cells(i, 10) = urun
sh.Cells(i, 11) = kalan_uretim / (sh.Cells(i, 8) / 1000) 'Üretimde kullanılacak miktar, kalan üretim miktarının potense bölümüdür
'----------------------------------------------
'RAPOR SAYFASINA YAZDIRMA
For sutun = 1 To 24
sh2.Cells(i + 2, sutun) = sh.Cells(i, sutun)
Next sutun
'-----------------------------------------------
If sh.Cells(i, 13) > 0 Then
sh.Cells(i + 1, 13).EntireRow.Insert
sh.Cells(i + 1, 1) = sh.Cells(i, 1)
sh.Cells(i + 1, 2) = sh.Cells(i, 2)
sh.Cells(i + 1, 3) = sh.Cells(i, 3)
sh.Cells(i + 1, 4) = sh.Cells(i, 4)
sh.Cells(i + 1, 5) = sh.Cells(i, 5)
sh.Cells(i + 1, 6) = sh.Cells(i, 13)
sh.Cells(i + 1, 7) = sh.Cells(i, 7)
sh.Cells(i + 1, 8) = sh.Cells(i, 8)
sh.Cells(i + 1, 14) = sh.Cells(i, 14)
sh.Cells(i + 1, 15) = sh.Cells(i, 15)
sh.Cells(i + 1, 16) = sh.Cells(i, 16)
sh.Cells(i + 1, 17) = sh.Cells(i, 17)
sh.Cells(i + 1, 18) = sh.Cells(i, 18)
sh.Cells(i + 1, 19) = sh.Cells(i, 19)
sh.Cells(i + 1, 20) = sh.Cells(i, 20)
sh.Cells(i + 1, 21) = sh.Cells(i, 21)
sh.Cells(i + 1, 22) = sh.Cells(i, 22)
sh.Cells(i + 1, 23) = sh.Cells(i, 23)
sh.Cells(i + 1, 24) = sh.Cells(i, 24)
sh.Cells(i, 6) = sh.Cells(i, 11)
sh.Cells(10, 13).Formula = "=F10-K10"
sh.Cells(10, 13).AutoFill Destination:=Range("M10:M" & sonkayit), Type:=xlFill
sh.Cells(6, 11).FormulaR1C1 = "=IF(SUM(R[4]C:R[18]C)=0,"""",SUM(R[4]C:R[18]C))"
End If
kalan_uretim = 0 'Kalan üretim miktarı yoktur
Else 'kalan Üretim miktarı tek başına bu satırdan karşılanamıyorsa
sh.Cells(i, 9) = kultrh
sh.Cells(i, 10) = urun
sh.Cells(i, 11) = sh.Cells(i, 6) 'Üretimde kullanılan miktar, fiili miktarın tamamıdır
'------------------------------------------------------------
'RAPOR SAYFASINA YAZMAK İÇİN
For sutun = 1 To 24
sh2.Cells(i + 2, sutun) = sh.Cells(i, sutun)
Next sutun
'-----------------------------------------------------------
kalan_uretim = kalan_uretim - sh.Cells(i, 11) * sh.Cells(i, 8) / 1000 'kalan üretim'den ilgili satırın potensli stoğunu düş.
End If
End If
Next i
End If
Set sh = Nothing
Set sh2=Nothing
End Sub
 

udentr2002

Altın Üye
Katılım
5 Kasım 2006
Mesajlar
1,503
Excel Vers. ve Dili
iş yerinde Office 365
evde Office 365
Altın Üyelik Bitiş Tarihi
25-12-2029
Hocam

İnanın ne diyeceğimi bilmiyorum elinize bilginize sağlık Allah razı olsun süper olmuş Sağlıcakla kalın
 

udentr2002

Altın Üye
Katılım
5 Kasım 2006
Mesajlar
1,503
Excel Vers. ve Dili
iş yerinde Office 365
evde Office 365
Altın Üyelik Bitiş Tarihi
25-12-2029
Sayın fpc hocam

Kodları kullanırken şöyle bir şey dikkatimi çekti üret butonuna basarak kullandığımzda Rapor sayfasına yazıyor eğer Rapor sayfasında yazdıkalrını sildiğimizde ve yeni bir üretim yaptığımızda daha önce hangi satırda kaldıysa gelip onun altına yazıyor yani şöyle açıklayayım dyelimki üret butonuna bastık oda rapor sayfasına 14 stüna kadar işlem yaptıkalrını kopyalayıp yapıştırdı gelip Rapor sayfasındaki o yapıştırdıklarını silin ve tekrar Emir_Cıktı sayfasında üret butonuna basın bu defa göreceksinizki Rapor sayfasında 12. 13. ve 14 stünlar boş olmasına rağmen yeni kayıtları 15. stündan itibaren yapıştırıyor. Bunun yerine 12. satırdan itibareb ilk boş satırlara yapıştırabilmesi için neler yapabilriz hocam sizi tekrar yoracağım ama bakabilirmisiniz lütfen
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Sayın Udentr2002;

Daha önce gönderdiğim kodun; karşılık gelen bloğunu kaldırarak aşağıdakileri yapıştırın.

'----------------------------------------------
'RAPOR SAYFASINA YAZDIRMA
satir = sh2.Cells(65536, 1).End(xlUp).Row
For sutun = 1 To 24
sh2.Cells(satir + 1, sutun) = sh.Cells(i, sutun)
Next sutun
'-----------------------------------------------

Görüyorsunuz ki, bu bloğa bir satır daha ilave edildi. Bu satır, önce "Rapor" sayfasının veri işlenen en son satırını belirliyor ve bunu "satir" adli degiskene atiyor.

Daha sonra bu bloğun 3.satirina da bakarsanız, "satir" adli değişkenin 1 fazlası alınarak, sayfada boş olan satır bulunuyor (direkt "satir" degiskenini kullansaydık, verileri daima en son kayıtın üstüne yazar dururdu. +1 yaparak bunun bir alt satırına düşüyoruz) ve buraya üretimde kullanılan hammaddenin bilgileri getiriliyor.

Kolay gelsin.
 

udentr2002

Altın Üye
Katılım
5 Kasım 2006
Mesajlar
1,503
Excel Vers. ve Dili
iş yerinde Office 365
evde Office 365
Altın Üyelik Bitiş Tarihi
25-12-2029
hocam

Tekrardan elinize sağlık düzeldi Allah razı olsun iyi çalışmalar
 
Üst